gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] 03/04: using build from web-utils


From: gnunet
Subject: [taler-wallet-core] 03/04: using build from web-utils
Date: Mon, 24 Apr 2023 16:57:46 +0200

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository wallet-core.

commit fdd56335309017016362fa4a9ead606fdae9ee7e
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Mon Apr 24 11:43:23 2023 -0300

    using build from web-utils
---
 packages/demobank-ui/build.mjs    | 155 +-------------------------------------
 packages/demobank-ui/dev.mjs      |  15 ++--
 packages/demobank-ui/package.json |   1 -
 packages/web-util/tsconfig.json   |   2 +-
 pnpm-lock.yaml                    |   8 +-
 5 files changed, 16 insertions(+), 165 deletions(-)

diff --git a/packages/demobank-ui/build.mjs b/packages/demobank-ui/build.mjs
index f30fe5490..a89b9742f 100755
--- a/packages/demobank-ui/build.mjs
+++ b/packages/demobank-ui/build.mjs
@@ -15,156 +15,7 @@
  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 sass from "sass";
+ import { buildProd } from "@gnu-taler/web-util/lib/index.build"
 
-// eslint-disable-next-line no-undef
-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) => {
-      //console.log("onresolve", JSON.stringify(args, undefined, 2));
-      return {
-        path: preact,
-      };
-    });
-  },
-};
-
-function getFilesInDirectory(startPath, regex) {
-  if (!fs.existsSync(startPath)) {
-    return;
-  }
-  const files = fs.readdirSync(startPath);
-  const result = files.flatMap(file => {
-    const filename = path.join(startPath, file);
-
-    const stat = fs.lstatSync(filename);
-    if (stat.isDirectory()) {
-      return getFilesInDirectory(filename, regex);
-    }
-    else if (regex.test(filename)) {
-      return filename
-    }
-  }).filter(x => !!x)
-
-  return result
-}
-
-const allTestFiles = getFilesInDirectory(path.join(BASE, 'src'), /.test.ts$/)
-
-const entryPoints = ["src/index.tsx", "src/stories.tsx", ...allTestFiles];
-
-let GIT_ROOT = BASE;
-while (!fs.existsSync(path.join(GIT_ROOT, ".git")) && GIT_ROOT !== "/") {
-  GIT_ROOT = path.join(GIT_ROOT, "../");
-}
-if (GIT_ROOT === "/") {
-  // eslint-disable-next-line no-undef
-  console.log("not found");
-  // eslint-disable-next-line no-undef
-  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();
-  }
-}
-
-// FIXME: Put this into some helper library.
-function copyFilesPlugin(options) {
-  return {
-    name: "copy-files",
-    setup(build) {
-      build.onEnd(() => {
-        for (const fop of options) {
-          fs.copyFileSync(fop.src, fop.dest);
-        }
-      });
-    },
-  };
-}
-
-const DEFAULT_SASS_FILTER = /\.(s[ac]ss|css)$/
-
-const buildSassPlugin = {
-  name: "custom-build-sass",
-  setup(build) {
-
-    build.onLoad({ filter: DEFAULT_SASS_FILTER }, ({ path: file }) => {
-      const resolveDir = path.dirname(file)
-      const { css: contents } = sass.compile(file, { loadPaths: ["./"] })
-
-      return {
-        resolveDir,
-        loader: 'css',
-        contents
-      }
-    });
-
-  },
-};
-
-export const buildConfig = {
-  entryPoints: [...entryPoints],
-  bundle: true,
-  outdir: "dist",
-  minify: false,
-  loader: {
-    ".svg": "file",
-    ".png": "dataurl",
-    ".jpeg": "dataurl",
-    '.ttf': 'file',
-    '.woff': 'file',
-    '.woff2': 'file',
-    '.eot': 'file',
-  },
-  target: ["es6"],
-  format: "esm",
-  platform: "browser",
-  sourcemap: true,
-  jsxFactory: "h",
-  jsxFragment: "Fragment",
-  external: ["async_hooks"],
-  define: {
-    __VERSION__: `"${_package.version}"`,
-    __GIT_HASH__: `"${GIT_HASH}"`,
-  },
-  plugins: [
-    preactCompatPlugin,
-    copyFilesPlugin([
-      {
-        src: "./src/index.html",
-        dest: "./dist/index.html",
-      },
-    ]),
-    buildSassPlugin
-  ],
-};
-
-await esbuild.build(buildConfig)
+ await buildProd(["src/index.tsx"])
+ 
\ No newline at end of file
diff --git a/packages/demobank-ui/dev.mjs b/packages/demobank-ui/dev.mjs
index 35a9fa16c..74df51195 100755
--- a/packages/demobank-ui/dev.mjs
+++ b/packages/demobank-ui/dev.mjs
@@ -16,15 +16,20 @@
  */
 
 import { serve } from "@gnu-taler/web-util/lib/index.node";
