Skip to content

Commit

Permalink
[forgive] Add build scripts
Browse files Browse the repository at this point in the history
Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:
  • Loading branch information
poteto committed Dec 27, 2024
1 parent 5ae80d0 commit 032739e
Show file tree
Hide file tree
Showing 5 changed files with 141 additions and 5 deletions.
1 change: 1 addition & 0 deletions compiler/packages/react-forgive/.vscodeignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
**/node_modules
client
server
scripts
9 changes: 4 additions & 5 deletions compiler/packages/react-forgive/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,16 @@
},
"scripts": {
"build": "yarn run compile",
"compile": "rimraf dist && concurrently -n server,client \"yarn run esbuild:server --sourcemap\" \"yarn run esbuild:client --sourcemap\"",
"compile": "rimraf dist && concurrently -n server,client \"scripts/build.mjs -t server\" \"scripts/build.mjs -t client\"",
"dev": "yarn run package && yarn run install-ext",
"esbuild:client": "esbuild ./client/src/extension.ts --bundle --outfile=dist/extension.js --external:vscode --format=cjs --platform=node",
"esbuild:server": "esbuild ./server/src/index.ts --bundle --outfile=dist/server.js --external:vscode --format=cjs --platform=node",
"install-ext": "code --install-extension react-forgive-0.0.0.vsix",
"lint": "echo 'no tests'",
"package": "rm -f react-forgive-0.0.0.vsix && vsce package --yarn",
"postinstall": "cd client && yarn install && cd ../server && yarn install && cd ..",
"pretest": "yarn run compile && yarn run lint",
"test": "vscode-test",
"vscode:prepublish": "yarn run compile",
"watch": "concurrently --kill-others -n server,client \"run esbuild:server --sourcemap --watch\" \"run esbuild:client --sourcemap --watch\""
"watch": "scripts/build.mjs --watch"
},
"devDependencies": {
"@eslint/js": "^9.13.0",
Expand All @@ -59,6 +57,7 @@
"esbuild": "^0.24.0",
"eslint": "^9.13.0",
"mocha": "^11.0.1",
"typescript-eslint": "^8.16.0"
"typescript-eslint": "^8.16.0",
"yargs": "^17.7.2"
}
}
58 changes: 58 additions & 0 deletions compiler/packages/react-forgive/scripts/build.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/usr/bin/env node

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

import * as esbuild from 'esbuild';
import yargs from 'yargs';
import * as Server from './server.mjs';
import * as Client from './client.mjs';
import path from 'path';
import {fileURLToPath} from 'url';

const IS_DEV = process.env.NODE_ENV === 'development';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

const argv = yargs(process.argv.slice(2))
.choices('t', ['client', 'server'])
.options('w', {
alias: 'watch',
default: false,
type: 'boolean',
})
.parse();

async function main() {
if (argv.w) {
const serverCtx = await esbuild.context(Server.config);
const clientCtx = await esbuild.context(Client.config);
await Promise.all([serverCtx.watch(), clientCtx.watch()]);
console.log('watching for changes...');
} else {
switch (argv.t) {
case 'server': {
await esbuild.build({
sourcemap: IS_DEV,
minify: IS_DEV === false,
...Server.config,
});
break;
}
case 'client': {
await esbuild.build({
sourcemap: IS_DEV,
minify: IS_DEV === false,
...Client.config,
});
break;
}
}
}
}

main();
39 changes: 39 additions & 0 deletions compiler/packages/react-forgive/scripts/client.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

import path from 'path';
import {fileURLToPath} from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

export const entryPoint = path.join(__dirname, '../client/src/extension.ts');
export const outfile = path.join(__dirname, '../dist/extension.js');
export const config = {
entryPoints: [entryPoint],
outfile,
bundle: true,
external: ['vscode'],
format: 'cjs',
platform: 'node',
banner: {
js: `/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @lightSyntaxTransform
* @noflow
* @nolint
* @preventMunge
* @preserve-invariant-messages
*/
`,
},
};
39 changes: 39 additions & 0 deletions compiler/packages/react-forgive/scripts/server.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

import path from 'path';
import {fileURLToPath} from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

export const entryPoint = path.join(__dirname, '../server/src/index.ts');
export const outfile = path.join(__dirname, '../dist/extension.js');
export const config = {
entryPoints: [entryPoint],
outfile,
bundle: true,
external: ['vscode'],
format: 'cjs',
platform: 'node',
banner: {
js: `/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @lightSyntaxTransform
* @noflow
* @nolint
* @preventMunge
* @preserve-invariant-messages
*/
`,
},
};

0 comments on commit 032739e

Please sign in to comment.