diff options
author | Sebastian <sebasjm@gmail.com> | 2023-05-05 08:47:00 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-05-05 08:52:58 -0300 |
commit | d03bfa714b4a08c9a9002cdc8999f7981f2b2de6 (patch) | |
tree | 4f6f387892493d11d7b6371d992ffe90046a30ad /packages/taler-wallet-webextension/build.mjs | |
parent | b64bb455a2d51f7e19e517c0bd158ff7d7d9557f (diff) | |
download | wallet-core-d03bfa714b4a08c9a9002cdc8999f7981f2b2de6.tar.xz |
fixing web-utils new imports
Diffstat (limited to 'packages/taler-wallet-webextension/build.mjs')
-rwxr-xr-x | packages/taler-wallet-webextension/build.mjs | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/packages/taler-wallet-webextension/build.mjs b/packages/taler-wallet-webextension/build.mjs new file mode 100755 index 000000000..889ba7d05 --- /dev/null +++ b/packages/taler-wallet-webextension/build.mjs @@ -0,0 +1,119 @@ +#!/usr/bin/env node +/* + This file is part of GNU Taler + (C) 2022 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + */ + +import { + build, + computeConfig, + getFilesInDirectory, +} from "@gnu-taler/web-util/build"; +import linaria from "@linaria/esbuild"; +import esbuild from "esbuild"; +import path from "path"; +import fs from "fs"; + +const BASE = process.cwd(); + +const allStaticFiles = getFilesInDirectory("static"); + +// await build({ +// source: { +// js: [ +// "src/popupEntryPoint.tsx", +// "src/walletEntryPoint.tsx", +// "src/background.ts", +// "src/taler-wallet-interaction-loader.ts", +// "src/taler-wallet-interaction-support.ts", +// "src/browserWorkerEntry.ts", +// ], +// assets: allStaticFiles, +// }, +// destination: "./dist/prod", +// css: "linaria", +// }); +function copyFilesPlugin(files) { + return { + name: "copy-files", + setup(build) { + const outDir = build.initialOptions.outdir; + if (outDir === undefined) + throw Error("esbuild build options does not specify outdir"); + build.onEnd(() => { + for (const file of files) { + const name = path.parse(file).base; + fs.copyFileSync(file, path.join(outDir, name)); + } + }); + }, + }; +} + +const buildConfig2 = computeConfig({ + source: { + js: [ + "src/popupEntryPoint.tsx", + "src/walletEntryPoint.tsx", + "src/background.ts", + "src/taler-wallet-interaction-loader.ts", + "src/taler-wallet-interaction-support.ts", + "src/browserWorkerEntry.ts", + ], + assets: allStaticFiles, + }, + destination: "./dist/prod", + css: "linaria", +}); + +const preact = path.join( + BASE, + "node_modules", + "preact", + "compat", + "dist", + "compat.module.js", +); +const preactCompatPlugin = { + name: "preact-compat", + setup(build) { + build.onResolve({ filter: /^(react-dom|react)$/ }, (args) => ({ + path: preact, + })); + }, +}; + +const asd = linaria.default({ + babelOptions: { + babelrc: false, + configFile: "./babel.config-linaria.json", + }, + sourceMap: true, +}); + +// buildConfig2.plugins = [ +// preactCompatPlugin, +// copyFilesPlugin(allStaticFiles), +// asd, +// ]; + +// console.log(JSON.stringify(buildConfig, undefined, 2)); +// console.log(JSON.stringify(buildConfig2, undefined, 2)); + +await esbuild.build(buildConfig2).catch((e) => { + // eslint-disable-next-line no-undef + console.log(e); + // eslint-disable-next-line no-undef + process.exit(1); +}); |