@jayjiang/byoao 1.0.3 → 1.0.5
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/dist/lib/cjs-modules.js +75 -14
- package/dist/lib/cjs-modules.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/cjs-modules.js
CHANGED
|
@@ -1,28 +1,89 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Bun CJS interop shim.
|
|
3
3
|
*
|
|
4
|
-
* Bun 1.3.x
|
|
5
|
-
*
|
|
4
|
+
* Bun 1.3.x has a pervasive bug with CJS/ESM interop: it loads CJS sub-modules
|
|
5
|
+
* as ESM and then fails with "Missing 'default' export" for any file that uses
|
|
6
|
+
* `module.exports` instead of `export default`. This affects fs-extra AND its
|
|
7
|
+
* own ESM wrapper (`fs-extra/esm`), making fs-extra completely unusable in Bun.
|
|
6
8
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
9
|
+
* Solution for fs: build a drop-in replacement from native Node.js APIs.
|
|
10
|
+
* Solution for handlebars/gray-matter/semver: createRequire works fine in Bun
|
|
11
|
+
* for packages that have NO `exports` field.
|
|
10
12
|
*/
|
|
11
13
|
import { createRequire } from "node:module";
|
|
14
|
+
import * as nodeFs from "node:fs";
|
|
15
|
+
import * as nodeFsPromises from "node:fs/promises";
|
|
16
|
+
import path from "node:path";
|
|
17
|
+
// ── fs-extra polyfills (native Node.js only) ──────────────────────────────────
|
|
18
|
+
async function copy(src, dest) {
|
|
19
|
+
await nodeFsPromises.cp(src, dest, { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
async function ensureDir(dirPath) {
|
|
22
|
+
await nodeFsPromises.mkdir(dirPath, { recursive: true });
|
|
23
|
+
}
|
|
24
|
+
async function pathExists(filePath) {
|
|
25
|
+
try {
|
|
26
|
+
await nodeFsPromises.access(filePath);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function pathExistsSync(filePath) {
|
|
34
|
+
return nodeFs.existsSync(filePath);
|
|
35
|
+
}
|
|
36
|
+
async function readJson(filePath) {
|
|
37
|
+
const content = await nodeFsPromises.readFile(filePath, "utf-8");
|
|
38
|
+
return JSON.parse(content);
|
|
39
|
+
}
|
|
40
|
+
function readJsonSync(filePath) {
|
|
41
|
+
return JSON.parse(nodeFs.readFileSync(filePath, "utf-8"));
|
|
42
|
+
}
|
|
43
|
+
async function writeJson(filePath, data, options) {
|
|
44
|
+
const indent = options?.spaces ?? 2;
|
|
45
|
+
await nodeFsPromises.mkdir(path.dirname(filePath), { recursive: true });
|
|
46
|
+
await nodeFsPromises.writeFile(filePath, JSON.stringify(data, null, indent));
|
|
47
|
+
}
|
|
48
|
+
function writeJsonSync(filePath, data, options) {
|
|
49
|
+
const indent = options?.spaces ?? 2;
|
|
50
|
+
nodeFs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
51
|
+
nodeFs.writeFileSync(filePath, JSON.stringify(data, null, indent));
|
|
52
|
+
}
|
|
53
|
+
async function remove(filePath) {
|
|
54
|
+
await nodeFsPromises.rm(filePath, { recursive: true, force: true });
|
|
55
|
+
}
|
|
56
|
+
function removeSync(filePath) {
|
|
57
|
+
nodeFs.rmSync(filePath, { recursive: true, force: true });
|
|
58
|
+
}
|
|
59
|
+
export const fs = {
|
|
60
|
+
// node:fs sync
|
|
61
|
+
existsSync: nodeFs.existsSync,
|
|
62
|
+
readFileSync: nodeFs.readFileSync,
|
|
63
|
+
readdirSync: nodeFs.readdirSync,
|
|
64
|
+
// node:fs/promises async
|
|
65
|
+
readFile: nodeFsPromises.readFile,
|
|
66
|
+
writeFile: nodeFsPromises.writeFile,
|
|
67
|
+
readdir: nodeFsPromises.readdir,
|
|
68
|
+
mkdir: nodeFsPromises.mkdir,
|
|
69
|
+
// fs-extra extras (native implementations)
|
|
70
|
+
copy,
|
|
71
|
+
ensureDir,
|
|
72
|
+
pathExists,
|
|
73
|
+
pathExistsSync,
|
|
74
|
+
readJson,
|
|
75
|
+
readJsonSync,
|
|
76
|
+
writeJson,
|
|
77
|
+
writeJsonSync,
|
|
78
|
+
remove,
|
|
79
|
+
removeSync,
|
|
80
|
+
};
|
|
81
|
+
// ── CJS-only packages (no `exports` field — createRequire works in Bun) ──────
|
|
12
82
|
const _require = createRequire(import.meta.url);
|
|
13
|
-
// Bun 1.3.x treats `require("fs-extra")` (via createRequire) as an async module
|
|
14
|
-
// due to a bug in how it handles the package's `exports` field — use the CJS
|
|
15
|
-
// entry path directly to avoid this. Node.js enforces `exports` and rejects
|
|
16
|
-
// that subpath, so we fall back to the normal package name there.
|
|
17
|
-
const _fs = ("Bun" in globalThis
|
|
18
|
-
? _require("fs-extra/lib/index.js") // Bun: bypass exports resolution
|
|
19
|
-
: _require("fs-extra") // Node.js: normal resolution
|
|
20
|
-
);
|
|
21
83
|
const _matter = _require("gray-matter");
|
|
22
84
|
const _Handlebars = _require("handlebars");
|
|
23
85
|
const _semver = _require("semver");
|
|
24
86
|
const unwrap = (v) => (v["default"] ?? v);
|
|
25
|
-
export const fs = unwrap(_fs);
|
|
26
87
|
export const matter = unwrap(_matter);
|
|
27
88
|
export const Handlebars = unwrap(_Handlebars);
|
|
28
89
|
export const semver = unwrap(_semver);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cjs-modules.js","sourceRoot":"","sources":["../../src/lib/cjs-modules.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cjs-modules.js","sourceRoot":"","sources":["../../src/lib/cjs-modules.ts"],"names":[],"mappings":"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"}
|