Skip to content

Commit 3d1c07c

Browse files
authored
build(server): Proxy server module with package.json (#622)
* build(server): Proxy server module with package.json Mirrors how the other subpackages are bundled by exposing `boardgame.io/server` via a directory with a package.json that includes a pointer to the main entrypoint and server type definitions. * style(scripts): Fix lint error * refactor(scripts): Improve implementation of PackgeJson function
1 parent bd44678 commit 3d1c07c

2 files changed

Lines changed: 19 additions & 16 deletions

File tree

scripts/clean.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ const subpackages = require('../subpackages');
1111

1212
shell.rm('-rf', 'dist');
1313
shell.rm('-rf', subpackages);
14-
shell.rm('server.js');
14+
shell.rm('-rf', 'server');

scripts/proxy-dirs.js

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,27 @@ const subpackages = require('../subpackages');
1010
const path = require('path');
1111
const { mkdirSync, writeFileSync } = require('fs');
1212

13-
function PackageJson(name) {
14-
return `{
15-
"name": "boardgame.io/${name}",
16-
"private": true,
17-
"types": "../dist/types/packages/${name}.d.ts",
18-
"main": "../dist/cjs/${name}.js",
19-
"module": "../dist/esm/${name}.js"
20-
}
21-
`;
13+
function PackageJson(name, { mainDir, esmDir } = {}) {
14+
const pkg = {
15+
name: `boardgame.io/${name}`,
16+
private: true,
17+
types: `../dist/types/packages/${name}.d.ts`,
18+
main: path.join(mainDir, `${name}.js`),
19+
};
20+
if (esmDir) {
21+
pkg.module = path.join(esmDir, `${name}.js`);
22+
}
23+
return JSON.stringify(pkg, null, 2) + '\n';
2224
}
2325

24-
subpackages.forEach(name => {
26+
function makeSubpackage(name, opts) {
2527
const dir = path.resolve(__dirname, `../${name}`);
2628
mkdirSync(dir);
27-
writeFileSync(`${dir}/package.json`, PackageJson(name));
29+
writeFileSync(`${dir}/package.json`, PackageJson(name, opts));
30+
}
31+
32+
subpackages.forEach(name => {
33+
makeSubpackage(name, { mainDir: '../dist/cjs', esmDir: '../dist/esm' });
2834
});
2935

30-
writeFileSync(
31-
path.resolve(__dirname, '../server.js'),
32-
"module.exports = require('./dist/server');"
33-
);
36+
makeSubpackage('server', { mainDir: '../dist' });

0 commit comments

Comments
 (0)