From ba850790ede283e32c2c0b2191c55efa25ff4868 Mon Sep 17 00:00:00 2001 From: Tim-Smart Date: Tue, 21 Sep 2010 13:23:45 +1200 Subject: [PATCH] Add require.extensions support. --- lib/coffee-script.js | 11 +++++++++-- src/coffee-script.coffee | 8 +++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/coffee-script.js b/lib/coffee-script.js index 0739fa07..f7b13060 100755 --- a/lib/coffee-script.js +++ b/lib/coffee-script.js @@ -1,12 +1,19 @@ (function() { - var Lexer, compile, helpers, lexer, parser, path; + var Lexer, compile, fs, helpers, lexer, parser, path; if (typeof process !== "undefined" && process !== null) { path = require('path'); + fs = require('fs'); Lexer = require('./lexer').Lexer; parser = require('./parser').parser; helpers = require('./helpers').helpers; helpers.extend(global, require('./nodes')); - if (require.registerExtension) { + if (require.extensions) { + require.extensions['.coffee'] = function(module, filename) { + var content; + content = compile(fs.readFileSync(filename, 'utf8')); + return module._compile(content, filename + '.js'); + }; + } else if (require.registerExtension) { require.registerExtension('.coffee', function(content) { return compile(content); }); diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 06db7fc2..8f6a6889 100755 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -9,11 +9,17 @@ # Set up dependencies correctly for both the server and the browser. if process? path = require 'path' + fs = require 'fs' Lexer = require('./lexer').Lexer parser = require('./parser').parser helpers = require('./helpers').helpers helpers.extend global, require './nodes' - if require.registerExtension + # TODO: Remove registerExtension when fully depreciated + if require.extensions + require.extensions['.coffee'] = (module, filename) -> + content = compile fs.readFileSync filename, 'utf8' + module._compile content, filename + '.js' + else if require.registerExtension require.registerExtension '.coffee', (content) -> compile content else this.exports = this.CoffeeScript = {}