https://github.com/jchip/check-pkg-new-version-engine
Provide generic engine for npm CLI packages to check newer version
https://github.com/jchip/check-pkg-new-version-engine
Last synced: 6 months ago
JSON representation
Provide generic engine for npm CLI packages to check newer version
- Host: GitHub
- URL: https://github.com/jchip/check-pkg-new-version-engine
- Owner: jchip
- Created: 2021-02-09T19:20:33.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-04-08T21:12:15.000Z (about 5 years ago)
- Last Synced: 2025-08-27T22:13:19.108Z (10 months ago)
- Language: TypeScript
- Size: 103 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# check-pkg-new-version-engine
Provide generic engine for npm CLI packages to check newer version.
- bundler friendly (webpack etc)
- minimal - no bloats, depend on caller to provide fetch and npm config
Example:
```js
import os from "os";
import Path from "path";
import { promises as Fs } from "fs";
import fetch from "node-fetch"; // or your favorite fetch lib
import ini from "ini";
import semver from "semver";
import { checkPkgNewVersionEngine } from "check-pkg-new-version-engine";
const myPkg = require("./package.json");
async function loadIni(dir, rcFile = ".npmrc") {
try {
const iniFile = Path.join(dir, rcFile);
const iniData = await Fs.readFile(iniFile, "utf-8");
const iniRc = ini.parse(iniData);
return iniRc;
} catch {
return {};
}
}
async function getNpmRcConfig() {
return { ...(await loadIni(os.homedir())), ...(await loadIni(process.cwd())) };
}
async function start() {
checkPkgNewVersionEngine({
pkg,
// without npm config the engine falls back to "https://registry.npmjs.org/"
npmConfig: await getNpmRcConfig(),
checkIsNewer: (pkg, distTags, tag) => semver.gt(distTags[tag], pkg.version),
fetchJSON: async (url, options) => {
const res = await fetch(url, options);
return await res.json();
},
});
}
```