Skip to content

Commit d1b7b63

Browse files
Fix development exports imports (microsoft#8474)
Fix microsoft#8465
1 parent c366996 commit d1b7b63

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
changeKind: fix
3+
packages:
4+
- "@typespec/emitter-framework"
5+
---
6+
7+
Remove development exports from published package
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/usr/bin/env node
2+
import fs from "fs";
3+
import path from "path";
4+
5+
// Resolve the path to your package.json
6+
const pkgPath = path.resolve(process.cwd(), "./package.json");
7+
const backupPath = pkgPath + ".bak";
8+
9+
function cleanup() {
10+
const originalText = fs.readFileSync(pkgPath, "utf8");
11+
fs.writeFileSync(backupPath, originalText);
12+
13+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
14+
15+
// Recursively remove "development" keys from exports
16+
function removeDevExports(exportsField: any) {
17+
if (exportsField && typeof exportsField === "object") {
18+
if ("development" in exportsField) {
19+
delete exportsField.development;
20+
}
21+
// Recursively handle nested export objects
22+
for (const key of Object.keys(exportsField)) {
23+
removeDevExports(exportsField[key]);
24+
}
25+
}
26+
}
27+
28+
if (pkg.exports) {
29+
removeDevExports(pkg.exports);
30+
}
31+
32+
if (pkg.imports) {
33+
removeDevExports(pkg.imports);
34+
}
35+
36+
// Write the modified package.json back
37+
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n", "utf8");
38+
console.log("Stripped development exports from package.json.");
39+
}
40+
41+
function restore() {
42+
if (fs.existsSync(backupPath)) {
43+
const backupText = fs.readFileSync(backupPath, "utf8");
44+
fs.writeFileSync(pkgPath, backupText, "utf8");
45+
fs.rmSync(backupPath);
46+
console.log("Restored original package.json from backup.");
47+
}
48+
}
49+
50+
if (process.argv.includes("--restore")) {
51+
restore();
52+
} else {
53+
cleanup();
54+
}

packages/emitter-framework/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
"test:ui": "vitest --ui",
1717
"test:watch": "vitest -w",
1818
"test:ci": "vitest run --coverage --reporter=junit --reporter=default",
19+
"prepack": "tsx ../../eng/tsp-core/scripts/strip-dev-import-exports.ts",
20+
"postpack": "tsx ../../eng/tsp-core/scripts/strip-dev-import-exports.ts --restore",
1921
"lint": "eslint . --max-warnings=0",
2022
"lint:fix": "eslint . --fix"
2123
},

0 commit comments

Comments
 (0)