Skip to content

Commit 05bd6fc

Browse files
committed
chore: copy package.json properly
1 parent ede0155 commit 05bd6fc

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

scripts/generate-clients/copy-to-clients.js

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
const { join } = require("path");
22
const { copySync, ensureDirSync } = require("fs-extra");
3-
const { readdirSync, lstatSync, readFileSync, existsSync } = require("fs");
3+
const {
4+
readdirSync,
5+
lstatSync,
6+
readFileSync,
7+
existsSync,
8+
writeFileSync
9+
} = require("fs");
410
const { CODE_GEN_OUTPUT_DIR } = require("./code-gen-dir");
511

612
const getOverwritablePredicate = packageName => pathName => {
@@ -12,6 +18,7 @@ const getOverwritablePredicate = packageName => pathName => {
1218
"runtimeConfig.ts",
1319
"runtimeConfig.browser.ts",
1420
"runtimeConfig.shared.ts",
21+
"runtimeConfig.rn.ts",
1522
"index.ts",
1623
"endpoints.ts"
1724
];
@@ -25,6 +32,28 @@ const getOverwritablePredicate = packageName => pathName => {
2532
);
2633
};
2734

35+
const mergeManifest = (fromContent, toContent) => {
36+
const merged = {};
37+
const toNames = Object.keys(toContent);
38+
for (const name of toNames) {
39+
if (!fromContent[name]) {
40+
merged[name] = toContent[name];
41+
continue;
42+
}
43+
if (typeof toContent[name] === "object") {
44+
merged[name] = mergeManifest(fromContent[name], toContent[name]);
45+
} else {
46+
merged[name] = toContent[name] || fromContent[name];
47+
}
48+
}
49+
for (const name of Object.keys(fromContent)) {
50+
if (toNames.indexOf(name) < 0) {
51+
merged[name] = fromContent[name];
52+
}
53+
}
54+
return merged;
55+
};
56+
2857
async function copyToClients(clientsDir) {
2958
for (const modelName of readdirSync(CODE_GEN_OUTPUT_DIR)) {
3059
if (modelName === "source") continue;
@@ -56,6 +85,12 @@ async function copyToClients(clientsDir) {
5685
overwrite: true
5786
});
5887
}
88+
if (packageSub === "package.json") {
89+
//copy manifest file
90+
const destManifest = JSON.parse(readFileSync(destSubPath).toString());
91+
const mergedManifest = mergeManifest(packageManifest, destManifest);
92+
writeFileSync(destSubPath, JSON.stringify(mergedManifest, null, 2));
93+
}
5994
}
6095
}
6196
}

0 commit comments

Comments
 (0)