taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 3c4b9d819add3b4804e2a8a2e95228efd55a3a91
parent 6647cf86bddc989d9d3e6c85b9e534cbe349f914
Author: Sebastian <sebasjm@gmail.com>
Date:   Wed, 14 May 2025 17:31:47 -0300

tools: allow the build script to split assets for dev and prod

Diffstat:
Mpackages/web-util/src/hooks/useLocalStorage.ts | 4++--
Mpackages/web-util/src/index.build.ts | 18+++++++++++-------
2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/packages/web-util/src/hooks/useLocalStorage.ts b/packages/web-util/src/hooks/useLocalStorage.ts @@ -52,7 +52,7 @@ export function buildStorageKey<Key = string>( } export interface StorageState<Type = string> { - value: currentRequest?: Type; + value?: Type; update: (s: Type) => void; reset: () => void; } @@ -120,7 +120,7 @@ export function useLocalStorage<Type = string>( }; return { - value: currentRequest: current, + value: current, update: setValue, reset: () => { setValue(defaultValue); diff --git a/packages/web-util/src/index.build.ts b/packages/web-util/src/index.build.ts @@ -8,7 +8,7 @@ import postcssrc from "postcss-load-config"; type Assets = { base: string; - files: string[]; + files: (string | { orig: string; dest: string })[]; }; export function getFilesInDirectory(startPath: string, regex?: RegExp): Assets { @@ -73,13 +73,17 @@ function copyFilesPlugin(assets: Assets | Assets[]) { } build.onEnd(() => { list.forEach((as) => { - for (const file of as.files) { - const destination = path.join(outDir, path.relative(as.base, file)); + for (const fileName of as.files) { + const { orig, dest } = + typeof fileName === "string" + ? { orig: fileName, dest: fileName } + : fileName; + const destination = path.join(outDir, path.relative(as.base, orig)); const dirname = path.dirname(destination); if (!fs.existsSync(dirname)) { fs.mkdirSync(dirname, { recursive: true }); } - fs.copyFileSync(file, destination); + fs.copyFileSync(dest, destination); } }); }); @@ -220,7 +224,7 @@ export interface BuildParams { importMeta?: ImportMeta; source: { assets: Assets | Assets[]; - js: string[] | Record<string,string>; + js: string[] | Record<string, string>; }; public?: string; /** @@ -271,7 +275,7 @@ export function computeConfig(params: BuildParams): { if (!params.destination) { throw Error(`missing destination folder`); } - + const plugins: Array<esbuild.Plugin> = [ copyFilesPlugin(params.source.assets), ]; @@ -358,7 +362,7 @@ export function initializeDevOnWebUtils( */ export function initializeDev( config: BuildParams, - options: {dontDoLiveReload?: boolean} = {}, + options: { dontDoLiveReload?: boolean } = {}, ): () => Promise<esbuild.BuildResult> { function buildDevelopment() { const { esBuildOptions } = computeConfig(config);