|  | 
| 1 |  | -var gulp = require('gulp') | 
| 2 |  | -  , gutil = require('gulp-util') | 
| 3 |  | -  , plumber = require('gulp-plumber') | 
| 4 |  | -  , purescript = require('gulp-purescript') | 
| 5 |  | -  , sequence = require('run-sequence') | 
| 6 |  | -  , del = require('del') | 
| 7 |  | -  , config = { | 
| 8 |  | -      del: ['dist'], | 
| 9 |  | -      purescript: { | 
| 10 |  | -        src: [ | 
| 11 |  | -          'bower_components/purescript-*/src/**/*.purs*', | 
| 12 |  | -          'src/**/*.purs' | 
| 13 |  | -        ], | 
| 14 |  | -        dest: 'dist', | 
| 15 |  | -        docs: 'README.md' | 
| 16 |  | -      } | 
| 17 |  | -    } | 
| 18 |  | -; | 
|  | 1 | +/* jshint node: true */ | 
|  | 2 | +"use strict"; | 
| 19 | 3 | 
 | 
| 20 |  | -function error(e) { | 
| 21 |  | -  gutil.log(gutil.colors.magenta('>>>> Error <<<<') + '\n' + e.toString().trim()); | 
| 22 |  | -  this.emit('end'); | 
| 23 |  | -} | 
|  | 4 | +var gulp = require("gulp"); | 
|  | 5 | +var plumber = require("gulp-plumber"); | 
|  | 6 | +var purescript = require("gulp-purescript"); | 
|  | 7 | +var rimraf = require("rimraf"); | 
| 24 | 8 | 
 | 
| 25 |  | -gulp.task('del', function(cb){ | 
| 26 |  | -  del(config.del, cb); | 
| 27 |  | -}); | 
|  | 9 | +var sources = [ | 
|  | 10 | +  "src/**/*.purs", | 
|  | 11 | +  "bower_components/purescript-*/src/**/*.purs" | 
|  | 12 | +]; | 
|  | 13 | + | 
|  | 14 | +var foreigns = [ | 
|  | 15 | +  "src/**/*.js", | 
|  | 16 | +  "bower_components/purescript-*/src/**/*.js" | 
|  | 17 | +]; | 
| 28 | 18 | 
 | 
| 29 |  | -gulp.task('make', function(){ | 
| 30 |  | -  return ( | 
| 31 |  | -    gulp.src(config.purescript.src). | 
| 32 |  | -    pipe(plumber()). | 
| 33 |  | -    pipe(purescript.pscMake({output: config.purescript.dest})). | 
| 34 |  | -    on('error', error) | 
| 35 |  | -  ); | 
|  | 19 | +gulp.task("clean-docs", function (cb) { | 
|  | 20 | +  rimraf("docs", cb); | 
| 36 | 21 | }); | 
| 37 | 22 | 
 | 
| 38 |  | -gulp.task('psci', function(){ | 
| 39 |  | -  return ( | 
| 40 |  | -    gulp.src(config.purescript.src). | 
| 41 |  | -    pipe(plumber()). | 
| 42 |  | -    pipe(purescript.dotPsci()). | 
| 43 |  | -    on('error', error) | 
| 44 |  | -  ); | 
|  | 23 | +gulp.task("clean-output", function (cb) { | 
|  | 24 | +  rimraf("output", cb); | 
| 45 | 25 | }); | 
| 46 | 26 | 
 | 
| 47 |  | -gulp.task('docs', function(){ | 
| 48 |  | -  return ( | 
| 49 |  | -    gulp.src(config.purescript.src[1]). | 
| 50 |  | -    pipe(plumber()). | 
| 51 |  | -    pipe(purescript.pscDocs()). | 
| 52 |  | -    on('error', error). | 
| 53 |  | -    pipe(gulp.dest(config.purescript.docs)) | 
| 54 |  | -  ); | 
|  | 27 | +gulp.task("clean", ["clean-docs", "clean-output"]); | 
|  | 28 | + | 
|  | 29 | +gulp.task("make", function() { | 
|  | 30 | +  return gulp.src(sources) | 
|  | 31 | +    .pipe(plumber()) | 
|  | 32 | +    .pipe(purescript.pscMake({ ffi: foreigns })); | 
| 55 | 33 | }); | 
| 56 | 34 | 
 | 
| 57 |  | -gulp.task('watch', function(cb){ | 
| 58 |  | -  gulp.watch(config.purescript.src, ['make']); | 
|  | 35 | +gulp.task("docs", ["clean-docs"], function () { | 
|  | 36 | +  return gulp.src(sources) | 
|  | 37 | +    .pipe(plumber()) | 
|  | 38 | +    .pipe(purescript.pscDocs({ | 
|  | 39 | +      docgen: { | 
|  | 40 | +        "Data.Inject": "docs/Data.Inject.md" | 
|  | 41 | +      } | 
|  | 42 | +    })); | 
| 59 | 43 | }); | 
| 60 | 44 | 
 | 
| 61 |  | -gulp.task('default', function(){ | 
| 62 |  | -  sequence('del', 'make', ['psci', 'docs']); | 
|  | 45 | +gulp.task("dotpsci", function () { | 
|  | 46 | +  return gulp.src(sources) | 
|  | 47 | +    .pipe(plumber()) | 
|  | 48 | +    .pipe(purescript.dotPsci()); | 
| 63 | 49 | }); | 
|  | 50 | + | 
|  | 51 | +gulp.task("default", ["make", "docs", "dotpsci"]); | 
0 commit comments