Skip to content

Commit 77d4aa9

Browse files
Demos. Script for creating openai tgz (npm package) for using in CodeSandbox (#31998)
1 parent f185333 commit 77d4aa9

File tree

6 files changed

+94
-1
lines changed

6 files changed

+94
-1
lines changed

apps/demos/configs/Angular/config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,3 +343,5 @@ window.process = {
343343
System.config(window.config);
344344
// eslint-disable-next-line no-console
345345
System.import('@angular/compiler').catch(console.error.bind(console));
346+
// eslint-disable-next-line
347+
const useTgzInCSB = ['openai'];

apps/demos/configs/React/config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,3 +212,5 @@ window.process = {
212212
};
213213

214214
System.config(window.config);
215+
// eslint-disable-next-line
216+
const useTgzInCSB = ['openai'];

apps/demos/configs/ReactJs/config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,3 +212,5 @@ window.process = {
212212
};
213213

214214
System.config(window.config);
215+
// eslint-disable-next-line
216+
const useTgzInCSB = ['openai'];

apps/demos/configs/Vue/config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,3 +204,5 @@ window.process = {
204204
};
205205

206206
System.config(window.config);
207+
// eslint-disable-next-line
208+
const useTgzInCSB = ['openai'];

apps/demos/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,10 @@
162162
"create-config": "node utils/internal/create-config.js",
163163
"launch-demo": "node utils/shell/server.js",
164164
"generate-ng-umd": "rollup -c ./rollup.ng.umd.config.mjs --silent",
165+
"generate-tgz-packages": "node utils/create-tgz-packages.js",
165166
"generate-devextreme-angular-umd": "rollup -c ./rollup.devextreme-angular.umd.config.mjs --silent",
166167
"generate-external-bundles": "rollup -c ./rollup.external.bundles.config.mjs --silent",
167-
"prepare-js": "gulp js && pnpm run generate-ng-umd && pnpm run generate-devextreme-angular-umd && pnpm run generate-external-bundles",
168+
"prepare-js": "gulp js && pnpm run generate-ng-umd && pnpm run generate-devextreme-angular-umd && pnpm run generate-external-bundles && npm run generate-tgz-packages",
168169
"prepare-shared": "pnpm run prepare-ts && gulp shared",
169170
"lint-html": "prettier --check .",
170171
"lint-js": "eslint . --ignore-pattern 'Demos'",
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
const fs = require('fs');
2+
const path = require('path');
3+
const { exec } = require('child_process');
4+
const util = require('util');
5+
const { rollup } = require('rollup');
6+
7+
const resolve = require('@rollup/plugin-node-resolve');
8+
const commonjs = require('@rollup/plugin-commonjs');
9+
const babel = require('@rollup/plugin-babel');
10+
11+
const execAsync = util.promisify(exec);
12+
const outDir = './bundles/externals/';
13+
14+
async function buildAndPack(packageName, inputFile) {
15+
const packageJsonContent = fs.readFileSync(path.resolve(`./node_modules/${packageName}/package.json`), 'utf-8');
16+
const packageJSON = JSON.parse(packageJsonContent);
17+
const outPackageDir = `${outDir}${packageName}/`;
18+
const outputFile = `${outPackageDir}${packageName}.bundle.mjs`;
19+
20+
fs.mkdirSync(outPackageDir, { recursive: true });
21+
22+
const bundle = await rollup({
23+
input: inputFile,
24+
plugins: [
25+
resolve(),
26+
commonjs(),
27+
babel({
28+
babelHelpers: 'bundled',
29+
presets: [
30+
['@babel/preset-env', {
31+
targets: {
32+
chrome: '58',
33+
ie: '11',
34+
},
35+
}],
36+
],
37+
}),
38+
],
39+
});
40+
41+
await bundle.write({
42+
file: outputFile,
43+
format: 'esm',
44+
name: packageName,
45+
globals: {},
46+
});
47+
48+
const packageJson = {
49+
name: packageName,
50+
version: packageJSON.version,
51+
exports: `./${packageName}.bundle.mjs`,
52+
type: 'module',
53+
license: packageJSON.license,
54+
};
55+
56+
fs.writeFileSync(
57+
path.join(outPackageDir, 'package.json'),
58+
JSON.stringify(packageJson, null, 2),
59+
);
60+
61+
const { stdout, stderr } = await execAsync('npm pack', { cwd: outPackageDir });
62+
const filename = `${packageName}-${packageJSON.version}.tgz`;
63+
64+
if (stdout.trim('\n') === filename) {
65+
fs.renameSync(
66+
path.join(outPackageDir, filename),
67+
path.join(outDir, filename),
68+
);
69+
fs.rmSync(outPackageDir, { recursive: true, force: true });
70+
} else {
71+
console.error('stderr:\n', stderr);
72+
}
73+
}
74+
75+
[
76+
{
77+
packageName: 'openai',
78+
inputFile: './node_modules/openai/index.mjs',
79+
},
80+
].forEach(({ packageName, inputFile }) => {
81+
buildAndPack(packageName, inputFile).catch((err) => {
82+
console.error('Build failed:', err);
83+
});
84+
});

0 commit comments

Comments
 (0)