136 lines
3.9 KiB
CoffeeScript
136 lines
3.9 KiB
CoffeeScript
"use strict"
|
|
module.exports = (grunt) ->
|
|
|
|
# Project configuration.
|
|
grunt.initConfig
|
|
coffee:
|
|
lib:
|
|
options:
|
|
bare: true
|
|
sourceMap: true
|
|
expand: true
|
|
src: ["lib/**/*.coffee"]
|
|
dest: "dest/"
|
|
ext: ".js"
|
|
test:
|
|
#options:
|
|
#bare: true
|
|
expand: true
|
|
src: ["test/**/*.coffee"]
|
|
dest: "dest/"
|
|
ext: ".js"
|
|
|
|
watch:
|
|
lib:
|
|
files: [
|
|
"<%= coffee.lib.src %>"
|
|
]
|
|
tasks: ["coffee:lib"]
|
|
test:
|
|
files: [
|
|
"<%= coffee.lib.src %>"
|
|
"<%= coffee.test.src %>"
|
|
"examples/*"
|
|
]
|
|
tasks: ["build"]
|
|
|
|
simplemocha:
|
|
all:
|
|
src: ['test/**/*.coffee']
|
|
options:
|
|
timeout: 9999999
|
|
ignoreLeaks: false
|
|
ui: 'bdd'
|
|
reporter: 'list'
|
|
compilers: 'coffee:coffee-script'
|
|
|
|
pkg: grunt.file.readJSON('package.json')
|
|
|
|
coffeelint:
|
|
app: [
|
|
'lib/**/*.coffee'
|
|
'test/**/.coffee'
|
|
"Gruntfile.coffee"
|
|
]
|
|
options:
|
|
"indentation":
|
|
"level": "ignore"
|
|
"no_trailing_whitespace":
|
|
"level": "warn"
|
|
"max_line_length":
|
|
"level": "ignore"
|
|
#"line_endings":
|
|
# "level": "error"
|
|
codo:
|
|
options:
|
|
name: "Yatta!"
|
|
title: "Yatta! Documentation"
|
|
extras: ["LICENSE.txt", "examples/README.md", "examples/IwcJson.md"]
|
|
undocumented: yes
|
|
verbose: false
|
|
stats: true
|
|
src: ["./lib"]
|
|
browserify:
|
|
dest:
|
|
files:
|
|
'dest/browser/test/Yatta_test.js': ['test/**/*.coffee']
|
|
options:
|
|
transform: ['coffeeify']
|
|
debug: true
|
|
bundleOptions: {debug: true}
|
|
# Serve files via http-server
|
|
lib:
|
|
files:
|
|
'dest/browser/Frameworks/JsonIwcYatta.js': ['./lib/Frameworks/JsonYatta.coffee', './lib/Connectors/IwcConnector.coffee']
|
|
options:
|
|
transform: ['coffeeify']
|
|
debug: false
|
|
bundleOptions: {debug: false}
|
|
uglify:
|
|
browser:
|
|
files: [
|
|
expand: true
|
|
cwd: './dest/browser/'
|
|
src: '**/*.js'
|
|
dest: './dest/browser'
|
|
ext: '.min.js'
|
|
]
|
|
connect:
|
|
server:
|
|
options:
|
|
hostname: '*'
|
|
port: 1337
|
|
base: './'
|
|
keepalive: true
|
|
middleware: (connect, options, middlewares)->
|
|
middlewares.push (req, res, next)->
|
|
if res.header?
|
|
res.header('Access-Control-Allow-Origin', "*")
|
|
res.header('Access-Control-Allow-Credentials', true)
|
|
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
|
|
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
|
|
res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0')
|
|
return next()
|
|
return middlewares
|
|
literate:
|
|
"examples/IwcJson.md": "examples/IwcJson.js"
|
|
options:
|
|
code: true
|
|
|
|
# These plugins provide necessary tasks.
|
|
grunt.loadNpmTasks "grunt-browserify"
|
|
grunt.loadNpmTasks "grunt-contrib-uglify"
|
|
grunt.loadNpmTasks "grunt-contrib-coffee"
|
|
grunt.loadNpmTasks 'grunt-contrib-connect'
|
|
grunt.loadNpmTasks "grunt-contrib-watch"
|
|
grunt.loadNpmTasks "grunt-literate"
|
|
grunt.loadNpmTasks "grunt-simple-mocha"
|
|
grunt.loadNpmTasks "grunt-coffeelint"
|
|
grunt.loadNpmTasks "grunt-codo"
|
|
|
|
grunt.registerTask "build", ["coffeelint", "codo", "browserify", "test"]
|
|
grunt.registerTask "production", ["test", "coffee","coffeelint", "literate", "browserify", "uglify", "codo"]
|
|
grunt.registerTask "default", ["build", "watch"]
|
|
grunt.registerTask "production", ["coffee"]
|
|
grunt.registerTask "test", ["simplemocha"]
|