|
1 | | -/*! amdclean - v0.2.5 - 2013-10-15 |
| 1 | +/*! amdclean - v0.2.6 - 2013-10-15 |
2 | 2 | * http://gregfranko.com/amdclean |
3 | 3 | * Copyright (c) 2013 Greg Franko; Licensed MIT*/ |
4 | 4 |
|
|
12 | 12 | } else { |
13 | 13 | factory.env = 'web'; |
14 | 14 | } |
15 | | - define([], function() { |
16 | | - return factory(); |
| 15 | + factory.amd = true; |
| 16 | + define(['esprima', 'estraverse', 'escodegen', 'underscore'], function(esprima, estraverse, escodegen, underscore) { |
| 17 | + return factory({ 'esprima': esprima, 'estraverse': estraverse, 'escodegen': escodegen, 'underscore': underscore }); |
17 | 18 | }); |
18 | 19 | } else if (typeof exports !== 'undefined') { |
19 | 20 | factory.env = 'node'; |
|
22 | 23 | factory.env = 'web'; |
23 | 24 | root.amdclean = factory(); |
24 | 25 | } |
25 | | -}(this, function cleanamd() { |
| 26 | +}(this, function cleanamd(amdDependencies) { |
26 | 27 | // Environment - either node or web |
27 | 28 | var codeEnv = cleanamd.env, |
28 | 29 | // Third-Party Dependencies |
29 | | - esprima = codeEnv === 'node' ? require('esprima'): window.esprima, |
30 | | - estraverse = codeEnv === 'node' ? require('estraverse'): window.estraverse, |
31 | | - escodegen = codeEnv === 'node' ? require('escodegen'): window.escodegen, |
32 | | - _ = codeEnv === 'node' ? require('lodash'): window._, |
| 30 | + esprima = cleanamd.amd ? amdDependencies.esprima : codeEnv === 'node' ? require('esprima') : window.esprima, |
| 31 | + estraverse = cleanamd.amd ? amdDependencies.estraverse : codeEnv === 'node' ? require('estraverse'): window.estraverse, |
| 32 | + escodegen = cleanamd.amd ? amdDependencies.escodegen.generate ? amdDependencies.escodegen : codeEnv === 'node' ? require('escodegen') : window.escodegen : require('escodegen'), |
| 33 | + _ = cleanamd.amd ? amdDependencies.underscore : codeEnv === 'node' ? require('lodash'): window._, |
33 | 34 | fs = codeEnv === 'node' ? require('fs'): {}, // End Third-Party Dependencies |
34 | 35 | // The Public API object |
35 | 36 | publicAPI = { |
36 | 37 | // Current project version number |
37 | | - VERSION: '0.2.5', |
| 38 | + VERSION: '0.2.6', |
38 | 39 | // Environment - either node or web |
39 | 40 | env: codeEnv, |
40 | | - // Object that keeps track of module ids/names that are used |
41 | | - moduleNamesStore: {}, |
42 | 41 | // All of the error messages presented to users |
43 | 42 | errorMsgs: { |
44 | 43 | // A module is defined more than one time |
|
208 | 207 | return name; |
209 | 208 | } |
210 | 209 | }, |
211 | | - // hasUniqueModelName |
212 | | - // ------------------ |
213 | | - // Returns if the current module id/name has already been used |
214 | | - hasUniqueModuleName: function(node) { |
215 | | - var moduleName; |
216 | | - if( node.expression['arguments'] && |
217 | | - Array.isArray(node.expression['arguments']) && |
218 | | - _.isPlainObject(node.expression['arguments'][0]) && |
219 | | - node.expression['arguments'][0].value ) { |
220 | | - moduleName = node.expression['arguments'][0].value; |
221 | | - if(_.isString(moduleName) && moduleName.length > 0 && !publicAPI.moduleNamesStore[moduleName]) { |
222 | | - publicAPI.moduleNamesStore[moduleName] = true; |
223 | | - return true; |
224 | | - } |
225 | | - else { |
226 | | - throw new Error(publicAPI.errorMsgs.uniqueModuleName.error(moduleName) + publicAPI.errorMsgs.uniqueModuleName.fix + publicAPI.errorMsgs.uniqueModuleName.exiting); |
227 | | - } |
228 | | - } else { |
229 | | - return true; |
230 | | - } |
231 | | - }, |
232 | 210 | // convertCommonJSDeclaration |
233 | 211 | // -------------------------- |
234 | 212 | // Replaces the CommonJS variable declaration with a variable the same name as the argument |
|
502 | 480 | isDefine = publicAPI.isDefine(node), |
503 | 481 | isRequire = publicAPI.isRequire(node), |
504 | 482 | startLineNumber; |
505 | | - if(((isDefine && publicAPI.hasUniqueModuleName(node)) || isRequire)) { |
| 483 | + if(isDefine || isRequire) { |
506 | 484 | startLineNumber = node.expression.loc.start.line; |
507 | 485 | if((publicAPI.commentLineNumbers[startLineNumber] || publicAPI.commentLineNumbers['' + (parseInt(startLineNumber, 10) - 1)])) { |
508 | 486 | return node; |
|
647 | 625 | }); |
648 | 626 | } |
649 | 627 | escodegenOptions = _.isPlainObject(obj.escodegen) ? obj.escodegen : {}; |
650 | | - publicAPI.moduleNamesStore = {}; |
651 | 628 | return publicAPI.generateCode(ast, escodegenOptions); |
652 | 629 | } |
653 | 630 | }; |
|
0 commit comments