UNPKG

asset-rack

Version:

Asset management framework for nodejs

29 lines (26 loc) 1.12 kB
pathutil = require('path') Snockets = require 'snockets' Asset = require('../index').Asset class exports.SnocketsAsset extends Asset mimetype: 'text/javascript' create: (options) -> @filename = pathutil.resolve options.filename @compress = options.compress or false @debug = options.debug or false snockets = new Snockets() if @debug files = snockets.getCompiledChain @filename, { async: false } scripts = [] for file in files script = file.js .replace(/\\/g, '\\\\') .replace(/\n/g, '\\n') .replace(/\r/g, '') .replace(/'/g, '\\\'') filename = pathutil.relative(pathutil.dirname(@filename), file.filename) .replace(/\\/g, '/') scripts.push "// #{filename}\neval('#{script}\\n//@ sourceURL=#{filename}')\n" @contents = scripts.join('\n') else @contents = snockets.getConcatenation @filename, { async: false, minify: @compress } @emit 'created'