From 54e12e5d16cd60b9f758f2c74867f258990c2ae2 Mon Sep 17 00:00:00 2001 From: Todd Geist Date: Thu, 14 Apr 2016 09:55:48 -0700 Subject: [PATCH] fixes #113 --- generators/service/index.js | 1 + lib/transform.js | 4 ++++ test/transform.test.js | 22 ++++++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/generators/service/index.js b/generators/service/index.js index ae6d9d93..6cfebe7f 100644 --- a/generators/service/index.js +++ b/generators/service/index.js @@ -12,6 +12,7 @@ function importService(filename, name, moduleName) { var ast = transform.parse(content); transform.addImport(ast, name, moduleName); + name = inflect.camelize(inflect.underscore(name), false); transform.addLastInFunction(ast, 'module.exports', 'app.configure(' + name + ');'); fs.writeFileSync(filename, transform.print(ast)); diff --git a/lib/transform.js b/lib/transform.js index dcf0a9a8..113700a4 100644 --- a/lib/transform.js +++ b/lib/transform.js @@ -1,5 +1,6 @@ var recast = require('recast'); var traverse = require('ast-traverse'); +var inflect = require('i')(); var parse = exports.parse = function(code) { return recast.parse(code); @@ -88,6 +89,9 @@ exports.addLastInFunction = function(ast, search, code) { }; exports.addImport = function(ast, varname, modulename) { + + varname = inflect.camelize(inflect.underscore(varname), false) + ast = convert(ast); var index = 0; diff --git a/test/transform.test.js b/test/transform.test.js index 56761907..cfb1c643 100644 --- a/test/transform.test.js +++ b/test/transform.test.js @@ -24,6 +24,28 @@ describe('transforms', () => { }; `); }); + + it('addImport with hyphenated-name', () => { + const ast = transform.addImport(` + const first = require('first'); + + module.exports = function() { + // A comment + }; + `, 'my-service', 'my-service'); + + const output = transform.print(ast); + + assert.equal(output, ` + const myService = require('my-service'); + const first = require('first'); + + module.exports = function() { + // A comment + }; + `); + }); + it('addImport with \'use strict\';', () => { const code = `