@pkgr/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/constants.d.ts +4 -0
- package/lib/constants.js +5 -0
- package/lib/constants.js.map +1 -0
- package/lib/helpers.d.ts +5 -0
- package/lib/helpers.js +47 -0
- package/lib/helpers.js.map +1 -0
- package/lib/index.cjs +59 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -0
- package/package.json +29 -0
package/lib/constants.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
export const CWD = process.cwd();
|
|
3
|
+
export const cjsRequire = typeof require === 'undefined' ? createRequire(import.meta.url) : require;
|
|
4
|
+
export const EXTENSIONS = ['.ts', '.tsx', ...Object.keys(cjsRequire.extensions)];
|
|
5
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;AAEhC,MAAM,CAAC,MAAM,UAAU,GACrB,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AAG3E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA"}
|
package/lib/helpers.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const tryPkg: (pkg: string) => string | undefined;
|
|
2
|
+
export declare const isPkgAvailable: (pkg: string) => boolean;
|
|
3
|
+
export declare const tryFile: (filePath?: string[] | string, includeDir?: boolean) => string;
|
|
4
|
+
export declare const tryExtensions: (filepath: string, extensions?: string[]) => string;
|
|
5
|
+
export declare const findUp: (searchEntry: string, searchFile?: string) => string;
|
package/lib/helpers.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { CWD, EXTENSIONS, cjsRequire } from './constants.js';
|
|
4
|
+
export const tryPkg = (pkg) => {
|
|
5
|
+
try {
|
|
6
|
+
return cjsRequire.resolve(pkg);
|
|
7
|
+
}
|
|
8
|
+
catch (_a) { }
|
|
9
|
+
};
|
|
10
|
+
export const isPkgAvailable = (pkg) => !!tryPkg(pkg);
|
|
11
|
+
export const tryFile = (filePath, includeDir = false) => {
|
|
12
|
+
if (typeof filePath === 'string') {
|
|
13
|
+
return fs.existsSync(filePath) &&
|
|
14
|
+
(includeDir || fs.statSync(filePath).isFile())
|
|
15
|
+
? filePath
|
|
16
|
+
: '';
|
|
17
|
+
}
|
|
18
|
+
for (const file of filePath !== null && filePath !== void 0 ? filePath : []) {
|
|
19
|
+
if (tryFile(file, includeDir)) {
|
|
20
|
+
return file;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return '';
|
|
24
|
+
};
|
|
25
|
+
export const tryExtensions = (filepath, extensions = EXTENSIONS) => {
|
|
26
|
+
const ext = [...extensions, ''].find(ext => tryFile(filepath + ext));
|
|
27
|
+
return ext == null ? '' : filepath + ext;
|
|
28
|
+
};
|
|
29
|
+
export const findUp = (searchEntry, searchFile = 'package.json') => {
|
|
30
|
+
console.assert(path.isAbsolute(searchEntry));
|
|
31
|
+
if (!tryFile(searchEntry, true) ||
|
|
32
|
+
(searchEntry !== CWD && !searchEntry.startsWith(CWD + path.sep))) {
|
|
33
|
+
return '';
|
|
34
|
+
}
|
|
35
|
+
searchEntry = path.resolve(fs.statSync(searchEntry).isDirectory()
|
|
36
|
+
? searchEntry
|
|
37
|
+
: path.resolve(searchEntry, '..'));
|
|
38
|
+
do {
|
|
39
|
+
const searched = tryFile(path.resolve(searchEntry, searchFile));
|
|
40
|
+
if (searched) {
|
|
41
|
+
return searched;
|
|
42
|
+
}
|
|
43
|
+
searchEntry = path.resolve(searchEntry, '..');
|
|
44
|
+
} while (searchEntry === CWD || searchEntry.startsWith(CWD + path.sep));
|
|
45
|
+
return '';
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE5D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAAC,WAAM,CAAC,CAAA,CAAC;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAE5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAA4B,EAAE,UAAU,GAAG,KAAK,EAAE,EAAE;IAC1E,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC5B,CAAC,UAAU,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,UAAU,GAAG,UAAU,EAAE,EAAE;IACzE,MAAM,GAAG,GAAG,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAA;IACpE,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,UAAU,GAAG,cAAc,EAAE,EAAE;IACzE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;IAE5C,IACE,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;QAC3B,CAAC,WAAW,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAChE,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,WAAW,GAAG,IAAI,CAAC,OAAO,CACxB,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;QACpC,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CACpC,CAAA;IAED,GAAG,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;QAC/D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC,QAAQ,WAAW,KAAK,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAC;IAEvE,OAAO,EAAE,CAAA;AACX,CAAC,CAAA"}
|
package/lib/index.cjs
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var node_module = require('node:module');
|
|
4
|
+
var fs = require('node:fs');
|
|
5
|
+
var path = require('node:path');
|
|
6
|
+
|
|
7
|
+
const import_meta = {};
|
|
8
|
+
const CWD = process.cwd();
|
|
9
|
+
const cjsRequire = typeof require === "undefined" ? node_module.createRequire(import_meta.url) : require;
|
|
10
|
+
const EXTENSIONS = [".ts", ".tsx", ...Object.keys(cjsRequire.extensions)];
|
|
11
|
+
|
|
12
|
+
const tryPkg = (pkg) => {
|
|
13
|
+
try {
|
|
14
|
+
return cjsRequire.resolve(pkg);
|
|
15
|
+
} catch (e) {
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const isPkgAvailable = (pkg) => !!tryPkg(pkg);
|
|
19
|
+
const tryFile = (filePath, includeDir = false) => {
|
|
20
|
+
if (typeof filePath === "string") {
|
|
21
|
+
return fs.existsSync(filePath) && (includeDir || fs.statSync(filePath).isFile()) ? filePath : "";
|
|
22
|
+
}
|
|
23
|
+
for (const file of filePath != null ? filePath : []) {
|
|
24
|
+
if (tryFile(file, includeDir)) {
|
|
25
|
+
return file;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return "";
|
|
29
|
+
};
|
|
30
|
+
const tryExtensions = (filepath, extensions = EXTENSIONS) => {
|
|
31
|
+
const ext = [...extensions, ""].find((ext2) => tryFile(filepath + ext2));
|
|
32
|
+
return ext == null ? "" : filepath + ext;
|
|
33
|
+
};
|
|
34
|
+
const findUp = (searchEntry, searchFile = "package.json") => {
|
|
35
|
+
console.assert(path.isAbsolute(searchEntry));
|
|
36
|
+
if (!tryFile(searchEntry, true) || searchEntry !== CWD && !searchEntry.startsWith(CWD + path.sep)) {
|
|
37
|
+
return "";
|
|
38
|
+
}
|
|
39
|
+
searchEntry = path.resolve(
|
|
40
|
+
fs.statSync(searchEntry).isDirectory() ? searchEntry : path.resolve(searchEntry, "..")
|
|
41
|
+
);
|
|
42
|
+
do {
|
|
43
|
+
const searched = tryFile(path.resolve(searchEntry, searchFile));
|
|
44
|
+
if (searched) {
|
|
45
|
+
return searched;
|
|
46
|
+
}
|
|
47
|
+
searchEntry = path.resolve(searchEntry, "..");
|
|
48
|
+
} while (searchEntry === CWD || searchEntry.startsWith(CWD + path.sep));
|
|
49
|
+
return "";
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.CWD = CWD;
|
|
53
|
+
exports.EXTENSIONS = EXTENSIONS;
|
|
54
|
+
exports.cjsRequire = cjsRequire;
|
|
55
|
+
exports.findUp = findUp;
|
|
56
|
+
exports.isPkgAvailable = isPkgAvailable;
|
|
57
|
+
exports.tryExtensions = tryExtensions;
|
|
58
|
+
exports.tryFile = tryFile;
|
|
59
|
+
exports.tryPkg = tryPkg;
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pkgr/core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Shared core module for `@pkgr` packages or any package else",
|
|
6
|
+
"repository": "git+https://github.com/un-ts/pkgr.git",
|
|
7
|
+
"homepage": "https://github.com/un-ts/pkgr/blob/master/packages/core",
|
|
8
|
+
"author": "JounQin (https://www.1stG.me) <admin@1stg.me>",
|
|
9
|
+
"funding": "https://opencollective.com/unts",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"engines": {
|
|
12
|
+
"node": "^12.20.0 || ^14.18.0 || >=16.0.0"
|
|
13
|
+
},
|
|
14
|
+
"main": "./lib/index.cjs",
|
|
15
|
+
"module": "./lib/index.js",
|
|
16
|
+
"exports": {
|
|
17
|
+
"types": "./lib/index.d.ts",
|
|
18
|
+
"import": "./lib/index.js",
|
|
19
|
+
"require": "./lib/index.cjs"
|
|
20
|
+
},
|
|
21
|
+
"types": "./lib/index.d.ts",
|
|
22
|
+
"files": [
|
|
23
|
+
"lib"
|
|
24
|
+
],
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
27
|
+
},
|
|
28
|
+
"sideEffects": false
|
|
29
|
+
}
|