asset-rack
Version:
Static Web Framework for Nodejs
33 lines (30 loc) • 1.3 kB
text/coffeescript
pathutil = require('path')
Snockets = require 'snockets'
Asset = require('../index').Asset
class exports.SnocketsAsset extends Asset
mimetype: 'text/javascript'
create: (options) ->
try
= pathutil.resolve options.filename
= pathutil.dirname
= options.compress or false
= options.debug or false
snockets = new Snockets()
if
files = snockets.getCompiledChain , { 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(), file.filename)
.replace(/\\/g, '\/')
scripts.push "// #{filename}\neval('#{script}\\n//@ sourceURL=#{filename}')\n"
= scripts.join('\n')
else
= snockets.getConcatenation , { async: false, minify: }
catch e
('error', e)
'created'