Initial commit
This commit is contained in:
commit
f1548f10cc
7585 files changed
+1411120
No files matched your search
+89
@@ -0,0 +1,89 @@
|
||||
/**
|
||||
* Find the package.json file, either from a TypeScript file somewhere not
|
||||
* in a 'dist' folder, or a built and/or installed 'dist' folder.
|
||||
*
|
||||
* Note: this *only* works if you build your code into `'./dist'`, and that the
|
||||
* source path does not also contain `'dist'`! If you don't build into
|
||||
* `'./dist'`, or if you have files at `./src/dist/dist.ts`, then this will
|
||||
* not work properly!
|
||||
*
|
||||
* The default `pathFromSrc` option assumes that the calling code lives one
|
||||
* folder below the root of the package. Otherwise, it must be specified.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* ```ts
|
||||
* // src/index.ts
|
||||
* import { findPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = findPackageJson(import.meta.url)
|
||||
* console.log(`package.json found at ${pj}`)
|
||||
* ```
|
||||
*
|
||||
* If the caller is deeper within the project source, then you must provide
|
||||
* the appropriate fallback path:
|
||||
*
|
||||
* ```ts
|
||||
* // src/components/something.ts
|
||||
* import { findPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = findPackageJson(import.meta.url, '../../package.json')
|
||||
* console.log(`package.json found at ${pj}`)
|
||||
* ```
|
||||
*
|
||||
* When running from CommmonJS, use `__filename` instead of `import.meta.url`
|
||||
*
|
||||
* ```ts
|
||||
* // src/index.cts
|
||||
* import { findPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = findPackageJson(__filename)
|
||||
* console.log(`package.json found at ${pj}`)
|
||||
* ```
|
||||
*/
|
||||
export declare const findPackageJson: (from: string | URL, pathFromSrc?: string) => string;
|
||||
/**
|
||||
* Load the package.json file, either from a TypeScript file somewhere not
|
||||
* in a 'dist' folder, or a built and/or installed 'dist' folder.
|
||||
*
|
||||
* Note: this *only* works if you build your code into `'./dist'`, and that the
|
||||
* source path does not also contain `'dist'`! If you don't build into
|
||||
* `'./dist'`, or if you have files at `./src/dist/dist.ts`, then this will
|
||||
* not work properly!
|
||||
*
|
||||
* The default `pathFromSrc` option assumes that the calling code lives one
|
||||
* folder below the root of the package. Otherwise, it must be specified.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* ```ts
|
||||
* // src/index.ts
|
||||
* import { loadPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = loadPackageJson(import.meta.url)
|
||||
* console.log(`Hello from ${pj.name}@${pj.version}`)
|
||||
* ```
|
||||
*
|
||||
* If the caller is deeper within the project source, then you must provide
|
||||
* the appropriate fallback path:
|
||||
*
|
||||
* ```ts
|
||||
* // src/components/something.ts
|
||||
* import { loadPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = loadPackageJson(import.meta.url, '../../package.json')
|
||||
* console.log(`Hello from ${pj.name}@${pj.version}`)
|
||||
* ```
|
||||
*
|
||||
* When running from CommmonJS, use `__filename` instead of `import.meta.url`
|
||||
*
|
||||
* ```ts
|
||||
* // src/index.cts
|
||||
* import { loadPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = loadPackageJson(__filename)
|
||||
* console.log(`Hello from ${pj.name}@${pj.version}`)
|
||||
* ```
|
||||
*/
|
||||
export declare const loadPackageJson: (from: string | URL, pathFromSrc?: string) => any;
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,eAAe,SACpB,MAAM,GAAG,GAAG,gBACL,MAAM,KAClB,MAsCF,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,eAAe,SACpB,MAAM,GAAG,GAAG,gBACL,MAAM,QAEiD,CAAA"}
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.loadPackageJson = exports.findPackageJson = void 0;
|
||||
const node_fs_1 = require("node:fs");
|
||||
const node_path_1 = require("node:path");
|
||||
const node_url_1 = require("node:url");
|
||||
const NM = `${node_path_1.sep}node_modules${node_path_1.sep}`;
|
||||
const STORE = `.store${node_path_1.sep}`;
|
||||
const PKG = `${node_path_1.sep}package${node_path_1.sep}`;
|
||||
const DIST = `${node_path_1.sep}dist${node_path_1.sep}`;
|
||||
/**
|
||||
* Find the package.json file, either from a TypeScript file somewhere not
|
||||
* in a 'dist' folder, or a built and/or installed 'dist' folder.
|
||||
*
|
||||
* Note: this *only* works if you build your code into `'./dist'`, and that the
|
||||
* source path does not also contain `'dist'`! If you don't build into
|
||||
* `'./dist'`, or if you have files at `./src/dist/dist.ts`, then this will
|
||||
* not work properly!
|
||||
*
|
||||
* The default `pathFromSrc` option assumes that the calling code lives one
|
||||
* folder below the root of the package. Otherwise, it must be specified.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* ```ts
|
||||
* // src/index.ts
|
||||
* import { findPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = findPackageJson(import.meta.url)
|
||||
* console.log(`package.json found at ${pj}`)
|
||||
* ```
|
||||
*
|
||||
* If the caller is deeper within the project source, then you must provide
|
||||
* the appropriate fallback path:
|
||||
*
|
||||
* ```ts
|
||||
* // src/components/something.ts
|
||||
* import { findPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = findPackageJson(import.meta.url, '../../package.json')
|
||||
* console.log(`package.json found at ${pj}`)
|
||||
* ```
|
||||
*
|
||||
* When running from CommmonJS, use `__filename` instead of `import.meta.url`
|
||||
*
|
||||
* ```ts
|
||||
* // src/index.cts
|
||||
* import { findPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = findPackageJson(__filename)
|
||||
* console.log(`package.json found at ${pj}`)
|
||||
* ```
|
||||
*/
|
||||
const findPackageJson = (from, pathFromSrc = '../package.json') => {
|
||||
const f = typeof from === 'object' || from.startsWith('file://') ?
|
||||
(0, node_url_1.fileURLToPath)(from)
|
||||
: from;
|
||||
const __dirname = (0, node_path_1.dirname)(f);
|
||||
const nms = __dirname.lastIndexOf(NM);
|
||||
if (nms !== -1) {
|
||||
// inside of node_modules. find the dist directly under package name.
|
||||
const nm = __dirname.substring(0, nms + NM.length);
|
||||
const pkgDir = __dirname.substring(nms + NM.length);
|
||||
// affordance for yarn berry, which puts package contents in
|
||||
// '.../node_modules/.store/${id}-${hash}/package/...'
|
||||
if (pkgDir.startsWith(STORE)) {
|
||||
const pkg = pkgDir.indexOf(PKG, STORE.length);
|
||||
if (pkg) {
|
||||
return (0, node_path_1.resolve)(nm, pkgDir.substring(0, pkg + PKG.length), 'package.json');
|
||||
}
|
||||
}
|
||||
const pkgName = pkgDir.startsWith('@') ?
|
||||
pkgDir.split(node_path_1.sep, 2).join(node_path_1.sep)
|
||||
: String(pkgDir.split(node_path_1.sep)[0]);
|
||||
return (0, node_path_1.resolve)(nm, pkgName, 'package.json');
|
||||
}
|
||||
else {
|
||||
// see if we are in a dist folder.
|
||||
const d = __dirname.lastIndexOf(DIST);
|
||||
if (d !== -1) {
|
||||
return (0, node_path_1.resolve)(__dirname.substring(0, d), 'package.json');
|
||||
}
|
||||
else {
|
||||
return (0, node_path_1.resolve)(__dirname, pathFromSrc);
|
||||
}
|
||||
}
|
||||
};
|
||||
exports.findPackageJson = findPackageJson;
|
||||
/**
|
||||
* Load the package.json file, either from a TypeScript file somewhere not
|
||||
* in a 'dist' folder, or a built and/or installed 'dist' folder.
|
||||
*
|
||||
* Note: this *only* works if you build your code into `'./dist'`, and that the
|
||||
* source path does not also contain `'dist'`! If you don't build into
|
||||
* `'./dist'`, or if you have files at `./src/dist/dist.ts`, then this will
|
||||
* not work properly!
|
||||
*
|
||||
* The default `pathFromSrc` option assumes that the calling code lives one
|
||||
* folder below the root of the package. Otherwise, it must be specified.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* ```ts
|
||||
* // src/index.ts
|
||||
* import { loadPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = loadPackageJson(import.meta.url)
|
||||
* console.log(`Hello from ${pj.name}@${pj.version}`)
|
||||
* ```
|
||||
*
|
||||
* If the caller is deeper within the project source, then you must provide
|
||||
* the appropriate fallback path:
|
||||
*
|
||||
* ```ts
|
||||
* // src/components/something.ts
|
||||
* import { loadPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = loadPackageJson(import.meta.url, '../../package.json')
|
||||
* console.log(`Hello from ${pj.name}@${pj.version}`)
|
||||
* ```
|
||||
*
|
||||
* When running from CommmonJS, use `__filename` instead of `import.meta.url`
|
||||
*
|
||||
* ```ts
|
||||
* // src/index.cts
|
||||
* import { loadPackageJson } from 'package-json-from-dist'
|
||||
*
|
||||
* const pj = loadPackageJson(__filename)
|
||||
* console.log(`Hello from ${pj.name}@${pj.version}`)
|
||||
* ```
|
||||
*/
|
||||
const loadPackageJson = (from, pathFromSrc = '../package.json') => JSON.parse((0, node_fs_1.readFileSync)((0, exports.findPackageJson)(from, pathFromSrc), 'utf8'));
|
||||
exports.loadPackageJson = loadPackageJson;
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AACtC,yCAAiD;AACjD,uCAAwC;AAExC,MAAM,EAAE,GAAG,GAAG,eAAG,eAAe,eAAG,EAAE,CAAA;AACrC,MAAM,KAAK,GAAG,SAAS,eAAG,EAAE,CAAA;AAC5B,MAAM,GAAG,GAAG,GAAG,eAAG,UAAU,eAAG,EAAE,CAAA;AACjC,MAAM,IAAI,GAAG,GAAG,eAAG,OAAO,eAAG,EAAE,CAAA;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACI,MAAM,eAAe,GAAG,CAC7B,IAAkB,EAClB,cAAsB,iBAAiB,EAC/B,EAAE;IACV,MAAM,CAAC,GACL,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,IAAA,wBAAa,EAAC,IAAI,CAAC;QACrB,CAAC,CAAC,IAAI,CAAA;IACR,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,CAAC,CAAC,CAAA;IAE5B,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACrC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,qEAAqE;QACrE,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;QACnD,4DAA4D;QAC5D,sDAAsD;QACtD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAC7C,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,IAAA,mBAAO,EACZ,EAAE,EACF,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EACrC,cAAc,CACf,CAAA;YACH,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GACX,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,eAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAG,CAAC;YAChC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,OAAO,IAAA,mBAAO,EAAC,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;IAC7C,CAAC;SAAM,CAAC;QACN,kCAAkC;QAClC,MAAM,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,IAAA,mBAAO,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,mBAAO,EAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAzCY,QAAA,eAAe,mBAyC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACI,MAAM,eAAe,GAAG,CAC7B,IAAkB,EAClB,cAAsB,iBAAiB,EACvC,EAAE,CACF,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAA,uBAAe,EAAC,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AAJzD,QAAA,eAAe,mBAI0C","sourcesContent":["import { readFileSync } from 'node:fs'\nimport { dirname, resolve, sep } from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst NM = `${sep}node_modules${sep}`\nconst STORE = `.store${sep}`\nconst PKG = `${sep}package${sep}`\nconst DIST = `${sep}dist${sep}`\n\n/**\n * Find the package.json file, either from a TypeScript file somewhere not\n * in a 'dist' folder, or a built and/or installed 'dist' folder.\n *\n * Note: this *only* works if you build your code into `'./dist'`, and that the\n * source path does not also contain `'dist'`! If you don't build into\n * `'./dist'`, or if you have files at `./src/dist/dist.ts`, then this will\n * not work properly!\n *\n * The default `pathFromSrc` option assumes that the calling code lives one\n * folder below the root of the package. Otherwise, it must be specified.\n *\n * Example:\n *\n * ```ts\n * // src/index.ts\n * import { findPackageJson } from 'package-json-from-dist'\n *\n * const pj = findPackageJson(import.meta.url)\n * console.log(`package.json found at ${pj}`)\n * ```\n *\n * If the caller is deeper within the project source, then you must provide\n * the appropriate fallback path:\n *\n * ```ts\n * // src/components/something.ts\n * import { findPackageJson } from 'package-json-from-dist'\n *\n * const pj = findPackageJson(import.meta.url, '../../package.json')\n * console.log(`package.json found at ${pj}`)\n * ```\n *\n * When running from CommmonJS, use `__filename` instead of `import.meta.url`\n *\n * ```ts\n * // src/index.cts\n * import { findPackageJson } from 'package-json-from-dist'\n *\n * const pj = findPackageJson(__filename)\n * console.log(`package.json found at ${pj}`)\n * ```\n */\nexport const findPackageJson = (\n from: string | URL,\n pathFromSrc: string = '../package.json',\n): string => {\n const f =\n typeof from === 'object' || from.startsWith('file://') ?\n fileURLToPath(from)\n : from\n const __dirname = dirname(f)\n\n const nms = __dirname.lastIndexOf(NM)\n if (nms !== -1) {\n // inside of node_modules. find the dist directly under package name.\n const nm = __dirname.substring(0, nms + NM.length)\n const pkgDir = __dirname.substring(nms + NM.length)\n // affordance for yarn berry, which puts package contents in\n // '.../node_modules/.store/${id}-${hash}/package/...'\n if (pkgDir.startsWith(STORE)) {\n const pkg = pkgDir.indexOf(PKG, STORE.length)\n if (pkg) {\n return resolve(\n nm,\n pkgDir.substring(0, pkg + PKG.length),\n 'package.json',\n )\n }\n }\n const pkgName =\n pkgDir.startsWith('@') ?\n pkgDir.split(sep, 2).join(sep)\n : String(pkgDir.split(sep)[0])\n return resolve(nm, pkgName, 'package.json')\n } else {\n // see if we are in a dist folder.\n const d = __dirname.lastIndexOf(DIST)\n if (d !== -1) {\Line truncated
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "commonjs"
|
||||
}
|
||||
Reference in new issue
Block a user