UNPKG

@storm-stack/core

Version:

A build toolkit and runtime used by Storm Software in TypeScript applications

1 lines 7.55 kB
{"version":3,"sources":["../../src/lib/esbuild/options.ts"],"names":["resolveEsbuildEntryOptions","context","entryPoints","reduce","ret","entry","isString","replacePath","options","workspaceRoot","replace","findFileExtension","output","input","file","resolveESBuildOptions","override","bundleOptions","result","defu","alias","sourcemap","vfs","runtimeIdMap","keys","id","path","get","esbuild","platform","format","target","globalName","minify","mode","metafile","bundle","treeShaking","treeshake","keepNames","splitting","outdir","outputPath","tsconfig","tsconfigFilePath","banner","footer","plugins","logLevel"],"mappings":"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","file":"chunk-5QXHN37U.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Storm Stack\n\n This code was released as part of the Storm Stack project. Storm Stack\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/storm-stack.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/storm-stack\n Documentation: https://docs.stormsoftware.com/projects/storm-stack\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { findFileExtension } from \"@stryke/path/file-path-fns\";\nimport { replacePath } from \"@stryke/path/replace\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport defu from \"defu\";\nimport { BuildOptions as ExternalESBuildOptions } from \"esbuild\";\nimport { BundleOptions } from \".\";\nimport type { ResolvedEntryTypeDefinition } from \"../../types/build\";\nimport { ESBuildOverrideOptions } from \"../../types/config\";\nimport { Context } from \"../../types/context\";\n\nexport function resolveEsbuildEntryOptions(\n context: Context,\n entryPoints: ResolvedEntryTypeDefinition[] | string[]\n): ExternalESBuildOptions[\"entryPoints\"] {\n return entryPoints.reduce(\n (ret, entry) => {\n if (isString(entry)) {\n ret[\n replacePath(entry, context.options.workspaceRoot).replace(\n findFileExtension(entry) || \"\",\n \"\"\n )\n ] = replacePath(entry, context.options.workspaceRoot);\n } else {\n ret[\n entry.output ||\n replacePath(\n entry.input.file,\n context.options.workspaceRoot\n ).replace(findFileExtension(entry.input.file) || \"\", \"\") ||\n replacePath(entry.file, context.options.workspaceRoot).replace(\n findFileExtension(entry.file) || \"\",\n \"\"\n )\n ] = replacePath(entry.file, context.options.workspaceRoot);\n }\n\n return ret;\n },\n {} as Record<string, string>\n );\n}\n\nexport function resolveESBuildOptions(\n context: Context,\n override: Partial<ESBuildOverrideOptions> = {},\n bundleOptions: BundleOptions = {}\n): ExternalESBuildOptions {\n const result = defu(\n override ?? {},\n {\n alias: bundleOptions.alias,\n sourcemap: false\n },\n {\n alias: context.vfs.runtimeIdMap.keys().reduce(\n (ret, id) => {\n const path = context.vfs.runtimeIdMap.get(id);\n if (path) {\n ret[id] = path;\n }\n\n return ret;\n },\n {} as Record<string, string>\n )\n },\n bundleOptions.override ?? {},\n context.options.esbuild.override ?? {},\n {\n platform: context.options.platform,\n format: context.options.esbuild.format,\n target: context.options.esbuild.target,\n globalName: context.options.esbuild.globalName,\n minify: context.options.mode !== \"development\",\n metafile: context.options.mode === \"development\",\n sourcemap: context.options.mode === \"development\",\n bundle: context.options.esbuild.bundle,\n treeShaking: context.options.esbuild.treeshake,\n keepNames: context.options.esbuild.keepNames,\n splitting: context.options.esbuild.splitting,\n outdir: context.options.output.outputPath,\n tsconfig: context.tsconfig.tsconfigFilePath,\n banner: context.options.esbuild.banner,\n footer: context.options.esbuild.footer,\n plugins: context.options.esbuild.plugins\n },\n {\n platform: \"neutral\",\n format: \"esm\",\n minify: true,\n sourcemap: false,\n bundle: true,\n treeShaking: true,\n keepNames: true,\n splitting: true,\n logLevel: \"silent\"\n }\n ) as ExternalESBuildOptions;\n\n return result;\n}\n"]}