# module-definition [![npm](http://img.shields.io/npm/v/module-definition.svg)](https://npmjs.org/package/module-definition) [![npm](http://img.shields.io/npm/dm/module-definition.svg)](https://npmjs.org/package/module-definition) Determines the module definition type (CommonJS, AMD, ES6, or none) for a given JavaScript file by walking through the AST. `npm install module-definition` ### Usage ```javascript var getModuleType = require('module-definition'); // Async getModuleType('myscript.js', function (err, type) { console.log(type); }); // Sync var type = getModuleType.sync('myscript.js'); console.log(type); // From source (string or an AST) var type = getModuleType.fromSource('define({foo: "foo"});'); console.log(type); ``` Passes one of the following strings to the given callback or returns the string in sync api: * amd * commonjs * es6 * none * You may also pass an AST to `fromSource` to avoid an internal parsing of the source When specifying a filename, using the sync or async api, you can also provide an `options` object with an alternative `fs` implementation used to read the source file with. ```javascript var myFs = GetFs(); var options = {fileSystem: myFs} // Async getModuleType('myscript.js', function (err, type) { console.log(type); }, options); // Sync var type = getModuleType.sync('myscript.js', options); ``` Via shell command (requires a global install: `npm install -g module-definition`) ``` module-definition filename ```