is-core-module
Advanced tools
Comparing version 1.0.2 to 2.0.0
70
index.js
@@ -1,3 +0,69 @@ | ||
module.exports = function(packageName) { | ||
return !!~Object.keys(process.binding('natives')).indexOf(packageName); | ||
'use strict'; | ||
var has = require('has'); | ||
function specifierIncluded(current, specifier) { | ||
var nodeParts = current.split('.'); | ||
var parts = specifier.split(' '); | ||
var op = parts.length > 1 ? parts[0] : '='; | ||
var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.'); | ||
for (var i = 0; i < 3; ++i) { | ||
var cur = parseInt(nodeParts[i] || 0, 10); | ||
var ver = parseInt(versionParts[i] || 0, 10); | ||
if (cur === ver) { | ||
continue; // eslint-disable-line no-restricted-syntax, no-continue | ||
} | ||
if (op === '<') { | ||
return cur < ver; | ||
} | ||
if (op === '>=') { | ||
return cur >= ver; | ||
} | ||
return false; | ||
} | ||
return op === '>='; | ||
} | ||
function matchesRange(current, range) { | ||
var specifiers = range.split(/ ?&& ?/); | ||
if (specifiers.length === 0) { | ||
return false; | ||
} | ||
for (var i = 0; i < specifiers.length; ++i) { | ||
if (!specifierIncluded(current, specifiers[i])) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
} | ||
function versionIncluded(nodeVersion, specifierValue) { | ||
if (typeof specifierValue === 'boolean') { | ||
return specifierValue; | ||
} | ||
var current = typeof nodeVersion === 'undefined' | ||
? process.versions && process.versions.node && process.versions.node | ||
: nodeVersion; | ||
if (typeof current !== 'string') { | ||
throw new TypeError(typeof nodeVersion === 'undefined' ? 'Unable to determine current node version' : 'If provided, a valid node version is required'); | ||
} | ||
if (specifierValue && typeof specifierValue === 'object') { | ||
for (var i = 0; i < specifierValue.length; ++i) { | ||
if (matchesRange(current, specifierValue[i])) { | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
return matchesRange(current, specifierValue); | ||
} | ||
var data = require('./core.json'); | ||
module.exports = function isCore(x, nodeVersion) { | ||
return has(data, x) && versionIncluded(nodeVersion, data[x]); | ||
}; |
{ | ||
"name": "is-core-module", | ||
"version": "1.0.2", | ||
"description": "check if packageName is a core module", | ||
"main": "index.js", | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\" && exit 1" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/meandavejustice/is-core-module.git" | ||
}, | ||
"keywords": [ | ||
"core", | ||
"modules", | ||
"npm", | ||
"dependencies" | ||
], | ||
"author": "meandave", | ||
"license": "MIT", | ||
"bugs": { | ||
"url": "https://github.com/meandavejustice/is-core-module/issues" | ||
}, | ||
"homepage": "https://github.com/meandavejustice/is-core-module" | ||
"name": "is-core-module", | ||
"version": "2.0.0", | ||
"description": "Is this specifier a node.js core module?", | ||
"main": "index.js", | ||
"exports": { | ||
".": [ | ||
{ | ||
"default": "./index.js" | ||
}, | ||
"./index.js" | ||
], | ||
"./package.json": "./package.json" | ||
}, | ||
"scripts": { | ||
"lint": "eslint .", | ||
"pretest": "npm run lint", | ||
"tests-only": "tape test", | ||
"test": "npm run tests-only", | ||
"posttest": "aud --production", | ||
"version": "auto-changelog && git add CHANGELOG.md", | ||
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/inspect-js/is-core-module.git" | ||
}, | ||
"keywords": [ | ||
"core", | ||
"modules", | ||
"module", | ||
"npm", | ||
"node", | ||
"dependencies" | ||
], | ||
"author": "Jordan Harband <ljharb@gmail.com>", | ||
"funding": { | ||
"url": "https://github.com/sponsors/ljharb" | ||
}, | ||
"license": "MIT", | ||
"bugs": { | ||
"url": "https://github.com/inspect-js/is-core-module/issues" | ||
}, | ||
"homepage": "https://github.com/inspect-js/is-core-module", | ||
"dependencies": { | ||
"has": "^1.0.3" | ||
}, | ||
"devDependencies": { | ||
"@ljharb/eslint-config": "^17.2.0", | ||
"aud": "^1.1.2", | ||
"auto-changelog": "^2.2.1", | ||
"eslint": "^7.10.0", | ||
"tape": "^5.0.1" | ||
}, | ||
"auto-changelog": { | ||
"output": "CHANGELOG.md", | ||
"template": "keepachangelog", | ||
"unreleased": false, | ||
"commitLimit": false, | ||
"backfillLimit": false, | ||
"hideCredit": true | ||
} | ||
} |
@@ -1,18 +0,37 @@ | ||
# is-core-module | ||
# is-core-module <sup>[![Version Badge][2]][1]</sup> | ||
[![NPM](https://nodei.co/npm/is-core-module.png?downloads=true)](https://npmjs.org/package/is-core-module) | ||
[![Build Status][3]][4] | ||
[![dependency status][5]][6] | ||
[![dev dependency status][7]][8] | ||
[![License][license-image]][license-url] | ||
[![Downloads][downloads-image]][downloads-url] | ||
Returns whether or not the `packageName` you pass in is a core module or not. | ||
[![npm badge][11]][1] | ||
Is this specifier a node.js core module? Optionally provide a node version to check; defaults to the current node version. | ||
Look at the source, you probably just want to use that function. I just can't ever remember it. | ||
## Example | ||
# Usage | ||
``` javascript | ||
require('is-core-module')('fs') // returns true | ||
require('is-core-module')('butts') // returns false | ||
```js | ||
var isCore = require('is-core-module'); | ||
var assert = require('assert'); | ||
assert(isCore('fs')); | ||
assert(!isCore('butts')); | ||
``` | ||
## License | ||
MIT | ||
## Tests | ||
Clone the repo, `npm install`, and run `npm test` | ||
[1]: https://npmjs.org/package/is-core-module | ||
[2]: https://versionbadg.es/inspect-js/is-core-module.svg | ||
[3]: https://travis-ci.com/inspect-js/is-core-module.svg | ||
[4]: https://travis-ci.com/inspect-js/is-core-module | ||
[5]: https://david-dm.org/inspect-js/is-core-module.svg | ||
[6]: https://david-dm.org/inspect-js/is-core-module | ||
[7]: https://david-dm.org/inspect-js/is-core-module/dev-status.svg | ||
[8]: https://david-dm.org/inspect-js/is-core-module#info=devDependencies | ||
[11]: https://nodei.co/npm/is-core-module.png?downloads=true&stars=true | ||
[license-image]: https://img.shields.io/npm/l/is-core-module.svg | ||
[license-url]: LICENSE | ||
[downloads-image]: https://img.shields.io/npm/dm/is-core-module.svg | ||
[downloads-url]: https://npm-stat.com/charts.html?package=is-core-module |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 2 instances in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Trivial Package
Supply chain riskPackages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency.
Found 1 instance in 1 package
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
14711
12
210
0
38
1
5
5
2
+ Addedhas@^1.0.3
+ Addedhas@1.0.4(transitive)