muffin.io
Version:
A full stack development tool for creating modern webapps
21 lines (15 loc) • 622 B
text/coffeescript
# A superclass for Muffin plugins of type 'compiler'.
class Compiler
type: 'compiler'
# Inspect JavaScript content to infer dependencies.
# Borrowed from [require.js](http://requirejs.org/).
parseDeps: (content) ->
commentRegex = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg
cjsRequireRegex = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g
# Find all the require calls and push them into dependencies.
deps = []
content
.replace(commentRegex, '') # remove comments
.replace(cjsRequireRegex, (match, dep) -> deps.push(dep) if dep not in deps)
deps
module.exports = Compiler