Skip to content

Commit c54532b

Browse files
committed
Tweaks to build process
1 parent 3582c70 commit c54532b

File tree

10 files changed

+115
-76
lines changed

10 files changed

+115
-76
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
/.*
22
!/.gitignore
3+
!/.jscsrc
4+
!/.jshintrc
35
!/.travis.yml
46
/bower_components/
57
/node_modules/

.jscsrc

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"preset": "grunt",
3+
"disallowSpacesInAnonymousFunctionExpression": null,
4+
"requireSpacesInAnonymousFunctionExpression": {
5+
"beforeOpeningRoundBrace": true,
6+
"beforeOpeningCurlyBrace": true
7+
},
8+
"disallowSpacesInsideObjectBrackets": null,
9+
"requireSpacesInsideObjectBrackets": "all",
10+
"validateQuoteMarks": "\"",
11+
"requireCurlyBraces": null
12+
}

.jshintrc

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"bitwise": true,
3+
"eqeqeq": true,
4+
"forin": true,
5+
"freeze": true,
6+
"funcscope": true,
7+
"futurehostile": true,
8+
"globalstrict": true,
9+
"latedef": true,
10+
"maxparams": 1,
11+
"noarg": true,
12+
"nocomma": true,
13+
"nonew": true,
14+
"notypeof": true,
15+
"singleGroups": true,
16+
"undef": true,
17+
"unused": true,
18+
"eqnull": true
19+
}

.travis.yml

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
language: node_js
2+
sudo: false
23
node_js:
34
- 0.10
45
env:
5-
- TAG=v0.7.0
6+
- TAG=v0.7.0 PATH=$HOME/bin:$PATH
67
install:
8+
- mkdir $HOME/bin
79
- wget -O $HOME/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$TAG/linux64.tar.gz
8-
- sudo tar zxvf $HOME/purescript.tar.gz -C /usr/local/bin purescript/psc{,i,-docs,-bundle,-publish} --strip-components=1
9-
- sudo chmod a+x /usr/local/bin/psc{,i,-docs,-bundle,-publish}
10+
- tar zxvf $HOME/purescript.tar.gz -C $HOME/bin purescript/psc{,i,-docs,-bundle,-publish} --strip-components=1
11+
- chmod a+x $HOME/bin/psc{,i,-docs,-bundle,-publish}
1012
- npm install bower gulp -g
1113
- npm install && bower install
1214
script:

bower.json

+12-7
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
"ajax"
88
],
99
"license": "Apache 2.0",
10+
"repository": {
11+
"type": "git",
12+
"url": "git://github.com/slamdata/purescript-affjax.git"
13+
},
1014
"ignore": [
1115
"**/.*",
1216
"bower_components",
@@ -19,14 +23,15 @@
1923
"package.json"
2024
],
2125
"dependencies": {
22-
"purescript-aff": "~0.11.0",
23-
"purescript-arraybuffer-types": "~0.2.0",
24-
"purescript-dom": "~0.1.2",
25-
"purescript-foreign": "~0.5.0",
26-
"purescript-integers": "~0.2.0",
27-
"purescript-nullable": "~0.2.0"
26+
"purescript-aff": "^0.11.0",
27+
"purescript-arraybuffer-types": "^0.2.0",
28+
"purescript-dom": "^0.1.2",
29+
"purescript-foreign": "^0.5.0",
30+
"purescript-integers": "^0.2.0",
31+
"purescript-nullable": "^0.2.0",
32+
"purescript-unsafe-coerce": "^0.1.0"
2833
},
2934
"devDependencies": {
30-
"purescript-console": "~0.1.0"
35+
"purescript-console": "^0.1.0"
3136
}
3237
}

gulpfile.js

+39-37
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,62 @@
1+
/* jshint node: true */
12
"use strict";
23

34
var gulp = require("gulp");
4-
var plumber = require("gulp-plumber");
5+
var jshint = require("gulp-jshint");
6+
var jscs = require("gulp-jscs");
57
var purescript = require("gulp-purescript");
6-
var jsvalidate = require("gulp-jsvalidate");
78

89
var sources = [
9-
'src/**/*.purs',
10-
'bower_components/purescript-*/src/**/*.purs',
11-
'test/**/*.purs'
10+
"src/**/*.purs",
11+
"bower_components/purescript-*/src/**/*.purs",
12+
"test/**/*.purs"
1213
];
1314

