summaryrefslogtreecommitdiff
path: root/node_modules/blake3-wasm/dist/build/generate-tasks.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/blake3-wasm/dist/build/generate-tasks.js')
-rw-r--r--node_modules/blake3-wasm/dist/build/generate-tasks.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/node_modules/blake3-wasm/dist/build/generate-tasks.js b/node_modules/blake3-wasm/dist/build/generate-tasks.js
new file mode 100644
index 0000000..bea411b
--- /dev/null
+++ b/node_modules/blake3-wasm/dist/build/generate-tasks.js
@@ -0,0 +1,88 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const fs_1 = require("fs");
+const js_yaml_1 = require("js-yaml");
+const node_fetch_1 = __importDefault(require("node-fetch"));
+const path_1 = require("path");
+const minVersion = 64;
+(() => __awaiter(void 0, void 0, void 0, function* () {
+ const res = yield node_fetch_1.default('https://nodejs.org/dist/index.json');
+ if (!res.ok) {
+ throw new Error(`${res.status} error from Node.js releases page`);
+ }
+ const releases = yield res.json();
+ const buildVersion = new Map();
+ const versionMap = {};
+ for (const release of releases) {
+ const moduleVersion = Number(release.modules);
+ if (!moduleVersion || moduleVersion < minVersion) {
+ break;
+ }
+ versionMap[release.version] = Number(moduleVersion);
+ if (buildVersion.has(moduleVersion)) {
+ continue;
+ }
+ buildVersion.set(moduleVersion, release.version);
+ }
+ const buildYaml = {
+ name: 'Generate Binaries',
+ on: {
+ push: {
+ branches: ['generate-binary'],
+ },
+ },
+ jobs: {
+ build: {
+ name: 'Build',
+ 'runs-on': '${{ matrix.os }}',
+ strategy: {
+ matrix: { os: ['macos-latest', 'ubuntu-latest', 'windows-latest'] },
+ },
+ steps: [
+ { uses: 'actions/checkout@master' },
+ { run: 'mkdir dist' },
+ {
+ uses: 'actions-rs/toolchain@v1',
+ with: { target: 'wasm32-unknown-unknown', toolchain: 'nightly' },
+ },
+ ...[...buildVersion.entries()]
+ .map(([moduleVersion, nodeVersion], i) => [
+ { uses: 'actions/setup-node@v1', with: { 'node-version': nodeVersion } },
+ {
+ // See: https://github.com/actions/setup-node/issues/68
+ shell: 'powershell',
+ name: 'patch node-gyp for VS 2019',
+ run: 'npm install --global node-gyp@latest\r\nnpm prefix -g | % {npm config set node_gyp "$_\\node_modules\\node-gyp\\bin\\node-gyp.js"}',
+ if: "matrix.os == 'windows-latest'",
+ },
+ i === 0
+ ? { run: 'npm install neon-cli rimraf' }
+ : { run: './node_modules/.bin/rimraf rs/native/target' },
+ { run: '../node_modules/.bin/neon build --release', 'working-directory': 'rs' },
+ { run: `mv rs/native/index.node dist/\${{ matrix.os }}-${moduleVersion}.node` },
+ ])
+ .reduce((acc, v) => [...acc, ...v], []),
+ {
+ uses: 'actions/upload-artifact@v1',
+ with: { name: 'dist', path: 'dist' },
+ },
+ ],
+ },
+ },
+ };
+ fs_1.writeFileSync(path_1.join(__dirname, '..', '..', '.github', 'workflows', 'build-neon.yml'), js_yaml_1.dump(buildYaml));
+ fs_1.writeFileSync(path_1.join(__dirname, '..', '..', 'targets.json'), JSON.stringify(versionMap));
+}))();
+//# sourceMappingURL=generate-tasks.js.map \ No newline at end of file