forked from denoland/deno
-
Notifications
You must be signed in to change notification settings - Fork 1
/
generate_symbols_lists.js
executable file
·26 lines (23 loc) · 907 Bytes
/
generate_symbols_lists.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env -S deno run --unstable --allow-read --allow-write
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
import exports from "../../cli/napi/sym/symbol_exports.json" assert {
type: "json",
};
const symbolExportLists = {
linux: `{ ${exports.symbols.map((s) => `"${s}"`).join("; ")}; };`,
openbsd: `{ ${exports.symbols.map((s) => `"${s}"`).join("; ")}; };`,
freebsd: `{ ${exports.symbols.map((s) => `"${s}"`).join("; ")}; };`,
windows: `LIBRARY\nEXPORTS\n${
exports.symbols
.map((symbol) => " " + symbol)
.join("\n")
}`,
macos: exports.symbols.map((symbol) => "_" + symbol).join("\n"),
};
for await (const [os, def] of Object.entries(symbolExportLists)) {
const defUrl = new URL(
`../../cli/napi/generated_symbol_exports_list_${os}.def`,
import.meta.url,
);
await Deno.writeTextFile(defUrl.pathname, def, { create: true });
}