-import esbuild from "esbuild";
-import { buildConfig } from "./build.mjs";
+import { initializeDev, getFilesInSource } from 
"@gnu-taler/web-util/lib/index.build"
 
-buildConfig.inject = ['./node_modules/@gnu-taler/web-util/lib/live-reload.mjs']
+const allTestFiles = getFilesInSource(/.test.tsx?$/);
+const devEntryPoints = ["src/stories.tsx", "src/index.tsx", ...allTestFiles];
+
+const buildDev = initializeDev(devEntryPoints)
+
+await buildDev();
 
 serve({
-  folder: './dist',
+  folder: './dist/dev',
   port: 8080,
   source: './src',
+  insecure: true,
   development: true,
-  onUpdate: async () => esbuild.build(buildConfig)
+  onUpdate: buildDev
 })
diff --git a/packages/demobank-ui/package.json 
b/packages/demobank-ui/package.json
index 586beae05..f23173da4 100644
--- a/packages/demobank-ui/package.json
+++ b/packages/demobank-ui/package.json
@@ -50,7 +50,6 @@
     "@types/node": "^18.11.17",
     "@typescript-eslint/eslint-plugin": "^5.41.0",
     "@typescript-eslint/parser": "^5.41.0",
-    "async_hooks": "^1.0.0",
     "bulma": "^0.9.4",
     "bulma-checkbox": "^1.1.1",
     "bulma-radio": "^1.1.1",
diff --git a/packages/web-util/tsconfig.json b/packages/web-util/tsconfig.json
index fc558e59b..fc69cad06 100644
--- a/packages/web-util/tsconfig.json
+++ b/packages/web-util/tsconfig.json
@@ -2,7 +2,7 @@
   "compilerOptions": {
     "composite": true,
     "declaration": true,
-    "declarationMap": false,
+    "declarationMap": true,
     "target": "ES6",
     "module": "ESNext",
     "jsx": "react",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c7b2df4bf..2dc61a37f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -102,7 +102,6 @@ importers:
       '@types/node': ^18.11.17
       '@typescript-eslint/eslint-plugin': ^5.41.0
       '@typescript-eslint/parser': ^5.41.0
-      async_hooks: ^1.0.0
       bulma: ^0.9.4
       bulma-checkbox: ^1.1.1
       bulma-radio: ^1.1.1
@@ -140,7 +139,6 @@ importers:
       '@types/node': 18.11.17
       '@typescript-eslint/eslint-plugin': 5.41.0_2kpzrn7ygxrevwp2scfdydbp5u
       '@typescript-eslint/parser': 5.41.0_typescript@4.9.4
-      async_hooks: 1.0.0
       bulma: 0.9.4
       bulma-checkbox: 1.2.1
       bulma-radio: 1.2.0
@@ -573,6 +571,7 @@ importers:
       preact-render-to-string: ^5.2.6
       prettier: ^2.5.1
       rimraf: ^3.0.2
+      sass: 1.56.1
       swr: 2.0.3
       tslib: ^2.4.0
       typescript: ^4.9.4
@@ -593,6 +592,7 @@ importers:
       preact-render-to-string: 5.2.6_preact@10.11.3
       prettier: 2.7.1
       rimraf: 3.0.2
+      sass: 1.56.1
       swr: 2.0.3
       tslib: 2.4.1
       typescript: 4.9.4
@@ -4913,10 +4913,6 @@ packages:
     resolution: {integrity: 
sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
     dev: true
 
-  /async_hooks/1.0.0:
-    resolution: {integrity: 
sha512-t4BSJgx48V3e7U6Ll3/WOUNmxIRPzmPdxVfgbyzcnRItEnn4iKp4F//b0sV3L9hzbdr5qxWdNWzOF7t+rjYSfA==}
-    dev: true
-
   /asynckit/0.4.0:
     resolution: {integrity: 
sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]