--- /dev/null
+require! <[./build fs ./config]>
+module.exports = (grunt)->
+ grunt.loadNpmTasks \grunt-contrib-clean
+ grunt.loadNpmTasks \grunt-contrib-copy
+ grunt.loadNpmTasks \grunt-contrib-uglify
+ grunt.loadNpmTasks \grunt-contrib-watch
+ grunt.loadNpmTasks \grunt-livescript
+ grunt.loadNpmTasks \grunt-karma
+ grunt.initConfig do
+ pkg: grunt.file.readJSON './package.json'
+ uglify: build:
+ files: '<%=grunt.option("path")%>.min.js': '<%=grunt.option("path")%>.js'
+ options:
+ mangle: {+sort, +keep_fnames}
+ compress: {+pure_getters, +keep_fargs, +keep_fnames}
+ sourceMap: on
+ banner: config.banner
+ livescript: src: files:
+ './tests/helpers.js': './tests/helpers/*'
+ './tests/tests.js': './tests/tests/*'
+ './tests/library.js': './tests/library/*'
+ './tests/es.js': './tests/tests/es*'
+ './tests/experimental.js': './tests/experimental/*'
+ './build/index.js': './build/build.ls*'
+ clean: <[./library]>
+ copy: lib: files:
+ * expand: on
+ cwd: './'
+ src: <[es5/** es6/** es7/** stage/** web/** core/** fn/** index.js shim.js]>
+ dest: './library/'
+ * expand: on
+ cwd: './'
+ src: <[modules/*]>
+ dest: './library/'
+ filter: \isFile
+ * expand: on
+ cwd: './modules/library/'
+ src: '*'
+ dest: './library/modules/'
+ watch:
+ core:
+ files: './modules/*'
+ tasks: \default
+ tests:
+ files: './tests/tests/*'
+ tasks: \livescript
+ karma:
+ 'options':
+ configFile: './tests/karma.conf.js'
+ browsers: <[PhantomJS]>
+ singleRun: on
+ 'default': {}
+ 'library': files: <[client/library.js tests/helpers.js tests/library.js]>map -> src: it
+ grunt.registerTask \build (options)->
+ done = @async!
+ build {
+ modules: (options || 'es5,es6,es7,js,web,core')split \,
+ blacklist: (grunt.option(\blacklist) || '')split \,
+ library: grunt.option(\library) in <[yes on true]>
+ umd: grunt.option(\umd) not in <[no off false]>
+ }
+ .then !->
+ grunt.option(\path) || grunt.option(\path, './custom')
+ fs.writeFile grunt.option(\path) + '.js', it, done
+ .catch !->
+ console.error it
+ process.exit 1
+ grunt.registerTask \client ->
+ grunt.option \library ''
+ grunt.option \path './client/core'
+ grunt.task.run <[build:es5,es6,es7,js,web,core uglify]>
+ grunt.registerTask \library ->
+ grunt.option \library 'true'
+ grunt.option \path './client/library'
+ grunt.task.run <[build:es5,es6,es7,js,web,core uglify]>
+ grunt.registerTask \shim ->
+ grunt.option \library ''
+ grunt.option \path './client/shim'
+ grunt.task.run <[build:es5,es6,es7,js,web uglify]>
+ grunt.registerTask \e ->
+ grunt.option \library ''>
+ grunt.option \path './client/core'
+ grunt.task.run <[build:es5,es6,es7,js,web,core,exp uglify]>
+ grunt.registerTask \default <[clean copy client library shim]>
\ No newline at end of file