https://github.com/dependents/module-definition
Determines whether a JavaScript file is in the CommonJS, AMD, or ES6 format
https://github.com/dependents/module-definition
amd ast commonjs es6 javascript module
Last synced: 2 months ago
JSON representation
Determines whether a JavaScript file is in the CommonJS, AMD, or ES6 format
- Host: GitHub
- URL: https://github.com/dependents/module-definition
- Owner: dependents
- License: mit
- Created: 2014-03-18T13:59:02.000Z (over 12 years ago)
- Default Branch: main
- Last Pushed: 2026-04-14T05:47:38.000Z (2 months ago)
- Last Synced: 2026-04-14T07:33:11.107Z (2 months ago)
- Topics: amd, ast, commonjs, es6, javascript, module
- Language: JavaScript
- Homepage:
- Size: 734 KB
- Stars: 9
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# module-definition
[](https://github.com/dependents/module-definition/actions/workflows/ci.yml?query=branch%3Amain)
[](https://www.npmjs.com/package/module-definition)
[](https://www.npmjs.com/package/module-definition)
Determines the module definition type (CommonJS, AMD, ES6, or none) for a given JavaScript file
by walking through the AST.
```sh
npm install module-definition
```
## Usage
```js
const getModuleType = require('module-definition');
// Async
getModuleType('myscript.js', (error, type) => {
console.log(type);
});
// Sync
let type = getModuleType.sync('myscript.js');
console.log(type);
// From source (string or an AST)
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.
```js
const myFs = GetFs();
const options = { fileSystem: myFs };
// Async
getModuleType('myscript.js', (error, type) => {
console.log(type);
}, options);
// Sync
const type = getModuleType.sync('myscript.js', options);
```
## CLI
*Assumes a global install module-definition with `npm install -g module-definition`*
```sh
module-definition filename
```
### License
[MIT](LICENSE)