From 60c2b400492eb09a501d3407a47915e9b58bee66 Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Sat, 14 Mar 2015 15:49:07 +0000 Subject: [PATCH 1/7] Simplify and update build --- gulpfile.js | 63 ++++++++++++++++------------------------------------ package.json | 11 +++++---- 2 files changed, 24 insertions(+), 50 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index cf2ae2f..1466ca9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,52 +1,27 @@ -'use strict' +"use strict"; -var gulp = require('gulp') - , purescript = require('gulp-purescript') - ; +var gulp = require("gulp"); +var plumber = require("gulp-plumber"); +var purescript = require("gulp-purescript"); +var jsvalidate = require("gulp-jsvalidate"); -var paths = { - src: 'src/**/*.purs', - bowerSrc: [ - 'bower_components/purescript-*/src/**/*.purs', - 'bower_components/purescript-*/src/**/*.purs.hs' - ], - dest: '', - docsDest: 'README.md' -}; - -var options = {}; - -var compile = function(compiler) { - var psc = compiler(options); - psc.on('error', function(e) { - console.error(e.message); - psc.end(); - }); - return gulp.src([paths.src].concat(paths.bowerSrc)) - .pipe(psc) - .pipe(gulp.dest(paths.dest)); -}; - -gulp.task('make', function() { - return compile(purescript.pscMake); -}); - -gulp.task('browser', function() { - return compile(purescript.psc); -}); - -gulp.task('docs', function() { - return gulp.src(paths.src) - .pipe(purescript.docgen()) - .pipe(gulp.dest(paths.docsDest)); +gulp.task("make", function() { + return gulp.src(["src/**/*.purs", "bower_components/purescript-*/src/**/*.purs"]) + .pipe(plumber()) + .pipe(purescript.pscMake()); }); -gulp.task('watch-browser', function() { - gulp.watch(paths.src, ['browser', 'docs']); +gulp.task("jsvalidate", ["make"], function () { + return gulp.src("output/**/*.js") + .pipe(plumber()) + .pipe(jsvalidate()); }); -gulp.task('watch-make', function() { - gulp.watch(paths.src, ['make', 'docs']); +gulp.task("docs", function () { + return gulp.src("src/**/*.purs") + .pipe(plumber()) + .pipe(purescript.pscDocs()) + .pipe(gulp.dest("README.md")); }); -gulp.task('default', ['make', 'docs']); +gulp.task("default", ["jsvalidate", "docs"]); diff --git a/package.json b/package.json index 2711f32..327f797 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,9 @@ { - "name": "purescript-dom", - "version": "0.0.0", - "description": "PureScript interface for the DOM.", - "license": "MIT", + "private": true, "devDependencies": { - "gulp": "^3.8.1", - "gulp-purescript": "0.0.8" + "gulp": "^3.8.11", + "gulp-jsvalidate": "^1.0.1", + "gulp-plumber": "^1.0.0", + "gulp-purescript": "^0.1.2" } } From 858b0a63fe7b8d819512ec83a11097994425739a Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Sat, 14 Mar 2015 15:53:03 +0000 Subject: [PATCH 2/7] Add File API types --- src/DOM/File.purs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/DOM/File.purs diff --git a/src/DOM/File.purs b/src/DOM/File.purs new file mode 100644 index 0000000..4f7ac0f --- /dev/null +++ b/src/DOM/File.purs @@ -0,0 +1,14 @@ +-- | Types for the [W3C File API](http://dev.w3.org/2006/webapi/FileAPI/). +module DOM.File where + +-- | A `File` object instance. +foreign import data File :: * + +-- | A `FileList` object instance. +foreign import data FileList :: * + +-- | A `FileReader` object instance. +foreign import data FileReader :: * + +-- | A `Blob` object instance. +foreign import data Blob :: * From e2417637875f1d8bdf7294250d45a7bfc6274e03 Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Sat, 14 Mar 2015 15:53:08 +0000 Subject: [PATCH 3/7] Add XHR API types --- src/DOM/XHR.purs | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/DOM/XHR.purs diff --git a/src/DOM/XHR.purs b/src/DOM/XHR.purs new file mode 100644 index 0000000..4361711 --- /dev/null +++ b/src/DOM/XHR.purs @@ -0,0 +1,11 @@ +-- | Types for the [WHATWG XMLHttpRequest Living Standard](https://xhr.spec.whatwg.org/#interface-formdata). +module DOM.XHR where + +-- | An `XMLHttpRequest` object instance. +foreign import data XMLHttpRequest :: * + +-- | A `FormData` object instance. +foreign import data FormData :: * + +-- | A `ProgressEvent` object instance. +foreign import data ProgressEvent :: * From e54aa3108873e5820694c604ce33794dc917823f Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Sat, 14 Mar 2015 15:53:13 +0000 Subject: [PATCH 4/7] Add some comments --- src/DOM.purs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/DOM.purs b/src/DOM.purs index 93f3f99..704eb9d 100644 --- a/src/DOM.purs +++ b/src/DOM.purs @@ -1,7 +1,10 @@ module DOM where - foreign import data Node :: * - - foreign import data NodeList :: * +-- | Effect type for DOM maniupulation +foreign import data DOM :: ! - foreign import data DOM :: ! +-- | General type for DOM nodes. +foreign import data Node :: * + +-- | General type for DOM node lists. +foreign import data NodeList :: * From f53488971ab1a783ea42922078d07de76ae6a3cf Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Sat, 14 Mar 2015 15:53:20 +0000 Subject: [PATCH 5/7] Update docs --- README.md | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 88 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bc98e69..a17b221 100755 --- a/README.md +++ b/README.md @@ -2,13 +2,97 @@ ## Module DOM -### Types +#### `DOM` - data DOM :: ! +``` purescript +data DOM :: ! +``` - data Node :: * +Effect type for DOM maniupulation - data NodeList :: * +#### `Node` + +``` purescript +data Node :: * +``` + +General type for DOM nodes. + +#### `NodeList` + +``` purescript +data NodeList :: * +``` + +General type for DOM node lists. + + +## Module DOM.File + + +Types for the [W3C File API](http://dev.w3.org/2006/webapi/FileAPI/). + +#### `File` + +``` purescript +data File :: * +``` + +A `File` object instance. + +#### `FileList` + +``` purescript +data FileList :: * +``` + +A `FileList` object instance. + +#### `FileReader` + +``` purescript +data FileReader :: * +``` + +A `FileReader` object instance. + +#### `Blob` + +``` purescript +data Blob :: * +``` + +A `Blob` object instance. + + +## Module DOM.XHR + + +Types for the [WHATWG XMLHttpRequest Living Standard](https://xhr.spec.whatwg.org/#interface-formdata). + +#### `XMLHttpRequest` + +``` purescript +data XMLHttpRequest :: * +``` + +An `XMLHttpRequest` object instance. + +#### `FormData` + +``` purescript +data FormData :: * +``` + +A `FormData` object instance. + +#### `ProgressEvent` + +``` purescript +data ProgressEvent :: * +``` + +A `ProgressEvent` object instance. From 7fc14e180c6ca553fcbfcc4b9572f2ca6a49cece Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Sat, 14 Mar 2015 15:53:27 +0000 Subject: [PATCH 6/7] Remove specific bower version --- bower.json | 1 - 1 file changed, 1 deletion(-) diff --git a/bower.json b/bower.json index 44cabad..7839c6d 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,5 @@ { "name": "purescript-dom", - "version": "0.1.0", "description": "PureScript interface for the DOM.", "license": "MIT" } From c0df0266bea053445fdc4b0e25a6ff9466be551b Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Sat, 14 Mar 2015 16:10:10 +0000 Subject: [PATCH 7/7] Add Document --- src/DOM.purs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/DOM.purs b/src/DOM.purs index 704eb9d..053627f 100644 --- a/src/DOM.purs +++ b/src/DOM.purs @@ -3,6 +3,9 @@ module DOM where -- | Effect type for DOM maniupulation foreign import data DOM :: ! +-- | General type for DOM documents. +foreign import data Document :: * + -- | General type for DOM nodes. foreign import data Node :: *