Skip to content

Commit

Permalink
Moved registerExtension() into 'transform' module and renamed it 'cin…
Browse files Browse the repository at this point in the history
…ch'.
  • Loading branch information
pguillory committed Feb 24, 2011
1 parent f476a99 commit e18d46c
Show file tree
Hide file tree
Showing 73 changed files with 40 additions and 52 deletions.
4 changes: 1 addition & 3 deletions index.js
@@ -1,3 +1 @@
exports.registerExtension = require('./lib/register').registerExtension; module.exports = require('./lib/cinch.js')
exports.transformSource = require("./lib/transform").transformSource;
exports.transformFile = require("./lib/transform").transformFile;
72 changes: 39 additions & 33 deletions lib/transform.js → lib/cinch.js
Expand Up @@ -13,57 +13,61 @@ var idents = require('./idents')


var banner = "/*** Generated by Cinch ***/\n"; var banner = "/*** Generated by Cinch ***/\n";


exports.transformSource = function(source) { exports.registerExtension = function(options) {
idents.reset() options = options || {}
var script = Narcissus.parser.parse(source)
transform_script(script)
var transformed = pp(script) + '\n'
return transformed
}


exports.transformFile = function(filename_, options) { // force require() to check for .js_ before .js
var dirname = path.dirname(filename_) var js_extension = require.extensions['.js']
var ext = path.extname(filename_) delete require.extensions['.js']
var basename = path.basename(filename_, ext)
var filename = path.join(dirname, basename + '.js')


idents.reset() require.extensions[options.extension || '.js_'] = function(module, filename_) {
var dirname = path.dirname(filename_)
var ext = path.extname(filename_)
var basename = path.basename(filename_, ext)
var filename = path.join(dirname, basename + '.js')


var source = fs.readFileSync(filename_, 'utf8'); var source = fs.readFileSync(filename_, 'utf8');


if (options.saveParseTree) {
try { try {
var script = Narcissus.parser.parse(source) Narcissus.parser.parse(source)
} catch (err) { } catch (err) {
module._compile(source, filename_) module._compile(source, filename_)
throw err throw err
} }
strip(script)
fs.writeFileSync(filename + '.before.json', JSON.stringify(script), 'utf8')
}


try { if (options.saveParseTree) {
var script = Narcissus.parser.parse(source)
strip(script)
fs.writeFileSync(filename_ + '.parsed.json', JSON.stringify(script), 'utf8')

var script = Narcissus.parser.parse(source)
transform_script(script)
strip(script)
fs.writeFileSync(filename + '.parsed.json', JSON.stringify(script), 'utf8')
}

var script = Narcissus.parser.parse(source) var script = Narcissus.parser.parse(source)
} catch (err) { transform_script(script)
module._compile(source, filename_) var transformed = pp(script) + '\n'
throw err
} if (options.saveSource) {
transform_script(script) fs.writeFileSync(filename, transformed, 'utf8');
var transformed = pp(script) + '\n' }


if (options.saveParseTree) { module._compile(transformed, filename)
strip(script)
fs.writeFileSync(filename + '.after.json', JSON.stringify(script), 'utf8')
} }


if (options.saveSource) { require.extensions['.js'] = js_extension
fs.writeFileSync(filename, transformed, 'utf8'); }
}


return transformed exports.transformSource = function(source) {
var script = Narcissus.parser.parse(source)
transform_script(script)
return pp(script) + '\n'
} }


function transform_script(script) { function transform_script(script) {
idents.reset()
scan_for_functions_to_transform(script).forEach(transform_function) scan_for_functions_to_transform(script).forEach(transform_function)
replace_passthrough_callbacks(script) replace_passthrough_callbacks(script)
replace_passthrough_functions(script) replace_passthrough_functions(script)
Expand Down Expand Up @@ -153,10 +157,12 @@ function is_passthrough_function(n) {
} }
function foo() { function foo() {
bar() bar()
baz()
} }
// ...to... // ...to...
{ {
bar() bar()
baz()
} }
*/ */
function inline_functions_only_called_once(script) { function inline_functions_only_called_once(script) {
Expand Down
16 changes: 0 additions & 16 deletions lib/register.js

This file was deleted.

0 comments on commit e18d46c

Please sign in to comment.