From cd2491430d31113b1429728d91290e64bb9c2eea Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 4 Jan 2023 11:36:01 +0100 Subject: harness: make import.meta.url work --- packages/taler-harness/build.mjs | 61 ++++++++++++++------------- packages/taler-harness/src/import-meta-url.js | 2 + 2 files changed, 33 insertions(+), 30 deletions(-) create mode 100644 packages/taler-harness/src/import-meta-url.js (limited to 'packages/taler-harness') diff --git a/packages/taler-harness/build.mjs b/packages/taler-harness/build.mjs index b02d159e1..3fb411342 100755 --- a/packages/taler-harness/build.mjs +++ b/packages/taler-harness/build.mjs @@ -15,31 +15,35 @@ GNU Taler; see the file COPYING. If not, see */ -import esbuild from 'esbuild' -import path from "path" -import fs from "fs" +import esbuild from "esbuild"; +import path from "path"; +import fs from "fs"; -const BASE = process.cwd() +const BASE = process.cwd(); -let GIT_ROOT = BASE -while (!fs.existsSync(path.join(GIT_ROOT, '.git')) && GIT_ROOT !== '/') { - GIT_ROOT = path.join(GIT_ROOT, '../') +let GIT_ROOT = BASE; +while (!fs.existsSync(path.join(GIT_ROOT, ".git")) && GIT_ROOT !== "/") { + GIT_ROOT = path.join(GIT_ROOT, "../"); } -if (GIT_ROOT === '/') { - console.log("not found") +if (GIT_ROOT === "/") { + console.log("not found"); process.exit(1); } -const GIT_HASH = GIT_ROOT === '/' ? undefined : git_hash() +const GIT_HASH = GIT_ROOT === "/" ? undefined : git_hash(); - -let _package = JSON.parse(fs.readFileSync(path.join(BASE, 'package.json'))); +let _package = JSON.parse(fs.readFileSync(path.join(BASE, "package.json"))); function git_hash() { - const rev = fs.readFileSync(path.join(GIT_ROOT, '.git', 'HEAD')).toString().trim().split(/.*[: ]/).slice(-1)[0]; - if (rev.indexOf('/') === -1) { + const rev = fs + .readFileSync(path.join(GIT_ROOT, ".git", "HEAD")) + .toString() + .trim() + .split(/.*[: ]/) + .slice(-1)[0]; + if (rev.indexOf("/") === -1) { return rev; } else { - return fs.readFileSync(path.join(GIT_ROOT, '.git', rev)).toString().trim(); + return fs.readFileSync(path.join(GIT_ROOT, ".git", rev)).toString().trim(); } } @@ -49,22 +53,19 @@ export const buildConfig = { outfile: "dist/taler-harness-bundled.cjs", bundle: true, minify: false, - target: [ - 'es2020' - ], - format: 'cjs', - platform: 'node', + target: ["es2020"], + format: "cjs", + platform: "node", sourcemap: true, + inject: ["src/import-meta-url.js"], define: { - '__VERSION__': `"${_package.version}"`, - '__GIT_HASH__': `"${GIT_HASH}"`, + __VERSION__: `"${_package.version}"`, + __GIT_HASH__: `"${GIT_HASH}"`, + ["import.meta.url"]: "import_meta_url", }, -} - -esbuild - .build(buildConfig) - .catch((e) => { - console.log(e) - process.exit(1) - }); +}; +esbuild.build(buildConfig).catch((e) => { + console.log(e); + process.exit(1); +}); diff --git a/packages/taler-harness/src/import-meta-url.js b/packages/taler-harness/src/import-meta-url.js new file mode 100644 index 000000000..b7def9b07 --- /dev/null +++ b/packages/taler-harness/src/import-meta-url.js @@ -0,0 +1,2 @@ +// Helper to make 'import.meta.url' available in esbuild-bundled code as well. +export const import_meta_url = require('url').pathToFileURL(__filename); -- cgit v1.2.3