Skip to content

Commit 7da1249

Browse files
committed
feat(implementations/js/server): export server implementation
1 parent 457ecc6 commit 7da1249

6 files changed

Lines changed: 557 additions & 3 deletions

File tree

.github/workflows/release.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ jobs:
2323

2424
- run: npm install
2525

26+
- run: npm run build
27+
2628
- name: Release
2729
run: npx semantic-release
2830
env:

implementations/js/server/package.json

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"version": "1.0.0",
33
"name": "@asls/wsc-server",
44
"type": "module",
5-
"private": true,
5+
"private": false,
66
"publishConfig": {
77
"access": "public"
88
},
@@ -15,11 +15,18 @@
1515
"linux",
1616
"windows"
1717
],
18-
"main": "./src/main.js",
18+
"main": "./src/server.js",
19+
"exports": {
20+
".": "./src/server.js"
21+
},
22+
"files": [
23+
"src"
24+
],
1925
"scripts": {
2026
"test": "echo \"Error: no test specified\" && exit 1",
2127
"dev": "tsx watch ./src/main.js",
22-
"start": "node ./src/main.js"
28+
"start": "node ./src/main.js",
29+
"build": "node ./src/scripts/build.js"
2330
},
2431
"author": "Timé Kadel",
2532
"license": "GPL-3.0-only",
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/* eslint-disable no-console */
2+
// eslint-disable-next-line import/no-extraneous-dependencies
3+
import { build } from 'esbuild';
4+
import { rm, writeFile, readFile } from 'node:fs/promises';
5+
import path from 'node:path';
6+
7+
const root = process.cwd();
8+
const dist = path.join(root, 'dist');
9+
10+
async function run() {
11+
console.log('🧹 Cleaning dist...');
12+
await rm(dist, { recursive: true, force: true });
13+
14+
console.log('⚡ Building server...');
15+
16+
await build({
17+
entryPoints: ['./src/server.js'], // ✅ FIXED
18+
outfile: './dist/server.js', // or main.js if you prefer
19+
20+
bundle: true,
21+
platform: 'node',
22+
target: 'node20',
23+
format: 'esm',
24+
sourcemap: true,
25+
26+
external: [
27+
'@roamhq/wrtc',
28+
'systeminformation',
29+
],
30+
});
31+
32+
console.log('📄 Updating package.json...');
33+
34+
const pkg = JSON.parse(
35+
await readFile('./package.json', 'utf-8'),
36+
);
37+
38+
delete pkg.devDependencies;
39+
delete pkg.scripts;
40+
41+
pkg.main = './server.js';
42+
pkg.exports = {
43+
'.': './server.js',
44+
};
45+
46+
await writeFile(
47+
'./dist/package.json',
48+
JSON.stringify(pkg, null, 2),
49+
);
50+
51+
console.log('✅ Build complete!');
52+
}
53+
54+
run().catch((err) => {
55+
console.error('❌ Build failed:', err);
56+
process.exit(1);
57+
});

0 commit comments

Comments
 (0)