You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					86 lines
				
				2.9 KiB
			
		
		
			
		
	
	
					86 lines
				
				2.9 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								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: {+keep_fnames}
							 | 
						||
| 
								 | 
							
								        compress: {+keep_fnames, +pure_getters}
							 | 
						||
| 
								 | 
							
								        output: {max_line_len: 32000}
							 | 
						||
| 
								 | 
							
								        ie8: on
							 | 
						||
| 
								 | 
							
								        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]>
							 |