taler-wallet-cli: bundle with esbuild
This commit is contained in:
parent
9d238fc011
commit
3ee4ef3585
@ -17,13 +17,14 @@ else
|
||||
install_target = $(prefix)/lib/taler-wallet-cli
|
||||
.PHONY: install install-nodeps deps
|
||||
install-nodeps:
|
||||
./build-node.mjs
|
||||
install -d $(prefix)/bin
|
||||
install -d $(install_target)/bin
|
||||
install -d $(install_target)/node_modules/taler-wallet-cli
|
||||
install -d $(install_target)/node_modules/taler-wallet-cli/bin
|
||||
install -d $(install_target)/node_modules/taler-wallet-cli/dist
|
||||
install ./dist/taler-wallet-cli.mjs $(install_target)/node_modules/taler-wallet-cli/dist/
|
||||
install ./dist/taler-wallet-cli.mjs.map $(install_target)/node_modules/taler-wallet-cli/dist/
|
||||
install ./dist/taler-wallet-cli-bundled.cjs $(install_target)/node_modules/taler-wallet-cli/dist/
|
||||
install ./dist/taler-wallet-cli-bundled.cjs.map $(install_target)/node_modules/taler-wallet-cli/dist/
|
||||
install ./bin/taler-wallet-cli.mjs $(install_target)/node_modules/taler-wallet-cli/bin/
|
||||
ln -sf $(install_target)/node_modules/taler-wallet-cli/bin/taler-wallet-cli.mjs $(prefix)/bin/taler-wallet-cli
|
||||
deps:
|
||||
|
@ -15,5 +15,5 @@
|
||||
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
import { main } from '../dist/taler-wallet-cli.mjs';
|
||||
import { main } from '../dist/taler-wallet-cli-bundled.cjs';
|
||||
main();
|
||||
|
70
packages/taler-wallet-cli/build-node.mjs
Executable file
70
packages/taler-wallet-cli/build-node.mjs
Executable file
@ -0,0 +1,70 @@
|
||||
#!/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 esbuild from "esbuild";
|
||||
import path from "path";
|
||||
import fs from "fs";
|
||||
|
||||
const BASE = process.cwd();
|
||||
|
||||
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");
|
||||
process.exit(1);
|
||||
}
|
||||
const GIT_HASH = GIT_ROOT === "/" ? undefined : git_hash();
|
||||
|
||||
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) {
|
||||
return rev;
|
||||
} else {
|
||||
return fs.readFileSync(path.join(GIT_ROOT, ".git", rev)).toString().trim();
|
||||
}
|
||||
}
|
||||
|
||||
export const buildConfig = {
|
||||
entryPoints: ["src/index.ts"],
|
||||
outfile: "dist/taler-wallet-cli-bundled.cjs",
|
||||
bundle: true,
|
||||
minify: false,
|
||||
target: ["es2020"],
|
||||
format: "cjs",
|
||||
platform: "node",
|
||||
sourcemap: true,
|
||||
inject: ["src/import-meta-url.js"],
|
||||
define: {
|
||||
__VERSION__: `"${_package.version}"`,
|
||||
__GIT_HASH__: `"${GIT_HASH}"`,
|
||||
["import.meta.url"]: "import_meta_url",
|
||||
},
|
||||
};
|
||||
|
||||
esbuild.build(buildConfig).catch((e) => {
|
||||
console.log(e);
|
||||
process.exit(1);
|
||||
});
|
72
packages/taler-wallet-cli/build-qtart.mjs
Executable file
72
packages/taler-wallet-cli/build-qtart.mjs
Executable file
@ -0,0 +1,72 @@
|
||||
#!/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 esbuild from "esbuild";
|
||||
import path from "path";
|
||||
import fs from "fs";
|
||||
|
||||
const BASE = process.cwd();
|
||||
|
||||
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");
|
||||
process.exit(1);
|
||||
}
|
||||
const GIT_HASH = GIT_ROOT === "/" ? undefined : git_hash();
|
||||
|
||||
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) {
|
||||
return rev;
|
||||
} else {
|
||||
return fs.readFileSync(path.join(GIT_ROOT, ".git", rev)).toString().trim();
|
||||
}
|
||||
}
|
||||
|
||||
export const buildConfig = {
|
||||
entryPoints: ["src/index.ts"],
|
||||
outfile: "dist/taler-wallet-cli.qtart.mjs",
|
||||
bundle: true,
|
||||
minify: false,
|
||||
target: ["es2020"],
|
||||
format: "esm",
|
||||
platform: "neutral",
|
||||
mainFields: ["module", "main"],
|
||||
conditions: ["qtart"],
|
||||
sourcemap: true,
|
||||
// quickjs standard library
|
||||
external: ["std", "os"],
|
||||
define: {
|
||||
__VERSION__: `"${_package.version}"`,
|
||||
__GIT_HASH__: `"${GIT_HASH}"`,
|
||||
},
|
||||
};
|
||||
|
||||
esbuild.build(buildConfig).catch((e) => {
|
||||
console.log(e);
|
||||
process.exit(1);
|
||||
});
|
@ -1,80 +0,0 @@
|
||||
#!/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 esbuild from 'esbuild'
|
||||
import path from "path"
|
||||
import fs from "fs"
|
||||
|
||||
const BASE = process.cwd()
|
||||
|
||||
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 }));
|
||||
}
|
||||
}
|
||||
|
||||
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")
|
||||
process.exit(1);
|
||||
}
|
||||
const GIT_HASH = GIT_ROOT === '/' ? undefined : git_hash()
|
||||
|
||||
|
||||
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) {
|
||||
return rev;
|
||||
} else {
|
||||
return fs.readFileSync(path.join(GIT_ROOT, '.git', rev)).toString().trim();
|
||||
}
|
||||
}
|
||||
|
||||
export const buildConfig = {
|
||||
entryPoints: ["src/index.ts"],
|
||||
outfile: "dist/taler-wallet-cli.qtart.mjs",
|
||||
bundle: true,
|
||||
minify: false,
|
||||
target: [
|
||||
'es2020'
|
||||
],
|
||||
format: 'esm',
|
||||
platform: 'neutral',
|
||||
mainFields: ["module", "main"],
|
||||
conditions: ["qtart"],
|
||||
sourcemap: true,
|
||||
// quickjs standard library
|
||||
external: ["std", "os"],
|
||||
define: {
|
||||
'__VERSION__': `"${_package.version}"`,
|
||||
'__GIT_HASH__': `"${GIT_HASH}"`,
|
||||
},
|
||||
}
|
||||
|
||||
esbuild
|
||||
.build(buildConfig)
|
||||
.catch((e) => {
|
||||
console.log(e)
|
||||
process.exit(1)
|
||||
});
|
@ -11,14 +11,14 @@
|
||||
},
|
||||
"author": "Florian Dold",
|
||||
"license": "GPL-3.0",
|
||||
"main": "dist/taler-wallet-cli.mjs",
|
||||
"bin": {
|
||||
"taler-wallet-cli": "./bin/taler-wallet-cli.mjs"
|
||||
},
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"prepare": "tsc && rollup -c",
|
||||
"compile": "tsc && rollup -c",
|
||||
"prepare": "true",
|
||||
"compile": "./build-node.mjs",
|
||||
"test": "tsc",
|
||||
"clean": "rimraf lib dist tsconfig.tsbuildinfo",
|
||||
"pretty": "prettier --write src"
|
||||
},
|
||||
@ -31,16 +31,9 @@
|
||||
"src/"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-commonjs": "^22.0.2",
|
||||
"@rollup/plugin-json": "^4.1.0",
|
||||
"@rollup/plugin-node-resolve": "^13.3.0",
|
||||
"@rollup/plugin-replace": "^4.0.0",
|
||||
"@types/node": "^18.11.17",
|
||||
"prettier": "^2.5.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"rollup": "^2.79.0",
|
||||
"rollup-plugin-sourcemaps": "^0.6.3",
|
||||
"rollup-plugin-terser": "^7.0.2",
|
||||
"typedoc": "^0.23.16",
|
||||
"typescript": "^4.9.4"
|
||||
},
|
||||
|
2
packages/taler-wallet-cli/src/import-meta-url.js
Normal file
2
packages/taler-wallet-cli/src/import-meta-url.js
Normal file
@ -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);
|
@ -427,16 +427,9 @@ importers:
|
||||
specifiers:
|
||||
'@gnu-taler/taler-util': workspace:*
|
||||
'@gnu-taler/taler-wallet-core': workspace:*
|
||||
'@rollup/plugin-commonjs': ^22.0.2
|
||||
'@rollup/plugin-json': ^4.1.0
|
||||
'@rollup/plugin-node-resolve': ^13.3.0
|
||||
'@rollup/plugin-replace': ^4.0.0
|
||||
'@types/node': ^18.11.17
|
||||
prettier: ^2.5.1
|
||||
rimraf: ^3.0.2
|
||||
rollup: ^2.79.0
|
||||
rollup-plugin-sourcemaps: ^0.6.3
|
||||
rollup-plugin-terser: ^7.0.2
|
||||
tslib: ^2.4.0
|
||||
typedoc: ^0.23.16
|
||||
typescript: ^4.9.4
|
||||
@ -445,16 +438,9 @@ importers:
|
||||
'@gnu-taler/taler-wallet-core': link:../taler-wallet-core
|
||||
tslib: 2.4.0
|
||||
devDependencies:
|
||||
'@rollup/plugin-commonjs': 22.0.2_rollup@2.79.1
|
||||
'@rollup/plugin-json': 4.1.0_rollup@2.79.1
|
||||
'@rollup/plugin-node-resolve': 13.3.0_rollup@2.79.1
|
||||
'@rollup/plugin-replace': 4.0.0_rollup@2.79.1
|
||||
'@types/node': 18.11.17
|
||||
prettier: 2.7.1
|
||||
rimraf: 3.0.2
|
||||
rollup: 2.79.1
|
||||
rollup-plugin-sourcemaps: 0.6.3_bipou45jdaxtftg6fcql4vnhdm
|
||||
rollup-plugin-terser: 7.0.2_rollup@2.79.1
|
||||
typedoc: 0.23.18_typescript@4.9.4
|
||||
typescript: 4.9.4
|
||||
|
||||
@ -3770,22 +3756,6 @@ packages:
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/@rollup/plugin-commonjs/22.0.2_rollup@2.79.1:
|
||||
resolution: {integrity: sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
peerDependencies:
|
||||
rollup: ^2.68.0
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 3.1.0_rollup@2.79.1
|
||||
commondir: 1.0.1
|
||||
estree-walker: 2.0.2
|
||||
glob: 7.2.3
|
||||
is-reference: 1.2.1
|
||||
magic-string: 0.25.9
|
||||
resolve: 1.22.1
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/@rollup/plugin-html/0.2.4_rollup@2.79.1:
|
||||
resolution: {integrity: sha512-x0qpNXxbmGa9Jnl4OX89AORPe2T/a4DqNK69BGRnEdaPKq6MdiUXSTam/eCkF5DxkQGcRcPq0L4vzr/E3q4mVA==}
|
||||
engines: {node: '>= 8.0.0'}
|
||||
@ -3830,21 +3800,6 @@ packages:
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/@rollup/plugin-node-resolve/13.3.0_rollup@2.79.1:
|
||||
resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
peerDependencies:
|
||||
rollup: ^2.42.0
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 3.1.0_rollup@2.79.1
|
||||
'@types/resolve': 1.17.1
|
||||
deepmerge: 4.2.2
|
||||
is-builtin-module: 3.2.0
|
||||
is-module: 1.0.0
|
||||
resolve: 1.22.1
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/@rollup/plugin-replace/2.4.2_rollup@2.79.1:
|
||||
resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==}
|
||||
peerDependencies:
|
||||
@ -3865,16 +3820,6 @@ packages:
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/@rollup/plugin-replace/4.0.0_rollup@2.79.1:
|
||||
resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==}
|
||||
peerDependencies:
|
||||
rollup: ^1.20.0 || ^2.0.0
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 3.1.0_rollup@2.79.1
|
||||
magic-string: 0.25.9
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/@rollup/plugin-typescript/11.0.0_ds5km5eydjug3un6mvhihxeysu:
|
||||
resolution: {integrity: sha512-goPyCWBiimk1iJgSTgsehFD5OOFHiAknrRJjqFCudcW8JtWiBlK284Xnn4flqMqg6YAjVG/EE+3aVzrL5qNSzQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
@ -9718,13 +9663,6 @@ packages:
|
||||
resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
|
||||
dev: true
|
||||
|
||||
/is-builtin-module/3.2.0:
|
||||
resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==}
|
||||
engines: {node: '>=6'}
|
||||
dependencies:
|
||||
builtin-modules: 3.3.0
|
||||
dev: true
|
||||
|
||||
/is-callable/1.2.7:
|
||||
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@ -13294,22 +13232,6 @@ packages:
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/rollup-plugin-sourcemaps/0.6.3_bipou45jdaxtftg6fcql4vnhdm:
|
||||
resolution: {integrity: sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=10.0.0'
|
||||
rollup: '>=0.31.2'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 3.1.0_rollup@2.79.1
|
||||
'@types/node': 18.11.17
|
||||
rollup: 2.79.1
|
||||
source-map-resolve: 0.6.0
|
||||
dev: true
|
||||
|
||||
/rollup-plugin-terser/7.0.2_rollup@2.79.1:
|
||||
resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
|
||||
deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
|
||||
@ -13831,14 +13753,6 @@ packages:
|
||||
urix: 0.1.0
|
||||
dev: true
|
||||
|
||||
/source-map-resolve/0.6.0:
|
||||
resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==}
|
||||
deprecated: See https://github.com/lydell/source-map-resolve#deprecated
|
||||
dependencies:
|
||||
atob: 2.1.2
|
||||
decode-uri-component: 0.2.0
|
||||
dev: true
|
||||
|
||||
/source-map-support/0.5.21:
|
||||
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
|
||||
dependencies:
|
||||
|
Loading…
Reference in New Issue
Block a user