asset-rack
Version:
Static Web Framework for Nodejs
43 lines (37 loc) • 1.32 kB
text/coffeescript
fs = require 'fs'
pathutil = require 'path'
async = require 'async'
mime = require 'mime'
{Asset} = require '../.'
{walk} = require '../util'
class exports.DynamicAssets extends Asset
create: (options) ->
= pathutil.resolve options.dirname
=
{, , , , } = options
?= '/'
+= '/' unless .slice(-1) is '/'
?= mime.extensions[::mimetype] if ::mimetype?
= '.' + if ? and [0] isnt '.'
?= {}
.hash =
.maxAge =
= []
walk ,
ignoreFolders: true
filter:
, (file, done) =>
url = pathutil.dirname(file.relpath)
url = url.split pathutil.sep
url = [] if url[0] is '.'
if ?
url.push file.namenoext +
else
url.push file.name
opts =
url: + url.join '/'
filename: file.path
opts[k] = v for own k, v of
new opts
done()
, => 'created'