diff options
author | Sebastian <sebasjm@gmail.com> | 2023-05-05 08:34:21 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-05-05 08:52:57 -0300 |
commit | 6340cc5454f637a97fb7329d2494c1dfc3fb1735 (patch) | |
tree | d97d65ed7df5c23ede7caa7047338d978c25d154 /packages/web-util/build.mjs | |
parent | 5e1f450a20aa00c1783337a3b6024167dbc568bd (diff) |
add postcss, fix export names
Diffstat (limited to 'packages/web-util/build.mjs')
-rwxr-xr-x | packages/web-util/build.mjs | 127 |
1 files changed, 76 insertions, 51 deletions
diff --git a/packages/web-util/build.mjs b/packages/web-util/build.mjs index 8e74f69c7..0b015f22c 100755 --- a/packages/web-util/build.mjs +++ b/packages/web-util/build.mjs @@ -15,34 +15,38 @@ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -import esbuild from 'esbuild' -import path from "path" -import fs from "fs" +import esbuild from "esbuild"; +import path from "path"; +import fs from "fs"; // eslint-disable-next-line no-undef -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 === '/') { +if (GIT_ROOT === "/") { // eslint-disable-next-line no-undef - console.log("not found") + console.log("not found"); // eslint-disable-next-line no-undef 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(); } } @@ -50,20 +54,18 @@ const buildConfigBase = { outdir: "lib", bundle: true, minify: false, - target: [ - 'es6' - ], + target: ["es2021"], loader: { - '.key': 'text', - '.crt': 'text', - '.html': 'text', + ".key": "text", + ".crt": "text", + ".html": "text", }, sourcemap: true, define: { - '__VERSION__': `"${_package.version}"`, - '__GIT_HASH__': `"${GIT_HASH}"`, + __VERSION__: `"${_package.version}"`, + __GIT_HASH__: `"${GIT_HASH}"`, }, -} +}; /** * Build time libraries, under node runtime @@ -72,36 +74,52 @@ const buildConfigBuild = { ...buildConfigBase, entryPoints: ["src/index.build.ts"], outExtension: { - '.js': '.mjs' + ".js": ".mjs", }, - format: 'esm', - platform: 'node', + format: "esm", + platform: "node", external: ["esbuild"], // https://github.com/evanw/esbuild/issues/1921 // How to fix "Dynamic require of "os" is not supported" // esbuild cannot convert external "static" commonjs require statements to static esm imports - banner: { + banner: { js: ` import { fileURLToPath } from 'url'; import { createRequire as topLevelCreateRequire } from 'module'; const require = topLevelCreateRequire(import.meta.url); const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -` +`, }, }; /** * Development libraries, under node runtime */ +const buildConfigTesting = { + ...buildConfigBase, + entryPoints: ["src/index.testing.ts"], + outExtension: { + ".js": ".mjs", + }, + format: "esm", + platform: "browser", + external: ["preact", "@gnu-taler/taler-util", "jed", "swr", "axios"], + jsxFactory: "h", + jsxFragment: "Fragment", +}; + +/** + * Testing libraries, under node runtime + */ const buildConfigNode = { ...buildConfigBase, entryPoints: ["src/index.node.ts", "src/cli.ts"], outExtension: { - '.js': '.cjs' + ".js": ".cjs", }, - format: 'cjs', - platform: 'node', + format: "cjs", + platform: "node", external: ["preact"], }; @@ -110,26 +128,33 @@ const buildConfigNode = { */ const buildConfigBrowser = { ...buildConfigBase, - entryPoints: ["src/tests/mock.ts", "src/tests/swr.ts", "src/index.browser.ts", "src/live-reload.ts", 'src/stories.tsx'], + entryPoints: [ + "src/tests/mock.ts", + "src/tests/swr.ts", + "src/index.browser.ts", + "src/live-reload.ts", + "src/stories.tsx", + ], outExtension: { - '.js': '.mjs' + ".js": ".mjs", }, - format: 'esm', - platform: 'browser', - external: ["preact", "@gnu-taler/taler-util", "jed","swr","axios"], - jsxFactory: 'h', - jsxFragment: 'Fragment', + format: "esm", + platform: "browser", + external: ["preact", "@gnu-taler/taler-util", "jed", "swr", "axios"], + jsxFactory: "h", + jsxFragment: "Fragment", }; -[buildConfigNode, buildConfigBrowser, buildConfigBuild].forEach((config) => { - esbuild - .build(config) - .catch((e) => { - // eslint-disable-next-line no-undef - console.log(e) - // eslint-disable-next-line no-undef - process.exit(1) - }); - -}) - +[ + buildConfigNode, + buildConfigBrowser, + buildConfigBuild, + buildConfigTesting, +].forEach((config) => { + esbuild.build(config).catch((e) => { + // eslint-disable-next-line no-undef + console.log(e); + // eslint-disable-next-line no-undef + process.exit(1); + }); +}); |