caffeine-mc
Version:
Select, configure and extend your to-JavaScript compiler, with arbitrary code, on a per file bases from within the file.
34 lines (29 loc) • 1.25 kB
text/coffeescript
{defineModule, log} = require 'art-standard-lib'
realRequire = eval 'require'
CaffeineMc = require './namespace'
defineModule module, class Register
# Register compiler with NODEjs for all CaffeineMc.fileExtensions
# OUT: CaffeineMc
@verbose: false
@register: ->
throw new Error "please update NODE.js" unless realRequire.extensions # old NODE
for ext in CaffeineMc.fileExtensions
realRequire.extensions[".#{ext}"] ||= (module, filename) ->
try
if Register.verbose
log loading: filename
answer = CaffeineMc.compileFileSync filename, inlineMap: true, sourceRoot: "", cache: true
catch error
CaffeineMc.displayError error
# process.exit 1
module._compile "throw new Error('CaffeineMc: error compiling #{filename}');", filename if Register.verbose
if answer?
try
module._compile answer.compiled.js, filename
catch error
CaffeineMc.displayError error
# process.exit 1
if Register.verbose
log "caffeine-mc-compile": {filename, answer}
module._compile "\nthrow new Error('CaffeineMc: error evaluating: #{filename}');\n", filename
CaffeineMc