work.suroh.tk/node_modules/module-definition/Readme.md

56 lines
1.4 KiB
Markdown

# 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
```