upgrade rollup; bundle TS directly

This also resolves a problem where symbols weren't exported correctly for the Android wallet-core bundle
This commit is contained in:
Florian Dold 2020-07-17 18:00:34 +05:30
parent 50550da3c2
commit 9f5e61057e
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
5 changed files with 877 additions and 1083 deletions

View File

@ -22,6 +22,7 @@ module.exports = {
"@typescript-eslint/camelcase": "off",
"@typescript-eslint/ban-ts-ignore": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-unused-vars": ["warn", { args: "none" }],
"@typescript-eslint/explicit-function-return-type": [
"warn",

View File

@ -82,7 +82,7 @@ install: tsc
endif
.PHONY: rollup
rollup: tsc
rollup: yarn-install
./node_modules/.bin/rollup -c
.PHONY: lint

View File

@ -5,7 +5,6 @@
"engines": {
"node": ">=0.12.0"
},
"main": "dist/node/index.js",
"repository": {
"type": "git",
"url": "git://git.taler.net/wallet-core.git"
@ -31,41 +30,43 @@
],
"devDependencies": {
"@ava/typescript": "^1.1.1",
"@rollup/plugin-json": "^4.0.2",
"@rollup/plugin-replace": "^2.3.1",
"@rollup/plugin-commonjs": "^14.0.0",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^8.4.0",
"@rollup/plugin-replace": "^2.3.3",
"@rollup/plugin-typescript": "^5.0.2",
"@types/chrome": "^0.0.103",
"@types/enzyme": "^3.10.5",
"@types/enzyme-adapter-react-16": "^1.0.6",
"@types/node": "^14.0.23",
"@types/react": "^16.9.6",
"@types/react-dom": "^16.9.6",
"@typescript-eslint/eslint-plugin": "^2.27.0",
"@typescript-eslint/parser": "^2.27.0",
"ava": "^3.8.2",
"@typescript-eslint/eslint-plugin": "^3.6.1",
"@typescript-eslint/parser": "^3.6.1",
"ava": "^3.10.1",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.2",
"eslint": "^6.8.0",
"eslint-config-airbnb-typescript": "^8.0.0",
"eslint-plugin-import": "^2.20.2",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.20.0",
"eslint-plugin-react-hooks": "^4.0.4",
"eslint": "^7.4.0",
"eslint-config-airbnb-typescript": "^8.0.2",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-jsx-a11y": "^6.3.1",
"eslint-plugin-react": "^7.20.3",
"eslint-plugin-react-hooks": "^4.0.8",
"jed": "^1.1.1",
"moment": "^2.26.0",
"moment": "^2.27.0",
"nyc": "^15.1.0",
"po2json": "^0.4.5",
"pogen": "^0.0.5",
"prettier": "^2.0.5",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"rollup": "^2.12.1",
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-node-resolve": "^5.2.0",
"rollup": "^2.21.0",
"rollup-plugin-sourcemaps": "^0.6.2",
"rollup-plugin-terser": "^6.1.0",
"source-map-resolve": "^0.6.0",
"structured-clone": "^0.2.2",
"typedoc": "^0.17.7",
"typescript": "^3.9.3"
"typedoc": "^0.17.8",
"typescript": "^3.9.7"
},
"dependencies": {
"axios": "^0.19.2",

View File

@ -1,13 +1,38 @@
// rollup.config.js
import commonjs from "rollup-plugin-commonjs";
import nodeResolve from "rollup-plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import nodeResolve from "@rollup/plugin-node-resolve";
import json from "@rollup/plugin-json";
import replace from "@rollup/plugin-replace";
import builtins from "builtin-modules";
import { terser } from "rollup-plugin-terser";
import typescript from "@rollup/plugin-typescript";
// Base settings to use
const baseTypescriptCompilerSettings = {
target: "ES6",
jsx: "react",
reactNamespace: "React",
moduleResolution: "node",
sourceMap: true,
lib: ["es6", "dom"],
noImplicitReturns: true,
noFallthroughCasesInSwitch: true,
strict: true,
strictPropertyInitialization: false,
noImplicitAny: true,
noImplicitThis: true,
allowJs: true,
checkJs: true,
incremental: false,
esModuleInterop: true,
importHelpers: true,
module: "ESNext",
include: ["src/**/*.+(ts|tsx)"],
rootDir: "./src",
};
const walletCli = {
input: "dist/node/headless/taler-wallet-cli.js",
input: "src/headless/taler-wallet-cli.ts",
output: {
file: "dist/standalone/taler-wallet-cli.js",
format: "cjs",
@ -25,13 +50,21 @@ const walletCli = {
sourceMap: false,
ignore: ["taler-wallet"],
}),
json(),
typescript({
tsconfig: false,
...baseTypescriptCompilerSettings,
sourceMap: false,
}),
],
};
const walletAndroid = {
input: "dist/node/android/index.js",
input: "src/android/index.ts",
output: {
//dir: "dist/standalone",
file: "dist/standalone/taler-wallet-android.js",
format: "cjs",
exports: "named",
@ -45,21 +78,26 @@ const walletAndroid = {
}),
commonjs({
include: ["node_modules/**", "dist/node/**"],
include: ["node_modules/**"],
extensions: [".js"],
ignoreGlobal: false, // Default: false
sourceMap: false,
ignore: ["taler-wallet"],
}),
typescript({
tsconfig: false,
...baseTypescriptCompilerSettings,
sourceMap: false,
}),
],
};
const webExtensionPageEntryPoint = {
input: "dist/node/webex/pageEntryPoint.js",
input: "src/webex/pageEntryPoint.ts",
output: {
file: "dist/webextension/pageEntryPoint.js",
format: "iife",
exports: "default",
exports: "none",
name: "webExtensionPageEntry",
},
external: builtins,
@ -79,19 +117,24 @@ const webExtensionPageEntryPoint = {
commonjs({
include: ["node_modules/**", "dist/node/**"],
extensions: [".js"],
ignoreGlobal: false, // Default: false
sourceMap: false,
ignore: ["taler-wallet"],
}),
typescript({
tsconfig: false,
...baseTypescriptCompilerSettings,
sourceMap: false,
}),
],
};
const webExtensionBackgroundPageScript = {
input: "dist/node/webex/background.js",
input: "src/webex/background.ts",
output: {
file: "dist/webextension/background.js",
format: "iife",
exports: "default",
exports: "none",
name: "webExtensionBackgroundScript",
},
external: builtins,
@ -111,19 +154,24 @@ const webExtensionBackgroundPageScript = {
commonjs({
include: ["node_modules/**", "dist/node/**"],
extensions: [".js"],
ignoreGlobal: false, // Default: false
sourceMap: false,
ignore: ["taler-wallet", "crypto"],
}),
typescript({
tsconfig: false,
...baseTypescriptCompilerSettings,
sourceMap: false,
}),
],
};
const webExtensionCryptoWorker = {
input: "dist/node/crypto/workers/browserWorkerEntry.js",
input: "src/crypto/workers/browserWorkerEntry.ts",
output: {
file: "dist/webextension/browserWorkerEntry.js",
format: "iife",
exports: "default",
exports: "none",
name: "webExtensionCryptoWorker",
},
external: builtins,
@ -143,10 +191,15 @@ const webExtensionCryptoWorker = {
commonjs({
include: ["node_modules/**", "dist/node/**"],
extensions: [".js"],
ignoreGlobal: false, // Default: false
sourceMap: false,
ignore: ["taler-wallet", "crypto"],
}),
typescript({
tsconfig: false,
...baseTypescriptCompilerSettings,
sourceMap: false,
}),
],
};

1837
yarn.lock

File diff suppressed because it is too large Load Diff