1415
var foreigns = [
15-
'src/**/*.js',
16-
'bower_components/purescript-*/src/**/*.js',
17-
'test/**/*.js'
16+
"src/**/*.js",
17+
"bower_components/purescript-*/src/**/*.js",
18+
"test/**/*.js"
1819
];
1920

20-
gulp.task('jsvalidate', function() {
21-
return gulp.src(foreigns)
22-
.pipe(plumber())
23-
.pipe(jsvalidate());
21+
gulp.task("lint", function() {
22+
return gulp.src("src/**/*.js")
23+
.pipe(jshint())
24+
.pipe(jshint.reporter())
25+
.pipe(jscs());
2426
});
2527

26-
gulp.task('psc', function() {
27-
return purescript.psc({
28+
gulp.task("make", ["lint"], function() {
29+
return purescript.psc({ src: sources, ffi: foreigns });
30+
});
31+
32+
gulp.task("docs", function() {
33+
return purescript.pscDocs({
2834
src: sources,
29-
ffi: foreigns
35+
docgen: {
36+
"Network.HTTP.Affjax": "docs/Network.HTTP.Affjax.md",
37+
"Network.HTTP.Affjax.Request": "docs/Network.HTTP.Affjax.Request.md",
38+
"Network.HTTP.Affjax.Response": "docs/Network.HTTP.Affjax.Response.md",
39+
"Network.HTTP.Method": "docs/Network.HTTP.Method.md",
40+
"Network.HTTP.MimeType": "docs/Network.HTTP.MimeType.md",
41+
"Network.HTTP.MimeType.Common": "docs/Network.HTTP.MimeType.Common.md",
42+
"Network.HTTP.RequestHeader": "docs/Network.HTTP.RequestHeader.md",
43+
"Network.HTTP.ResponseHeader": "docs/Network.HTTP.ResponseHeader.md",
44+
"Network.HTTP.StatusCode": "docs/Network.HTTP.StatusCode.md"
45+
}
3046
});
3147
});
3248

33-
gulp.task('pscBundle', function() {
49+
gulp.task("bundle", ["make"], function() {
3450
return purescript.pscBundle({
35-
src: 'output/**/*.js',
36-
output: 'tmp/test.js',
37-
main: 'Test.Main'
51+
src: "output/**/*.js",
52+
output: "tmp/test.js",
53+
main: "Test.Main"
3854
});
3955
});
4056

41-
gulp.task('pscDocs', function() {
42-
return purescript.pscDocs({
43-
src: sources,
44-
docgen: {
45-
'Network.HTTP.Affjax': 'docs/Network.HTTP.Affjax.md',
46-
'Network.HTTP.Affjax.Request': 'docs/Network.HTTP.Affjax.Request.md',
47-
'Network.HTTP.Affjax.Response': 'docs/Network.HTTP.Affjax.Response.md',
48-
'Network.HTTP.Method': 'docs/Network.HTTP.Method.md',
49-
'Network.HTTP.MimeType': 'docs/Network.HTTP.MimeType.md',
50-
'Network.HTTP.MimeType.Common': 'docs/Network.HTTP.MimeType.Common.md',
51-
'Network.HTTP.RequestHeader': 'docs/Network.HTTP.RequestHeader.md',
52-
'Network.HTTP.ResponseHeader': 'docs/Network.HTTP.ResponseHeader.md',
53-
'Network.HTTP.StatusCode': 'docs/Network.HTTP.StatusCode.md'
54-
}
55-
})
57+
gulp.task("dotpsci", function () {
58+
return purescript.psci({ src: sources, ffi: foreigns })
59+
.pipe(gulp.dest("."));
5660
});
5761

58-
gulp.task('make', ['jsvalidate', 'psc', 'pscDocs']);
59-
gulp.task('test', ['jsvalidate', 'psc', 'pscBundle', 'pscDocs']);
60-
gulp.task('default', ['make']);
62+
gulp.task("default", ["bundle", "docs", "dotpsci"]);

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"private": true,
33
"devDependencies": {
44
"gulp": "^3.8.11",
5-
"gulp-jsvalidate": "^2.0.0",
5+
"gulp-jscs": "^1.6.0",
6+
"gulp-jshint": "^1.11.2",
67
"gulp-plumber": "^1.0.0",
78
"gulp-purescript": "^0.5.0"
89
}

src/Network/HTTP/Affjax.js

+9-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
1+
/* jshint browser: true */
2+
/* global exports */
13
"use strict";
24

35
// module Network.HTTP.Affjax
46

5-
exports._ajax = function(mkHeader, options, canceler, errback, callback) {
7+
// jshint maxparams: 5
8+
exports._ajax = function (mkHeader, options, canceler, errback, callback) {
69
return function () {
710
var xhr = new XMLHttpRequest();
811
xhr.open(options.method || "GET", options.url || "/", true, options.username, options.password);
912
if (options.headers) {
10-
for (var i = 0, header; header = options.headers[i]; i++) {
13+
for (var i = 0, header; (header = options.headers[i]) != null; i++) {
1114
xhr.setRequestHeader(header.field, header.value);
1215
}
1316
}
14-
xhr.onerror = function (err) {
17+
xhr.onerror = function () {
1518
errback(new Error("AJAX request failed: " + options.method + " " + options.url))();
1619
};
1720
xhr.onload = function () {
@@ -32,9 +35,10 @@ exports._ajax = function(mkHeader, options, canceler, errback, callback) {
3235
xhr.send(options.content);
3336
return canceler(xhr);
3437
};
35-
}
38+
};
3639

37-
exports._cancelAjax = function(xhr, cancelError, errback, callback) {
40+
// jshint maxparams: 4
41+
exports._cancelAjax = function (xhr, cancelError, errback, callback) {
3842
return function () {
3943
try { xhr.abort(); } catch (e) { return callback(false)(); }
4044
return callback(true)();

src/Network/HTTP/Affjax/Request.js

-7
This file was deleted.

src/Network/HTTP/Affjax/Request.purs

+15-16
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import Prelude
77
import DOM (Document())
88
import DOM.File (Blob())
99
import DOM.XHR (FormData())
10+
import qualified Unsafe.Coerce as U
1011
import qualified Data.ArrayBuffer.Types as A
1112

1213
-- | Type representing all content types that be sent via XHR (ArrayBufferView,
@@ -22,45 +23,43 @@ instance requestableRequestContent :: Requestable RequestContent where
2223
toRequest = id
2324

2425
instance requestableInt8Array :: Requestable (A.ArrayView A.Int8) where
25-
toRequest = unsafeConversion
26+
toRequest = U.unsafeCoerce
2627

2728
instance requestableInt16Array :: Requestable (A.ArrayView A.Int16) where
28-
toRequest = unsafeConversion
29+
toRequest = U.unsafeCoerce
2930

3031
instance requestableInt32Array :: Requestable (A.ArrayView A.Int32) where
31-
toRequest = unsafeConversion
32+
toRequest = U.unsafeCoerce
3233

3334
instance requestableUint8Array :: Requestable (A.ArrayView A.Uint8) where
34-
toRequest = unsafeConversion
35+
toRequest = U.unsafeCoerce
3536

3637
instance requestableUint16Array :: Requestable (A.ArrayView A.Uint16) where
37-
toRequest = unsafeConversion
38+
toRequest = U.unsafeCoerce
3839

3940
instance requestableUint32Array :: Requestable (A.ArrayView A.Uint32) where
40-
toRequest = unsafeConversion
41+
toRequest = U.unsafeCoerce
4142

4243
instance requestableUint8ClampedArray :: Requestable (A.ArrayView A.Uint8Clamped) where
43-
toRequest = unsafeConversion
44+
toRequest = U.unsafeCoerce
4445

4546
instance requestableFloat32Array :: Requestable (A.ArrayView A.Float32) where
46-
toRequest = unsafeConversion
47+
toRequest = U.unsafeCoerce
4748

4849
instance requestableFloat64Array :: Requestable (A.ArrayView A.Float64) where
49-
toRequest = unsafeConversion
50+
toRequest = U.unsafeCoerce
5051

5152
instance requestableBlob :: Requestable Blob where
52-
toRequest = unsafeConversion
53+
toRequest = U.unsafeCoerce
5354

5455
instance requestableDocument :: Requestable Document where
55-
toRequest = unsafeConversion
56+
toRequest = U.unsafeCoerce
5657

5758
instance requestableString :: Requestable String where
58-
toRequest = unsafeConversion
59+
toRequest = U.unsafeCoerce
5960

6061
instance requestableFormData :: Requestable FormData where
61-
toRequest = unsafeConversion
62+
toRequest = U.unsafeCoerce
6263

6364
instance requestableUnit :: Requestable Unit where
64-
toRequest = unsafeConversion
65-
66-
foreign import unsafeConversion :: forall a b. a -> b
65+
toRequest = U.unsafeCoerce

0 commit comments

Comments
 (0)