build-ts 5.7.10 → 5.7.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +14 -14
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"yargs";import{hideBin as o}from"yargs/helpers";import n from"node:fs";import s from"node:path";import t from"chalk";import i from"date-time";import r from"pretty-ms";import{watch as a,rollup as c}from"rollup";import p from"signal-exit";import l from"node:url";import{babel as d}from"@rollup/plugin-babel";import m from"@rollup/plugin-commonjs";import u from"@rollup/plugin-json";import f from"@rollup/plugin-node-resolve";import h from"@rollup/plugin-replace";import b from"@rollup/plugin-terser";import g from"rollup-plugin-analyzer";import{externals as y}from"rollup-plugin-node-externals";import{string as j}from"rollup-plugin-string";import v from"rollup-plugin-ts";import x from"dotenv";import w from"node:process";import*as S from"node:child_process";const $=["app","functions","lib"];async function k(e){try{const o=await n.promises.readFile(s.join(e,"package.json"),"utf8");return JSON.parse(o)}catch{}}const T={input:{description:'A file path of main source code. Default value is "src/index.{ts,tsx}" from package directory.',type:"string",alias:"i"},"core-js":{description:"Whether or not core-js is employed.",type:"boolean",default:!1},minify:{description:"Whether or not minification is enabled.",type:"boolean",default:!0},sourcemap:{description:"Whether or not sourcemap is enabled.",type:"boolean",default:!0},external:{description:"Additional external dependencies.",type:"array"},verbose:{description:"Whether or not verbose mode is enabled.",type:"boolean",alias:"v"},env:{description:"Environment variables to be inlined.",type:"array",alias:"e"},dotenv:{description:".env files to be inlined.",type:"array"},watch:{description:"Whether watch mode is enabled or not",type:"boolean",alias:"w"},silent:{description:"Whether watch mode is enabled or not",type:"boolean",alias:"s"}},E={...T,moduleType:{description:"esm, cjs, or either (default).",type:"string",alias:"m"}};function _(e,o){const n={};for(const o of(e.env??[]).map((e=>e.toString())))void 0!==process.env[o]&&(n[`process.env.${o}`]=JSON.stringify(process.env[o]));for(const t of(e.dotenv??[]).map((e=>e.toString()))){const e=x.config({path:s.join(o,t)}).parsed||{};for(const[o,s]of Object.entries(e))void 0!==s&&(n[`process.env.${o}`]=JSON.stringify(s))}return n}function N(e,o,n,t,i){const r=[...e.external??[]].map((e=>e.toString()));n?.dependencies?.["@prisma/client"]&&r.push("prisma-client");const a=[".cjs",".mjs",".js",".jsx",".json",".cts",".mts",".ts",".tsx"],c=s.join(l.fileURLToPath(s.dirname(s.dirname(import.meta.url))),"babel.config.mjs"),p=[h({delimiters:["",""],preventAssignment:!0,values:_(e,i)}),u(),y({deps:!0,devDeps:!1,peerDeps:!0,optDeps:!0,include:r,exclude:t&&new RegExp(`${t}\\/.+`)}),f({extensions:a}),m()];return"app-node"===o||"functions"===o?p.push(d({configFile:c,extensions:a,babelHelpers:"bundled",exclude:"node_modules/**"})):p.push(v({transpiler:"babel",babelConfig:c})),p.push(j({include:["**/*.csv","**/*.txt"]})),e.minify&&p.push(b()),p.push(g({summaryOnly:!0})),p}const D={command:"app [package]",describe:"Build an app",builder:E,handler:async e=>R(e,"app")},O={command:"functions [package]",describe:"Build a GCP/Firebase functions app",builder:{...E,onlyPackageJson:{description:"Whether to generate only package.json.",type:"boolean"}},async handler(e){if(!e.onlyPackageJson)return R(e,"functions");{const o=s.resolve(e.package?.toString()??"."),n=await k(o);n||(console.error("Failed to parse package.json."),process.exit(1)),await W(o,n)}}},A={command:"lib [package]",describe:"Build a Node.js / React library",builder:{...T,moduleType:{description:"esm, cjs, either, or both (default).",type:"string",alias:"m"},jsExtension:{description:"Whether to use .js in cjs and/or esm: either (default), both, or none.",type:"string",alias:"j"}},handler:async e=>R(e,"lib")};async function R(e,o){const l=!e.silent&&e.verbose,d=process.cwd(),m=s.resolve(e.package?.toString()??"."),u=await k(m);u||(console.error("Failed to parse package.json."),process.exit(1));const f=function(e,o,t){if(e.input)return s.join(o,e.input);let i=s.join(t,s.join("src","index.ts"));if(n.existsSync(i))return i;if(i=s.join(t,s.join("src","index.tsx")),n.existsSync(i))return i;console.error("Failed to detect input file."),process.exit(1)}(e,d,m),h=function(e,o){switch(e){case"app":return"app-node";case"functions":return"functions";case"lib":return o.endsWith(".tsx")?"lib-react":"lib";default:console.error("target option must be one of: "+$.join(", ")),process.exit(1)}}(o,f);l&&console.info("Target (Category):",`${h} (${o})`);const[b]=function(e){const o=e.name?.toString()||"",n=/@([^/]+)\/(.+)/.exec(o),[,s,t]=n||[];return[s,t]}(u),g="module"===u.type;let y;if(e["core-js"]&&(process.env.BUILD_TS_COREJS="1"),l&&(process.env.BUILD_TS_VERBOSE="1"),process.env.BUILD_TS_TARGET_CATEGORY=o,process.env.BUILD_TS_TARGET_DETAIL=h,"app-node"===h||"functions"===h){const o=e.moduleType||"either",n="esm"===o||"either"===o&&g;u.main=g===n?"index.js":n?"index.mjs":"index.cjs",y=[{file:s.join(m,"dist",u.main),format:n?"module":"commonjs",sourcemap:e.sourcemap}]}else{y=[];const o=e.moduleType||"both",n=e.jsExtension||"either";("cjs"===o||"both"===o||"either"===o&&!g)&&y.push({dir:s.join(m,"dist","cjs"),entryFileNames:"both"===n||"either"===n&&!g?"[name].js":"[name].cjs",format:"commonjs",preserveModules:!0,sourcemap:e.sourcemap}),("esm"===o||"both"===o||"either"===o&&g)&&y.push({dir:s.join(m,"dist","esm"),entryFileNames:"both"===n||"either"===n&&g?"[name].js":"[name].mjs",format:"module",preserveModules:!0,sourcemap:e.sourcemap})}l&&console.info("OutputOptions:",y),0===y.length&&(console.error("Failed to detect output files."),process.exit(1)),process.chdir(m),await n.promises.rm(s.join(m,"dist"),{recursive:!0,force:!0}),"functions"===h&&await W(m,u);const j={input:f,plugins:N(e,h,u,b,d),watch:e.watch?{clearScreen:!1}:void 0},v=e=>(Array.isArray(e)?e:[e]).map((e=>s.relative(m,e)));if(e.watch){const o=a({...j,output:y}),n=async e=>{process.removeListener("uncaughtException",n),process.stdin.removeListener("end",n),o&&await o.close(),e&&process.exit(e)};p(n),process.on("uncaughtException",n),process.stdin.isTTY||(process.stdin.on("end",n),process.stdin.resume()),o.on("event",(o=>{switch(o.code){case"ERROR":!function(e,o=!1){const n=e.name||e.cause?.name,s=n?`${n}: `:"",i=`${e.plugin?`(plugin ${e.plugin}) `:""}${s}${e.message}`,r=[t.bold(t.red(`[!] ${t.bold(i.toString())}`))];e.url&&r.push(t.cyan(e.url)),e.loc?r.push(`${e.loc.file||e.id} (${e.loc.line}:${e.loc.column})`):e.id&&r.push(e.id),e.frame&&r.push(t.dim(e.frame)),e.stack&&r.push(t.dim(e.stack?.replace(`${s}${e.message}\n`,""))),r.push("",""),console.error(r.join("\n")),o||w.exit(1)}(o.error,!0);break;case"BUNDLE_START":{if(e.silent)break;const n=o.input,s=[];"string"==typeof n?s.push(n):s.push(...Array.isArray(n)?n:Object.values(n)),console.info(t.cyan(`Bundles ${t.bold(v(s).join(", "))} → ${t.bold(v(o.output).join(", "))}\non ${m} ...`));break}case"BUNDLE_END":if(e.silent)break;console.info(t.green(`Created ${t.bold(v(o.output).join(", "))} in ${t.bold(r(o.duration))}`));break;case"END":if(e.silent)break;console.info(`\n[${i()}] waiting for changes...`)}"result"in o&&o.result&&o.result.close()}))}else{let o;e.silent||console.info(t.cyan(`Bundles ${t.bold(v(f).join(", "))} → ${t.bold(v(y.map((e=>e.file||e.dir||""))).join(", "))}\non ${m} ...`));let n=!1;try{const n=Date.now(),s=await c(j);o=s,await Promise.all(y.map((e=>s.write(e)))),e.silent||console.info(t.green(`Created ${v(y.map((e=>e.file||e.dir||""))).join(", ")} in ${t.bold(r(Date.now()-n))}`))}catch(e){n=!0,console.error("Failed to build due to:",e)}await(o?.close()),n&&process.exit(1)}}async function W(e,o){o.name+="-dist",delete o.devDependencies,await n.promises.mkdir(s.join(e,"dist"),{recursive:!0}),await n.promises.writeFile(s.join(e,"dist","package.json"),JSON.stringify(o))}const B={command:"run <file>",describe:"Run script",builder:{module:{description:"A module type: cjs or esm",type:"string",alias:"m"},watch:{description:"Whether watch mode is enabled or not",type:"boolean",alias:"w"}},async handler(e){const o=e.file?.toString()||"",n=await async function(e,o){if("cjs"===o||e.endsWith(".cts"))return"cjs";if("esm"===o||e.endsWith(".mts"))return"esm";let n=s.dirname(e);for(;;){const e=await k(n);if(e){if("module"===e.type)return"esm";break}const o=s.dirname(n);if(!o||o===n)break;n=o}return"cjs"}(o,e.module),t=[];e.watch&&t.push("--watch"),"cjs"===n?t.push("--require","build-ts/register"):t.push("--loader","build-ts/loader"),t.push(o);const[,...i]=e._,r=S.spawnSync("node",[...t,...i.map((e=>e.toString()))],{stdio:"inherit",env:{...process.env,NODE_NO_WARNINGS:"1",TS_NODE_TRANSPILE_ONLY:"1"}});process.exit(r.status??1)}};await e(o(process.argv)).scriptName("build-ts").command(D).command(O).command(A).command(B).demandCommand().strict().help().argv;
|
|
1
|
+
import e from"yargs";import{hideBin as o}from"yargs/helpers";import n from"node:fs";import s from"node:path";import t from"chalk";import i from"date-time";import r from"pretty-ms";import{watch as a,rollup as c}from"rollup";import p from"signal-exit";import l from"node:url";import{babel as d}from"@rollup/plugin-babel";import m from"@rollup/plugin-commonjs";import u from"@rollup/plugin-json";import f from"@rollup/plugin-node-resolve";import h from"@rollup/plugin-replace";import b from"@rollup/plugin-terser";import g from"rollup-plugin-analyzer";import{externals as y}from"rollup-plugin-node-externals";import{string as j}from"rollup-plugin-string";import v from"rollup-plugin-ts";import x from"dotenv";import w from"node:process";import*as S from"node:child_process";const $=["app","functions","lib"];async function k(e){try{const o=await n.promises.readFile(s.join(e,"package.json"),"utf8");return JSON.parse(o)}catch{}}const T={input:{description:'A file path of main source code. Default value is "src/index.{ts,tsx}" from package directory.',type:"string",alias:"i"},"core-js":{description:"Whether or not core-js is employed.",type:"boolean",default:!1},minify:{description:"Whether or not minification is enabled.",type:"boolean",default:!0},sourcemap:{description:"Whether or not sourcemap is enabled.",type:"boolean",default:!0},external:{description:"Additional external dependencies.",type:"array"},verbose:{description:"Whether or not verbose mode is enabled.",type:"boolean",alias:"v"},env:{description:"Environment variables to be inlined.",type:"array",alias:"e"},dotenv:{description:".env files to be inlined.",type:"array"},watch:{description:"Whether watch mode is enabled or not",type:"boolean",alias:"w"},silent:{description:"Whether watch mode is enabled or not",type:"boolean",alias:"s"}},E={...T,moduleType:{description:"esm, cjs, or either (default).",type:"string",alias:"m"}};function _(e,o){const n={};for(const o of(e.env??[]).map((e=>e.toString())))void 0!==process.env[o]&&(n[`process.env.${o}`]=JSON.stringify(process.env[o]));for(const t of(e.dotenv??[]).map((e=>e.toString()))){const e=x.config({path:s.join(o,t)}).parsed||{};for(const[o,s]of Object.entries(e))void 0!==s&&(n[`process.env.${o}`]=JSON.stringify(s))}return n}function N(e,o,n,t,i){const r=[...e.external??[]].map((e=>e.toString()));n?.dependencies?.["@prisma/client"]&&r.push("prisma-client");const a=[".cjs",".mjs",".js",".jsx",".json",".cts",".mts",".ts",".tsx"],c=s.join(l.fileURLToPath(s.dirname(s.dirname(import.meta.url))),"babel.config.mjs"),p=[h({delimiters:["",""],preventAssignment:!0,values:_(e,i)}),u(),y({deps:!0,devDeps:!1,peerDeps:!0,optDeps:!0,include:r,exclude:t&&new RegExp(`${t}\\/.+`)}),f({extensions:a}),m()];return"app-node"===o||"functions"===o?p.push(d({configFile:c,extensions:a,babelHelpers:"bundled",exclude:"node_modules/**"})):p.push(v({transpiler:"babel",babelConfig:c})),p.push(j({include:["**/*.csv","**/*.txt"]})),e.minify&&p.push(b()),p.push(g({summaryOnly:!0})),p}const D={command:"app [package]",describe:"Build an app",builder:E,handler:async e=>R(e,"app")},O={command:"functions [package]",describe:"Build a GCP/Firebase functions app",builder:{...E,onlyPackageJson:{description:"Whether to generate only package.json.",type:"boolean"}},async handler(e){if(!e.onlyPackageJson)return R(e,"functions");{const o=s.resolve(e.package?.toString()??"."),n=await k(o);n||(console.error("Failed to parse package.json."),process.exit(1)),await W(o,n)}}},A={command:"lib [package]",describe:"Build a Node.js / React library",builder:{...T,moduleType:{description:"esm, cjs, either, or both (default).",type:"string",alias:"m"},jsExtension:{description:"Whether to use .js in cjs and/or esm: either (default), both, or none.",type:"string",alias:"j"}},handler:async e=>R(e,"lib")};async function R(e,o){const l=!e.silent&&e.verbose,d=process.cwd(),m=s.resolve(e.package?.toString()??"."),u=await k(m);u||(console.error("Failed to parse package.json."),process.exit(1));const f=function(e,o,t){if(e.input)return s.join(o,e.input);let i=s.join(t,s.join("src","index.ts"));if(n.existsSync(i))return i;if(i=s.join(t,s.join("src","index.tsx")),n.existsSync(i))return i;console.error("Failed to detect input file."),process.exit(1)}(e,d,m),h=function(e,o){switch(e){case"app":return"app-node";case"functions":return"functions";case"lib":return o.endsWith(".tsx")?"lib-react":"lib";default:console.error("target option must be one of: "+$.join(", ")),process.exit(1)}}(o,f);l&&console.info("Target (Category):",`${h} (${o})`);const[b]=function(e){const o=e.name?.toString()||"",n=/@([^/]+)\/(.+)/.exec(o),[,s,t]=n||[];return[s,t]}(u),g="module"===u.type;let y;if(e["core-js"]&&(process.env.BUILD_TS_COREJS="1"),l&&(process.env.BUILD_TS_VERBOSE="1"),process.env.BUILD_TS_TARGET_CATEGORY=o,process.env.BUILD_TS_TARGET_DETAIL=h,"app-node"===h||"functions"===h){const o=e.moduleType||"either",n="esm"===o||"either"===o&&g;u.main=g===n?"index.js":n?"index.mjs":"index.cjs",y=[{file:s.join(m,"dist",u.main),format:n?"module":"commonjs",sourcemap:e.sourcemap}]}else{y=[];const o=e.moduleType||"both",n=e.jsExtension||"either";("cjs"===o||"both"===o||"either"===o&&!g)&&y.push({dir:s.join(m,"dist","cjs"),entryFileNames:"both"===n||"either"===n&&!g?"[name].js":"[name].cjs",format:"commonjs",preserveModules:!0,sourcemap:e.sourcemap}),("esm"===o||"both"===o||"either"===o&&g)&&y.push({dir:s.join(m,"dist","esm"),entryFileNames:"both"===n||"either"===n&&g?"[name].js":"[name].mjs",format:"module",preserveModules:!0,sourcemap:e.sourcemap})}l&&console.info("OutputOptions:",y),0===y.length&&(console.error("Failed to detect output files."),process.exit(1)),process.chdir(m),await n.promises.rm(s.join(m,"dist"),{recursive:!0,force:!0}),"functions"===h&&await W(m,u);const j={input:f,plugins:N(e,h,u,b,d),watch:e.watch?{clearScreen:!1}:void 0},v=e=>(Array.isArray(e)?e:[e]).map((e=>s.relative(m,e)));if(e.watch){const o=a({...j,output:y}),n=async e=>{process.removeListener("uncaughtException",n),process.stdin.removeListener("end",n),o&&await o.close(),e&&process.exit(e)};p(n),process.on("uncaughtException",n),process.stdin.isTTY||(process.stdin.on("end",n),process.stdin.resume()),o.on("event",(o=>{switch(o.code){case"ERROR":!function(e,o=!1){const n=e.name||e.cause?.name,s=n?`${n}: `:"",i=`${e.plugin?`(plugin ${e.plugin}) `:""}${s}${e.message}`,r=[t.bold(t.red(`[!] ${t.bold(i.toString())}`))];e.url&&r.push(t.cyan(e.url)),e.loc?r.push(`${e.loc.file||e.id} (${e.loc.line}:${e.loc.column})`):e.id&&r.push(e.id),e.frame&&r.push(t.dim(e.frame)),e.stack&&r.push(t.dim(e.stack?.replace(`${s}${e.message}\n`,""))),r.push("",""),console.error(r.join("\n")),o||w.exit(1)}(o.error,!0);break;case"BUNDLE_START":{if(e.silent)break;const n=o.input,s=[];"string"==typeof n?s.push(n):s.push(...Array.isArray(n)?n:Object.values(n)),console.info(t.cyan(`Bundles ${t.bold(v(s).join(", "))} → ${t.bold(v(o.output).join(", "))}\non ${m} ...`));break}case"BUNDLE_END":if(e.silent)break;console.info(t.green(`Created ${t.bold(v(o.output).join(", "))} in ${t.bold(r(o.duration))}`));break;case"END":if(e.silent)break;console.info(`\n[${i()}] waiting for changes...`)}"result"in o&&o.result&&o.result.close()}))}else{let o;e.silent||console.info(t.cyan(`Bundles ${t.bold(v(f).join(", "))} → ${t.bold(v(y.map((e=>e.file||e.dir||""))).join(", "))}\non ${m} ...`));let n=!1;try{const n=Date.now(),s=await c(j);o=s,await Promise.all(y.map((e=>s.write(e)))),e.silent||console.info(t.green(`Created ${v(y.map((e=>e.file||e.dir||""))).join(", ")} in ${t.bold(r(Date.now()-n))}`))}catch(e){n=!0,console.error("Failed to build due to:",e)}await(o?.close()),n&&process.exit(1)}}async function W(e,o){o.name+="-dist",delete o.scripts,delete o.devDependencies,await n.promises.mkdir(s.join(e,"dist"),{recursive:!0}),await n.promises.writeFile(s.join(e,"dist","package.json"),JSON.stringify(o))}const B={command:"run <file>",describe:"Run script",builder:{module:{description:"A module type: cjs or esm",type:"string",alias:"m"},watch:{description:"Whether watch mode is enabled or not",type:"boolean",alias:"w"}},async handler(e){const o=e.file?.toString()||"",n=await async function(e,o){if("cjs"===o||e.endsWith(".cts"))return"cjs";if("esm"===o||e.endsWith(".mts"))return"esm";let n=s.dirname(e);for(;;){const e=await k(n);if(e){if("module"===e.type)return"esm";break}const o=s.dirname(n);if(!o||o===n)break;n=o}return"cjs"}(o,e.module),t=[];e.watch&&t.push("--watch"),"cjs"===n?t.push("--require","build-ts/register"):t.push("--loader","build-ts/loader"),t.push(o);const[,...i]=e._,r=S.spawnSync("node",[...t,...i.map((e=>e.toString()))],{stdio:"inherit",env:{...process.env,NODE_NO_WARNINGS:"1",TS_NODE_TRANSPILE_ONLY:"1"}});process.exit(r.status??1)}};await e(o(process.argv)).scriptName("build-ts").command(D).command(O).command(A).command(B).demandCommand().strict().help().argv;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/utils.ts","../src/commands/build/builder.ts","../src/commands/build/env.ts","../src/commands/build/plugin.ts","../src/commands/build/build.ts","../src/commands/build/rollupLogger.ts","../src/commands/run.ts","../src/index.ts"],"sourcesContent":["import type { ArgumentsCamelCase, InferredOptionTypes, Options } from 'yargs';\n\nexport const allTargetCategories = ['app', 'functions', 'lib'] as const;\n\nexport type TargetCategory = (typeof allTargetCategories)[number];\n\nexport const allTargetDetails = ['app-node', 'functions', 'lib', 'lib-react'] as const;\n\nexport type TargetDetail = (typeof allTargetDetails)[number];\n\nexport type ArgumentsType<T extends { [key: string]: Options }> = ArgumentsCamelCase<InferredOptionTypes<T>>;\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport url from 'node:url';\n\nimport { PackageJson } from 'type-fest';\n\nexport async function readPackageJson(dirPath: string): Promise<PackageJson | undefined> {\n try {\n const packageJsonText = await fs.promises.readFile(path.join(dirPath, 'package.json'), 'utf8');\n return JSON.parse(packageJsonText) as PackageJson;\n } catch {\n // do nothing\n }\n}\n\nexport function getBuildTsRootPath(): string {\n return url.fileURLToPath(path.dirname(path.dirname(import.meta.url)));\n}\n\nexport function getNamespaceAndName(packageJson: PackageJson): [string | undefined, string | undefined] {\n const packageName = packageJson.name?.toString() || '';\n const match = /@([^/]+)\\/(.+)/.exec(packageName);\n const [, namespace, name] = match || [];\n return [namespace, name];\n}\n","export const builder = {\n input: {\n description: 'A file path of main source code. Default value is \"src/index.{ts,tsx}\" from package directory.',\n type: 'string',\n alias: 'i',\n },\n 'core-js': {\n description: 'Whether or not core-js is employed.',\n type: 'boolean',\n default: false,\n },\n minify: {\n description: 'Whether or not minification is enabled.',\n type: 'boolean',\n default: true,\n },\n sourcemap: {\n description: 'Whether or not sourcemap is enabled.',\n type: 'boolean',\n default: true,\n },\n external: {\n description: 'Additional external dependencies.',\n type: 'array',\n },\n verbose: {\n description: 'Whether or not verbose mode is enabled.',\n type: 'boolean',\n alias: 'v',\n },\n env: {\n description: 'Environment variables to be inlined.',\n type: 'array',\n alias: 'e',\n },\n dotenv: {\n description: '.env files to be inlined.',\n type: 'array',\n },\n watch: {\n description: 'Whether watch mode is enabled or not',\n type: 'boolean',\n alias: 'w',\n },\n silent: {\n description: 'Whether watch mode is enabled or not',\n type: 'boolean',\n alias: 's',\n },\n} as const;\n\nexport const appBuilder = {\n ...builder,\n moduleType: {\n description: 'esm, cjs, or either (default).',\n type: 'string',\n alias: 'm',\n },\n} as const;\n\nexport const functionsBuilder = {\n ...appBuilder,\n onlyPackageJson: {\n description: 'Whether to generate only package.json.',\n type: 'boolean',\n },\n} as const;\n\nexport const libBuilder = {\n ...builder,\n moduleType: {\n description: 'esm, cjs, either, or both (default).',\n type: 'string',\n alias: 'm',\n },\n // .js files in a package with `\"type\": \"module\"` are treated as esm.\n // However, we want to treat them as cjs in the case where a cjs project imports an esm package.\n // To deal with the case, we use .cjs and .mjs extensions instead of .js extension.\n jsExtension: {\n description: 'Whether to use .js in cjs and/or esm: either (default), both, or none.',\n type: 'string',\n alias: 'j',\n },\n} as const;\n\nexport type AnyBuilderType = typeof appBuilder | typeof functionsBuilder | typeof libBuilder;\n","import path from 'node:path';\n\nimport dotenv from 'dotenv';\n\nimport { ArgumentsType } from '../../types.js';\n\nimport type { builder } from './builder.js';\n\nexport function loadEnvironmentVariables(argv: ArgumentsType<typeof builder>, cwd: string): Record<string, string> {\n const envVars: Record<string, string> = {};\n for (const name of (argv.env ?? []).map((e) => e.toString())) {\n if (process.env[name] === undefined) continue;\n\n envVars[`process.env.${name}`] = JSON.stringify(process.env[name]);\n }\n for (const dotenvPath of (argv.dotenv ?? []).map((e) => e.toString())) {\n const parsed = dotenv.config({ path: path.join(cwd, dotenvPath) }).parsed || {};\n for (const [key, value] of Object.entries(parsed)) {\n if (value === undefined) continue;\n\n envVars[`process.env.${key}`] = JSON.stringify(value);\n }\n }\n return envVars;\n}\n","import path from 'node:path';\n\nimport { babel } from '@rollup/plugin-babel';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport resolve from '@rollup/plugin-node-resolve';\nimport replace from '@rollup/plugin-replace';\nimport terser from '@rollup/plugin-terser';\nimport { Plugin } from 'rollup';\nimport analyze from 'rollup-plugin-analyzer';\nimport { externals } from 'rollup-plugin-node-externals';\nimport { string } from 'rollup-plugin-string';\nimport ts from 'rollup-plugin-ts';\nimport type { PackageJson } from 'type-fest';\n\nimport { ArgumentsType, TargetDetail } from '../../types.js';\nimport { getBuildTsRootPath } from '../../utils.js';\n\nimport type { builder } from './builder.js';\nimport { loadEnvironmentVariables } from './env.js';\n\nexport function createPlugins(\n argv: ArgumentsType<typeof builder>,\n targetDetail: TargetDetail,\n packageJson: PackageJson,\n namespace: string | undefined,\n cwd: string\n): Plugin[] {\n const externalDeps = [...(argv.external ?? [])].map((item) => item.toString());\n if (packageJson?.dependencies?.['@prisma/client']) {\n externalDeps.push('prisma-client');\n }\n const extensions = ['.cjs', '.mjs', '.js', '.jsx', '.json', '.cts', '.mts', '.ts', '.tsx'];\n const babelConfigPath = path.join(getBuildTsRootPath(), 'babel.config.mjs');\n const plugins: Plugin[] = [\n replace({\n delimiters: ['', ''],\n preventAssignment: true,\n values: loadEnvironmentVariables(argv, cwd),\n }),\n json(),\n externals({\n deps: true,\n devDeps: false,\n peerDeps: true,\n optDeps: true,\n include: externalDeps,\n exclude: namespace && new RegExp(`${namespace}\\\\/.+`),\n }),\n resolve({ extensions }),\n commonjs(),\n ];\n if (targetDetail === 'app-node' || targetDetail === 'functions') {\n plugins.push(\n babel({\n configFile: babelConfigPath,\n extensions,\n babelHelpers: 'bundled',\n exclude: 'node_modules/**',\n })\n );\n } else {\n plugins.push(\n ts({\n transpiler: 'babel',\n babelConfig: babelConfigPath,\n })\n );\n }\n plugins.push(string({ include: ['**/*.csv', '**/*.txt'] }));\n if (argv.minify) {\n plugins.push(terser());\n }\n plugins.push(analyze({ summaryOnly: true }));\n return plugins;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport chalk from 'chalk';\nimport dateTime from 'date-time';\nimport ms from 'pretty-ms';\nimport { OutputOptions, rollup, RollupBuild, RollupOptions, watch } from 'rollup';\nimport onExit from 'signal-exit';\nimport { PackageJson } from 'type-fest';\nimport type { CommandModule } from 'yargs';\n\nimport { allTargetCategories, ArgumentsType, TargetCategory, TargetDetail } from '../../types.js';\nimport { getNamespaceAndName, readPackageJson } from '../../utils.js';\n\nimport { AnyBuilderType, appBuilder, builder, functionsBuilder, libBuilder } from './builder.js';\nimport { createPlugins } from './plugin.js';\nimport { handleError } from './rollupLogger.js';\n\nexport const app: CommandModule<unknown, ArgumentsType<typeof appBuilder>> = {\n command: 'app [package]',\n describe: 'Build an app',\n builder: appBuilder,\n async handler(argv) {\n return build(argv, 'app');\n },\n};\n\nexport const functions: CommandModule<unknown, ArgumentsType<typeof functionsBuilder>> = {\n command: 'functions [package]',\n describe: 'Build a GCP/Firebase functions app',\n builder: functionsBuilder,\n async handler(argv) {\n if (argv.onlyPackageJson) {\n const packageDirPath = path.resolve(argv.package?.toString() ?? '.');\n const packageJson = await readPackageJson(packageDirPath);\n if (!packageJson) {\n console.error('Failed to parse package.json.');\n process.exit(1);\n }\n await generatePackageJsonForFunctions(packageDirPath, packageJson);\n } else {\n return build(argv, 'functions');\n }\n },\n};\n\nexport const lib: CommandModule<unknown, ArgumentsType<typeof libBuilder>> = {\n command: 'lib [package]',\n describe: 'Build a Node.js / React library',\n builder: libBuilder,\n async handler(argv) {\n return build(argv, 'lib');\n },\n};\n\nexport async function build(argv: ArgumentsType<AnyBuilderType>, targetCategory: TargetCategory): Promise<void> {\n // `silent` is stronger than `verbose`.\n const verbose = !argv.silent && argv.verbose;\n const cwd = process.cwd();\n\n const packageDirPath = path.resolve(argv.package?.toString() ?? '.');\n const packageJson = await readPackageJson(packageDirPath);\n if (!packageJson) {\n console.error('Failed to parse package.json.');\n process.exit(1);\n }\n\n const input = verifyInput(argv, cwd, packageDirPath);\n const targetDetail = detectTargetDetail(targetCategory, input);\n\n if (verbose) {\n console.info('Target (Category):', `${targetDetail} (${targetCategory})`);\n }\n\n const [namespace] = getNamespaceAndName(packageJson);\n const isEsmPackage = packageJson.type === 'module';\n\n if (argv['core-js']) {\n process.env.BUILD_TS_COREJS = '1';\n }\n if (verbose) {\n process.env.BUILD_TS_VERBOSE = '1';\n }\n process.env.BUILD_TS_TARGET_CATEGORY = targetCategory;\n process.env.BUILD_TS_TARGET_DETAIL = targetDetail;\n\n let outputOptionsList: OutputOptions[];\n if (targetDetail === 'app-node' || targetDetail === 'functions') {\n const moduleType = argv.moduleType || 'either';\n const isEsmOutput = moduleType === 'esm' || (moduleType === 'either' && isEsmPackage);\n packageJson.main = isEsmPackage === isEsmOutput ? 'index.js' : isEsmOutput ? 'index.mjs' : 'index.cjs';\n outputOptionsList = [\n {\n file: path.join(packageDirPath, 'dist', packageJson.main),\n format: isEsmOutput ? 'module' : 'commonjs',\n sourcemap: argv.sourcemap,\n },\n ];\n } else {\n // The following import statement in an esm module causes the following error:\n // Statement:\n // import { usePrevious } from 'react-use';\n // Error:\n // Named export 'usePrevious' not found. The requested module 'react-use' is a CommonJS module,\n // which may not support all module.exports as named exports.\n // We need cjs modules for web apps to avoid the error.\n // Also, splitting a library is useful in both modules, so preserveModules should be true.\n outputOptionsList = [];\n const moduleType = argv.moduleType || 'both';\n const jsExt = argv.jsExtension || 'either';\n if (moduleType === 'cjs' || moduleType === 'both' || (moduleType === 'either' && !isEsmPackage)) {\n outputOptionsList.push({\n dir: path.join(packageDirPath, 'dist', 'cjs'),\n entryFileNames: jsExt === 'both' || (jsExt === 'either' && !isEsmPackage) ? '[name].js' : '[name].cjs',\n format: 'commonjs',\n preserveModules: true,\n sourcemap: argv.sourcemap,\n });\n }\n if (moduleType === 'esm' || moduleType === 'both' || (moduleType === 'either' && isEsmPackage)) {\n outputOptionsList.push({\n dir: path.join(packageDirPath, 'dist', 'esm'),\n entryFileNames: jsExt === 'both' || (jsExt === 'either' && isEsmPackage) ? '[name].js' : '[name].mjs',\n format: 'module',\n preserveModules: true,\n sourcemap: argv.sourcemap,\n });\n }\n }\n if (verbose) {\n console.info('OutputOptions:', outputOptionsList);\n }\n if (outputOptionsList.length === 0) {\n console.error('Failed to detect output files.');\n process.exit(1);\n }\n\n process.chdir(packageDirPath);\n await fs.promises.rm(path.join(packageDirPath, 'dist'), { recursive: true, force: true });\n if (targetDetail === 'functions') {\n await generatePackageJsonForFunctions(packageDirPath, packageJson);\n }\n\n const options: RollupOptions = {\n input,\n plugins: createPlugins(argv, targetDetail, packageJson, namespace, cwd),\n watch: argv.watch ? { clearScreen: false } : undefined,\n };\n\n const mapToRelatives = (paths: string | Readonly<string[]>): string[] =>\n (Array.isArray(paths) ? paths : [paths]).map((p) => path.relative(packageDirPath, p));\n if (argv.watch) {\n const watcher = watch({ ...options, output: outputOptionsList });\n\n const close = async (code: number | null): Promise<void> => {\n process.removeListener('uncaughtException', close);\n process.stdin.removeListener('end', close);\n if (watcher) await watcher.close();\n if (code) process.exit(code);\n };\n onExit(close);\n process.on('uncaughtException', close);\n if (!process.stdin.isTTY) {\n process.stdin.on('end', close);\n process.stdin.resume();\n }\n\n watcher.on('event', (event) => {\n switch (event.code) {\n case 'ERROR': {\n handleError(event.error, true);\n break;\n }\n case 'BUNDLE_START': {\n if (argv.silent) break;\n\n const eventInput = event.input;\n const inputFiles: string[] = [];\n if (typeof eventInput === 'string') {\n inputFiles.push(eventInput);\n } else {\n inputFiles.push(\n ...(Array.isArray(eventInput) ? eventInput : Object.values(eventInput as Record<string, string>))\n );\n }\n console.info(\n chalk.cyan(\n `Bundles ${chalk.bold(mapToRelatives(inputFiles).join(', '))} → ${chalk.bold(\n mapToRelatives(event.output).join(', ')\n )}\\non ${packageDirPath} ...`\n )\n );\n break;\n }\n case 'BUNDLE_END': {\n if (argv.silent) break;\n\n console.info(\n chalk.green(\n `Created ${chalk.bold(mapToRelatives(event.output).join(', '))} in ${chalk.bold(ms(event.duration))}`\n )\n );\n break;\n }\n case 'END': {\n if (argv.silent) break;\n\n console.info(`\\n[${dateTime()}] waiting for changes...`);\n break;\n }\n }\n\n if ('result' in event && event.result) {\n event.result.close();\n }\n });\n } else {\n if (!argv.silent) {\n console.info(\n chalk.cyan(\n `Bundles ${chalk.bold(mapToRelatives(input).join(', '))} → ${chalk.bold(\n mapToRelatives(outputOptionsList.map((opts) => opts.file || opts.dir || '')).join(', ')\n )}\\non ${packageDirPath} ...`\n )\n );\n }\n\n let bundle: RollupBuild | undefined;\n let buildFailed = false;\n try {\n const startTime = Date.now();\n const _bundle = await rollup(options);\n bundle = _bundle;\n await Promise.all(outputOptionsList.map((opts) => _bundle.write(opts)));\n\n if (!argv.silent) {\n console.info(\n chalk.green(\n `Created ${mapToRelatives(outputOptionsList.map((opts) => opts.file || opts.dir || '')).join(\n ', '\n )} in ${chalk.bold(ms(Date.now() - startTime))}`\n )\n );\n }\n } catch (error) {\n buildFailed = true;\n console.error('Failed to build due to:', error);\n }\n await bundle?.close();\n if (buildFailed) process.exit(1);\n }\n}\n\nfunction verifyInput(argv: ArgumentsType<typeof builder>, cwd: string, packageDirPath: string): string {\n if (argv.input) return path.join(cwd, argv.input);\n\n let input = path.join(packageDirPath, path.join('src', 'index.ts'));\n if (fs.existsSync(input)) return input;\n\n input = path.join(packageDirPath, path.join('src', 'index.tsx'));\n if (fs.existsSync(input)) return input;\n\n console.error('Failed to detect input file.');\n process.exit(1);\n}\n\nfunction detectTargetDetail(targetCategory: string, input: string): TargetDetail {\n switch (targetCategory) {\n case 'app': {\n return 'app-node';\n }\n case 'functions': {\n return 'functions';\n }\n case 'lib': {\n if (input.endsWith('.tsx')) {\n return 'lib-react';\n }\n return 'lib';\n }\n default: {\n console.error('target option must be one of: ' + allTargetCategories.join(', '));\n process.exit(1);\n }\n }\n}\n\nasync function generatePackageJsonForFunctions(packageDirPath: string, packageJson: PackageJson): Promise<void> {\n packageJson.name += '-dist';\n delete packageJson.devDependencies;\n await fs.promises.mkdir(path.join(packageDirPath, 'dist'), { recursive: true });\n await fs.promises.writeFile(path.join(packageDirPath, 'dist', 'package.json'), JSON.stringify(packageJson));\n}\n","import process from 'node:process';\n\nimport chalk from 'chalk';\nimport { RollupError } from 'rollup';\n\nexport function handleError(error: RollupError, recover = false): void {\n const name = error.name || (error.cause as Error)?.name;\n const nameSection = name ? `${name}: ` : '';\n const pluginSection = error.plugin ? `(plugin ${error.plugin}) ` : '';\n const message = `${pluginSection}${nameSection}${error.message}`;\n\n const outputLines = [chalk.bold(chalk.red(`[!] ${chalk.bold(message.toString())}`))];\n\n if (error.url) {\n outputLines.push(chalk.cyan(error.url));\n }\n\n if (error.loc) {\n outputLines.push(`${error.loc.file || error.id} (${error.loc.line}:${error.loc.column})`);\n } else if (error.id) {\n outputLines.push(error.id);\n }\n\n if (error.frame) {\n outputLines.push(chalk.dim(error.frame));\n }\n\n if (error.stack) {\n outputLines.push(chalk.dim(error.stack?.replace(`${nameSection}${error.message}\\n`, '')));\n }\n\n outputLines.push('', '');\n console.error(outputLines.join('\\n'));\n\n if (!recover) process.exit(1);\n}\n","import * as child_process from 'node:child_process';\nimport path from 'node:path';\n\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { readPackageJson } from '../utils.js';\n\nconst builder = {\n module: {\n description: 'A module type: cjs or esm',\n type: 'string',\n alias: 'm',\n },\n watch: {\n description: 'Whether watch mode is enabled or not',\n type: 'boolean',\n alias: 'w',\n },\n} as const;\n\nexport const run: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'run <file>',\n describe: 'Run script',\n builder,\n async handler(argv) {\n const file = argv.file?.toString() || '';\n const module = await detectModuleType(file, argv.module);\n\n const args: string[] = [];\n if (argv.watch) {\n args.push('--watch');\n }\n if (module === 'cjs') {\n args.push('--require', 'build-ts/register');\n } else {\n args.push('--loader', 'build-ts/loader');\n }\n args.push(file);\n const [, ...additionalArguments] = argv._;\n const ret = child_process.spawnSync('node', [...args, ...additionalArguments.map((arg) => arg.toString())], {\n stdio: 'inherit',\n env: { ...process.env, NODE_NO_WARNINGS: '1', TS_NODE_TRANSPILE_ONLY: '1' },\n });\n process.exit(ret.status ?? 1);\n },\n};\n\nasync function detectModuleType(file: string, module?: string): Promise<'cjs' | 'esm'> {\n if (module === 'cjs' || file.endsWith('.cts')) {\n return 'cjs';\n }\n if (module === 'esm' || file.endsWith('.mts')) {\n return 'esm';\n }\n\n let dirPath = path.dirname(file);\n for (;;) {\n const packageJson = await readPackageJson(dirPath);\n if (packageJson) {\n if (packageJson.type === 'module') {\n return 'esm';\n }\n break;\n }\n\n const nextDirPath = path.dirname(dirPath);\n if (!nextDirPath || nextDirPath === dirPath) {\n break;\n }\n dirPath = nextDirPath;\n }\n return 'cjs';\n}\n","import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport { app, functions, lib } from './commands/build/build.js';\nimport { run } from './commands/run.js';\n\nawait yargs(hideBin(process.argv))\n .scriptName('build-ts')\n .command(app)\n .command(functions)\n .command(lib)\n .command(run)\n .demandCommand()\n .strict()\n .help().argv;\n"],"names":["allTargetCategories","async","readPackageJson","dirPath","packageJsonText","fs","promises","readFile","path","join","JSON","parse","builder","input","description","type","alias","default","minify","sourcemap","external","verbose","env","dotenv","watch","silent","appBuilder","moduleType","loadEnvironmentVariables","argv","cwd","envVars","name","map","e","toString","undefined","process","stringify","dotenvPath","parsed","config","key","value","Object","entries","createPlugins","targetDetail","packageJson","namespace","externalDeps","item","dependencies","push","extensions","babelConfigPath","url","fileURLToPath","dirname","plugins","replace","delimiters","preventAssignment","values","json","externals","deps","devDeps","peerDeps","optDeps","include","exclude","RegExp","resolve","commonjs","babel","configFile","babelHelpers","ts","transpiler","babelConfig","string","terser","analyze","summaryOnly","app","command","describe","handler","build","functions","onlyPackageJson","packageDirPath","package","console","error","exit","generatePackageJsonForFunctions","lib","jsExtension","targetCategory","existsSync","verifyInput","endsWith","detectTargetDetail","info","packageName","match","exec","getNamespaceAndName","isEsmPackage","outputOptionsList","BUILD_TS_COREJS","BUILD_TS_VERBOSE","BUILD_TS_TARGET_CATEGORY","BUILD_TS_TARGET_DETAIL","isEsmOutput","main","file","format","jsExt","dir","entryFileNames","preserveModules","length","chdir","rm","recursive","force","options","clearScreen","mapToRelatives","paths","Array","isArray","p","relative","watcher","output","close","removeListener","stdin","code","onExit","on","isTTY","resume","event","recover","cause","nameSection","message","plugin","outputLines","chalk","bold","red","cyan","loc","id","line","column","frame","dim","stack","handleError","eventInput","inputFiles","green","ms","duration","dateTime","result","bundle","opts","buildFailed","startTime","Date","now","_bundle","rollup","Promise","all","write","devDependencies","mkdir","writeFile","run","module","nextDirPath","detectModuleType","args","additionalArguments","_","ret","child_process","spawnSync","arg","stdio","NODE_NO_WARNINGS","TS_NODE_TRANSPILE_ONLY","status","yargs","hideBin","scriptName","demandCommand","strict","help"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/utils.ts","../src/commands/build/builder.ts","../src/commands/build/env.ts","../src/commands/build/plugin.ts","../src/commands/build/build.ts","../src/commands/build/rollupLogger.ts","../src/commands/run.ts","../src/index.ts"],"sourcesContent":["import type { ArgumentsCamelCase, InferredOptionTypes, Options } from 'yargs';\n\nexport const allTargetCategories = ['app', 'functions', 'lib'] as const;\n\nexport type TargetCategory = (typeof allTargetCategories)[number];\n\nexport const allTargetDetails = ['app-node', 'functions', 'lib', 'lib-react'] as const;\n\nexport type TargetDetail = (typeof allTargetDetails)[number];\n\nexport type ArgumentsType<T extends { [key: string]: Options }> = ArgumentsCamelCase<InferredOptionTypes<T>>;\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport url from 'node:url';\n\nimport { PackageJson } from 'type-fest';\n\nexport async function readPackageJson(dirPath: string): Promise<PackageJson | undefined> {\n try {\n const packageJsonText = await fs.promises.readFile(path.join(dirPath, 'package.json'), 'utf8');\n return JSON.parse(packageJsonText) as PackageJson;\n } catch {\n // do nothing\n }\n}\n\nexport function getBuildTsRootPath(): string {\n return url.fileURLToPath(path.dirname(path.dirname(import.meta.url)));\n}\n\nexport function getNamespaceAndName(packageJson: PackageJson): [string | undefined, string | undefined] {\n const packageName = packageJson.name?.toString() || '';\n const match = /@([^/]+)\\/(.+)/.exec(packageName);\n const [, namespace, name] = match || [];\n return [namespace, name];\n}\n","export const builder = {\n input: {\n description: 'A file path of main source code. Default value is \"src/index.{ts,tsx}\" from package directory.',\n type: 'string',\n alias: 'i',\n },\n 'core-js': {\n description: 'Whether or not core-js is employed.',\n type: 'boolean',\n default: false,\n },\n minify: {\n description: 'Whether or not minification is enabled.',\n type: 'boolean',\n default: true,\n },\n sourcemap: {\n description: 'Whether or not sourcemap is enabled.',\n type: 'boolean',\n default: true,\n },\n external: {\n description: 'Additional external dependencies.',\n type: 'array',\n },\n verbose: {\n description: 'Whether or not verbose mode is enabled.',\n type: 'boolean',\n alias: 'v',\n },\n env: {\n description: 'Environment variables to be inlined.',\n type: 'array',\n alias: 'e',\n },\n dotenv: {\n description: '.env files to be inlined.',\n type: 'array',\n },\n watch: {\n description: 'Whether watch mode is enabled or not',\n type: 'boolean',\n alias: 'w',\n },\n silent: {\n description: 'Whether watch mode is enabled or not',\n type: 'boolean',\n alias: 's',\n },\n} as const;\n\nexport const appBuilder = {\n ...builder,\n moduleType: {\n description: 'esm, cjs, or either (default).',\n type: 'string',\n alias: 'm',\n },\n} as const;\n\nexport const functionsBuilder = {\n ...appBuilder,\n onlyPackageJson: {\n description: 'Whether to generate only package.json.',\n type: 'boolean',\n },\n} as const;\n\nexport const libBuilder = {\n ...builder,\n moduleType: {\n description: 'esm, cjs, either, or both (default).',\n type: 'string',\n alias: 'm',\n },\n // .js files in a package with `\"type\": \"module\"` are treated as esm.\n // However, we want to treat them as cjs in the case where a cjs project imports an esm package.\n // To deal with the case, we use .cjs and .mjs extensions instead of .js extension.\n jsExtension: {\n description: 'Whether to use .js in cjs and/or esm: either (default), both, or none.',\n type: 'string',\n alias: 'j',\n },\n} as const;\n\nexport type AnyBuilderType = typeof appBuilder | typeof functionsBuilder | typeof libBuilder;\n","import path from 'node:path';\n\nimport dotenv from 'dotenv';\n\nimport { ArgumentsType } from '../../types.js';\n\nimport type { builder } from './builder.js';\n\nexport function loadEnvironmentVariables(argv: ArgumentsType<typeof builder>, cwd: string): Record<string, string> {\n const envVars: Record<string, string> = {};\n for (const name of (argv.env ?? []).map((e) => e.toString())) {\n if (process.env[name] === undefined) continue;\n\n envVars[`process.env.${name}`] = JSON.stringify(process.env[name]);\n }\n for (const dotenvPath of (argv.dotenv ?? []).map((e) => e.toString())) {\n const parsed = dotenv.config({ path: path.join(cwd, dotenvPath) }).parsed || {};\n for (const [key, value] of Object.entries(parsed)) {\n if (value === undefined) continue;\n\n envVars[`process.env.${key}`] = JSON.stringify(value);\n }\n }\n return envVars;\n}\n","import path from 'node:path';\n\nimport { babel } from '@rollup/plugin-babel';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport resolve from '@rollup/plugin-node-resolve';\nimport replace from '@rollup/plugin-replace';\nimport terser from '@rollup/plugin-terser';\nimport { Plugin } from 'rollup';\nimport analyze from 'rollup-plugin-analyzer';\nimport { externals } from 'rollup-plugin-node-externals';\nimport { string } from 'rollup-plugin-string';\nimport ts from 'rollup-plugin-ts';\nimport type { PackageJson } from 'type-fest';\n\nimport { ArgumentsType, TargetDetail } from '../../types.js';\nimport { getBuildTsRootPath } from '../../utils.js';\n\nimport type { builder } from './builder.js';\nimport { loadEnvironmentVariables } from './env.js';\n\nexport function createPlugins(\n argv: ArgumentsType<typeof builder>,\n targetDetail: TargetDetail,\n packageJson: PackageJson,\n namespace: string | undefined,\n cwd: string\n): Plugin[] {\n const externalDeps = [...(argv.external ?? [])].map((item) => item.toString());\n if (packageJson?.dependencies?.['@prisma/client']) {\n externalDeps.push('prisma-client');\n }\n const extensions = ['.cjs', '.mjs', '.js', '.jsx', '.json', '.cts', '.mts', '.ts', '.tsx'];\n const babelConfigPath = path.join(getBuildTsRootPath(), 'babel.config.mjs');\n const plugins: Plugin[] = [\n replace({\n delimiters: ['', ''],\n preventAssignment: true,\n values: loadEnvironmentVariables(argv, cwd),\n }),\n json(),\n externals({\n deps: true,\n devDeps: false,\n peerDeps: true,\n optDeps: true,\n include: externalDeps,\n exclude: namespace && new RegExp(`${namespace}\\\\/.+`),\n }),\n resolve({ extensions }),\n commonjs(),\n ];\n if (targetDetail === 'app-node' || targetDetail === 'functions') {\n plugins.push(\n babel({\n configFile: babelConfigPath,\n extensions,\n babelHelpers: 'bundled',\n exclude: 'node_modules/**',\n })\n );\n } else {\n plugins.push(\n ts({\n transpiler: 'babel',\n babelConfig: babelConfigPath,\n })\n );\n }\n plugins.push(string({ include: ['**/*.csv', '**/*.txt'] }));\n if (argv.minify) {\n plugins.push(terser());\n }\n plugins.push(analyze({ summaryOnly: true }));\n return plugins;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport chalk from 'chalk';\nimport dateTime from 'date-time';\nimport ms from 'pretty-ms';\nimport { OutputOptions, rollup, RollupBuild, RollupOptions, watch } from 'rollup';\nimport onExit from 'signal-exit';\nimport { PackageJson } from 'type-fest';\nimport type { CommandModule } from 'yargs';\n\nimport { allTargetCategories, ArgumentsType, TargetCategory, TargetDetail } from '../../types.js';\nimport { getNamespaceAndName, readPackageJson } from '../../utils.js';\n\nimport { AnyBuilderType, appBuilder, builder, functionsBuilder, libBuilder } from './builder.js';\nimport { createPlugins } from './plugin.js';\nimport { handleError } from './rollupLogger.js';\n\nexport const app: CommandModule<unknown, ArgumentsType<typeof appBuilder>> = {\n command: 'app [package]',\n describe: 'Build an app',\n builder: appBuilder,\n async handler(argv) {\n return build(argv, 'app');\n },\n};\n\nexport const functions: CommandModule<unknown, ArgumentsType<typeof functionsBuilder>> = {\n command: 'functions [package]',\n describe: 'Build a GCP/Firebase functions app',\n builder: functionsBuilder,\n async handler(argv) {\n if (argv.onlyPackageJson) {\n const packageDirPath = path.resolve(argv.package?.toString() ?? '.');\n const packageJson = await readPackageJson(packageDirPath);\n if (!packageJson) {\n console.error('Failed to parse package.json.');\n process.exit(1);\n }\n await generatePackageJsonForFunctions(packageDirPath, packageJson);\n } else {\n return build(argv, 'functions');\n }\n },\n};\n\nexport const lib: CommandModule<unknown, ArgumentsType<typeof libBuilder>> = {\n command: 'lib [package]',\n describe: 'Build a Node.js / React library',\n builder: libBuilder,\n async handler(argv) {\n return build(argv, 'lib');\n },\n};\n\nexport async function build(argv: ArgumentsType<AnyBuilderType>, targetCategory: TargetCategory): Promise<void> {\n // `silent` is stronger than `verbose`.\n const verbose = !argv.silent && argv.verbose;\n const cwd = process.cwd();\n\n const packageDirPath = path.resolve(argv.package?.toString() ?? '.');\n const packageJson = await readPackageJson(packageDirPath);\n if (!packageJson) {\n console.error('Failed to parse package.json.');\n process.exit(1);\n }\n\n const input = verifyInput(argv, cwd, packageDirPath);\n const targetDetail = detectTargetDetail(targetCategory, input);\n\n if (verbose) {\n console.info('Target (Category):', `${targetDetail} (${targetCategory})`);\n }\n\n const [namespace] = getNamespaceAndName(packageJson);\n const isEsmPackage = packageJson.type === 'module';\n\n if (argv['core-js']) {\n process.env.BUILD_TS_COREJS = '1';\n }\n if (verbose) {\n process.env.BUILD_TS_VERBOSE = '1';\n }\n process.env.BUILD_TS_TARGET_CATEGORY = targetCategory;\n process.env.BUILD_TS_TARGET_DETAIL = targetDetail;\n\n let outputOptionsList: OutputOptions[];\n if (targetDetail === 'app-node' || targetDetail === 'functions') {\n const moduleType = argv.moduleType || 'either';\n const isEsmOutput = moduleType === 'esm' || (moduleType === 'either' && isEsmPackage);\n packageJson.main = isEsmPackage === isEsmOutput ? 'index.js' : isEsmOutput ? 'index.mjs' : 'index.cjs';\n outputOptionsList = [\n {\n file: path.join(packageDirPath, 'dist', packageJson.main),\n format: isEsmOutput ? 'module' : 'commonjs',\n sourcemap: argv.sourcemap,\n },\n ];\n } else {\n // The following import statement in an esm module causes the following error:\n // Statement:\n // import { usePrevious } from 'react-use';\n // Error:\n // Named export 'usePrevious' not found. The requested module 'react-use' is a CommonJS module,\n // which may not support all module.exports as named exports.\n // We need cjs modules for web apps to avoid the error.\n // Also, splitting a library is useful in both modules, so preserveModules should be true.\n outputOptionsList = [];\n const moduleType = argv.moduleType || 'both';\n const jsExt = argv.jsExtension || 'either';\n if (moduleType === 'cjs' || moduleType === 'both' || (moduleType === 'either' && !isEsmPackage)) {\n outputOptionsList.push({\n dir: path.join(packageDirPath, 'dist', 'cjs'),\n entryFileNames: jsExt === 'both' || (jsExt === 'either' && !isEsmPackage) ? '[name].js' : '[name].cjs',\n format: 'commonjs',\n preserveModules: true,\n sourcemap: argv.sourcemap,\n });\n }\n if (moduleType === 'esm' || moduleType === 'both' || (moduleType === 'either' && isEsmPackage)) {\n outputOptionsList.push({\n dir: path.join(packageDirPath, 'dist', 'esm'),\n entryFileNames: jsExt === 'both' || (jsExt === 'either' && isEsmPackage) ? '[name].js' : '[name].mjs',\n format: 'module',\n preserveModules: true,\n sourcemap: argv.sourcemap,\n });\n }\n }\n if (verbose) {\n console.info('OutputOptions:', outputOptionsList);\n }\n if (outputOptionsList.length === 0) {\n console.error('Failed to detect output files.');\n process.exit(1);\n }\n\n process.chdir(packageDirPath);\n await fs.promises.rm(path.join(packageDirPath, 'dist'), { recursive: true, force: true });\n if (targetDetail === 'functions') {\n await generatePackageJsonForFunctions(packageDirPath, packageJson);\n }\n\n const options: RollupOptions = {\n input,\n plugins: createPlugins(argv, targetDetail, packageJson, namespace, cwd),\n watch: argv.watch ? { clearScreen: false } : undefined,\n };\n\n const mapToRelatives = (paths: string | Readonly<string[]>): string[] =>\n (Array.isArray(paths) ? paths : [paths]).map((p) => path.relative(packageDirPath, p));\n if (argv.watch) {\n const watcher = watch({ ...options, output: outputOptionsList });\n\n const close = async (code: number | null): Promise<void> => {\n process.removeListener('uncaughtException', close);\n process.stdin.removeListener('end', close);\n if (watcher) await watcher.close();\n if (code) process.exit(code);\n };\n onExit(close);\n process.on('uncaughtException', close);\n if (!process.stdin.isTTY) {\n process.stdin.on('end', close);\n process.stdin.resume();\n }\n\n watcher.on('event', (event) => {\n switch (event.code) {\n case 'ERROR': {\n handleError(event.error, true);\n break;\n }\n case 'BUNDLE_START': {\n if (argv.silent) break;\n\n const eventInput = event.input;\n const inputFiles: string[] = [];\n if (typeof eventInput === 'string') {\n inputFiles.push(eventInput);\n } else {\n inputFiles.push(\n ...(Array.isArray(eventInput) ? eventInput : Object.values(eventInput as Record<string, string>))\n );\n }\n console.info(\n chalk.cyan(\n `Bundles ${chalk.bold(mapToRelatives(inputFiles).join(', '))} → ${chalk.bold(\n mapToRelatives(event.output).join(', ')\n )}\\non ${packageDirPath} ...`\n )\n );\n break;\n }\n case 'BUNDLE_END': {\n if (argv.silent) break;\n\n console.info(\n chalk.green(\n `Created ${chalk.bold(mapToRelatives(event.output).join(', '))} in ${chalk.bold(ms(event.duration))}`\n )\n );\n break;\n }\n case 'END': {\n if (argv.silent) break;\n\n console.info(`\\n[${dateTime()}] waiting for changes...`);\n break;\n }\n }\n\n if ('result' in event && event.result) {\n event.result.close();\n }\n });\n } else {\n if (!argv.silent) {\n console.info(\n chalk.cyan(\n `Bundles ${chalk.bold(mapToRelatives(input).join(', '))} → ${chalk.bold(\n mapToRelatives(outputOptionsList.map((opts) => opts.file || opts.dir || '')).join(', ')\n )}\\non ${packageDirPath} ...`\n )\n );\n }\n\n let bundle: RollupBuild | undefined;\n let buildFailed = false;\n try {\n const startTime = Date.now();\n const _bundle = await rollup(options);\n bundle = _bundle;\n await Promise.all(outputOptionsList.map((opts) => _bundle.write(opts)));\n\n if (!argv.silent) {\n console.info(\n chalk.green(\n `Created ${mapToRelatives(outputOptionsList.map((opts) => opts.file || opts.dir || '')).join(\n ', '\n )} in ${chalk.bold(ms(Date.now() - startTime))}`\n )\n );\n }\n } catch (error) {\n buildFailed = true;\n console.error('Failed to build due to:', error);\n }\n await bundle?.close();\n if (buildFailed) process.exit(1);\n }\n}\n\nfunction verifyInput(argv: ArgumentsType<typeof builder>, cwd: string, packageDirPath: string): string {\n if (argv.input) return path.join(cwd, argv.input);\n\n let input = path.join(packageDirPath, path.join('src', 'index.ts'));\n if (fs.existsSync(input)) return input;\n\n input = path.join(packageDirPath, path.join('src', 'index.tsx'));\n if (fs.existsSync(input)) return input;\n\n console.error('Failed to detect input file.');\n process.exit(1);\n}\n\nfunction detectTargetDetail(targetCategory: string, input: string): TargetDetail {\n switch (targetCategory) {\n case 'app': {\n return 'app-node';\n }\n case 'functions': {\n return 'functions';\n }\n case 'lib': {\n if (input.endsWith('.tsx')) {\n return 'lib-react';\n }\n return 'lib';\n }\n default: {\n console.error('target option must be one of: ' + allTargetCategories.join(', '));\n process.exit(1);\n }\n }\n}\n\nasync function generatePackageJsonForFunctions(packageDirPath: string, packageJson: PackageJson): Promise<void> {\n packageJson.name += '-dist';\n // Prevent Firebase Functions from running `build` script since we are building code before deploying.\n delete packageJson.scripts;\n // devDependencies are not required since we are building code before deploying.\n delete packageJson.devDependencies;\n await fs.promises.mkdir(path.join(packageDirPath, 'dist'), { recursive: true });\n await fs.promises.writeFile(path.join(packageDirPath, 'dist', 'package.json'), JSON.stringify(packageJson));\n}\n","import process from 'node:process';\n\nimport chalk from 'chalk';\nimport { RollupError } from 'rollup';\n\nexport function handleError(error: RollupError, recover = false): void {\n const name = error.name || (error.cause as Error)?.name;\n const nameSection = name ? `${name}: ` : '';\n const pluginSection = error.plugin ? `(plugin ${error.plugin}) ` : '';\n const message = `${pluginSection}${nameSection}${error.message}`;\n\n const outputLines = [chalk.bold(chalk.red(`[!] ${chalk.bold(message.toString())}`))];\n\n if (error.url) {\n outputLines.push(chalk.cyan(error.url));\n }\n\n if (error.loc) {\n outputLines.push(`${error.loc.file || error.id} (${error.loc.line}:${error.loc.column})`);\n } else if (error.id) {\n outputLines.push(error.id);\n }\n\n if (error.frame) {\n outputLines.push(chalk.dim(error.frame));\n }\n\n if (error.stack) {\n outputLines.push(chalk.dim(error.stack?.replace(`${nameSection}${error.message}\\n`, '')));\n }\n\n outputLines.push('', '');\n console.error(outputLines.join('\\n'));\n\n if (!recover) process.exit(1);\n}\n","import * as child_process from 'node:child_process';\nimport path from 'node:path';\n\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { readPackageJson } from '../utils.js';\n\nconst builder = {\n module: {\n description: 'A module type: cjs or esm',\n type: 'string',\n alias: 'm',\n },\n watch: {\n description: 'Whether watch mode is enabled or not',\n type: 'boolean',\n alias: 'w',\n },\n} as const;\n\nexport const run: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'run <file>',\n describe: 'Run script',\n builder,\n async handler(argv) {\n const file = argv.file?.toString() || '';\n const module = await detectModuleType(file, argv.module);\n\n const args: string[] = [];\n if (argv.watch) {\n args.push('--watch');\n }\n if (module === 'cjs') {\n args.push('--require', 'build-ts/register');\n } else {\n args.push('--loader', 'build-ts/loader');\n }\n args.push(file);\n const [, ...additionalArguments] = argv._;\n const ret = child_process.spawnSync('node', [...args, ...additionalArguments.map((arg) => arg.toString())], {\n stdio: 'inherit',\n env: { ...process.env, NODE_NO_WARNINGS: '1', TS_NODE_TRANSPILE_ONLY: '1' },\n });\n process.exit(ret.status ?? 1);\n },\n};\n\nasync function detectModuleType(file: string, module?: string): Promise<'cjs' | 'esm'> {\n if (module === 'cjs' || file.endsWith('.cts')) {\n return 'cjs';\n }\n if (module === 'esm' || file.endsWith('.mts')) {\n return 'esm';\n }\n\n let dirPath = path.dirname(file);\n for (;;) {\n const packageJson = await readPackageJson(dirPath);\n if (packageJson) {\n if (packageJson.type === 'module') {\n return 'esm';\n }\n break;\n }\n\n const nextDirPath = path.dirname(dirPath);\n if (!nextDirPath || nextDirPath === dirPath) {\n break;\n }\n dirPath = nextDirPath;\n }\n return 'cjs';\n}\n","import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport { app, functions, lib } from './commands/build/build.js';\nimport { run } from './commands/run.js';\n\nawait yargs(hideBin(process.argv))\n .scriptName('build-ts')\n .command(app)\n .command(functions)\n .command(lib)\n .command(run)\n .demandCommand()\n .strict()\n .help().argv;\n"],"names":["allTargetCategories","async","readPackageJson","dirPath","packageJsonText","fs","promises","readFile","path","join","JSON","parse","builder","input","description","type","alias","default","minify","sourcemap","external","verbose","env","dotenv","watch","silent","appBuilder","moduleType","loadEnvironmentVariables","argv","cwd","envVars","name","map","e","toString","undefined","process","stringify","dotenvPath","parsed","config","key","value","Object","entries","createPlugins","targetDetail","packageJson","namespace","externalDeps","item","dependencies","push","extensions","babelConfigPath","url","fileURLToPath","dirname","plugins","replace","delimiters","preventAssignment","values","json","externals","deps","devDeps","peerDeps","optDeps","include","exclude","RegExp","resolve","commonjs","babel","configFile","babelHelpers","ts","transpiler","babelConfig","string","terser","analyze","summaryOnly","app","command","describe","handler","build","functions","onlyPackageJson","packageDirPath","package","console","error","exit","generatePackageJsonForFunctions","lib","jsExtension","targetCategory","existsSync","verifyInput","endsWith","detectTargetDetail","info","packageName","match","exec","getNamespaceAndName","isEsmPackage","outputOptionsList","BUILD_TS_COREJS","BUILD_TS_VERBOSE","BUILD_TS_TARGET_CATEGORY","BUILD_TS_TARGET_DETAIL","isEsmOutput","main","file","format","jsExt","dir","entryFileNames","preserveModules","length","chdir","rm","recursive","force","options","clearScreen","mapToRelatives","paths","Array","isArray","p","relative","watcher","output","close","removeListener","stdin","code","onExit","on","isTTY","resume","event","recover","cause","nameSection","message","plugin","outputLines","chalk","bold","red","cyan","loc","id","line","column","frame","dim","stack","handleError","eventInput","inputFiles","green","ms","duration","dateTime","result","bundle","opts","buildFailed","startTime","Date","now","_bundle","rollup","Promise","all","write","scripts","devDependencies","mkdir","writeFile","run","module","nextDirPath","detectModuleType","args","additionalArguments","_","ret","child_process","spawnSync","arg","stdio","NODE_NO_WARNINGS","TS_NODE_TRANSPILE_ONLY","status","yargs","hideBin","scriptName","demandCommand","strict","help"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "build-ts",
|
|
3
|
-
"version": "5.7.
|
|
3
|
+
"version": "5.7.12",
|
|
4
4
|
"repository": "github:WillBooster/build-ts",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "WillBooster Inc.",
|
|
@@ -33,14 +33,14 @@
|
|
|
33
33
|
},
|
|
34
34
|
"prettier": "@willbooster/prettier-config",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@babel/core": "7.21.
|
|
36
|
+
"@babel/core": "7.21.5",
|
|
37
37
|
"@babel/plugin-proposal-class-properties": "7.18.6",
|
|
38
38
|
"@babel/plugin-proposal-numeric-separator": "7.18.6",
|
|
39
39
|
"@babel/plugin-syntax-import-assertions": "7.20.0",
|
|
40
40
|
"@babel/plugin-transform-runtime": "7.21.4",
|
|
41
|
-
"@babel/preset-env": "7.21.
|
|
41
|
+
"@babel/preset-env": "7.21.5",
|
|
42
42
|
"@babel/preset-react": "7.18.6",
|
|
43
|
-
"@babel/preset-typescript": "7.21.
|
|
43
|
+
"@babel/preset-typescript": "7.21.5",
|
|
44
44
|
"@rollup/plugin-babel": "6.0.3",
|
|
45
45
|
"@rollup/plugin-commonjs": "24.1.0",
|
|
46
46
|
"@rollup/plugin-json": "6.0.0",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"date-time": "4.0.0",
|
|
57
57
|
"dotenv": "16.0.3",
|
|
58
58
|
"pretty-ms": "8.0.0",
|
|
59
|
-
"rollup": "3.
|
|
59
|
+
"rollup": "3.21.0",
|
|
60
60
|
"rollup-plugin-analyzer": "4.0.0",
|
|
61
61
|
"rollup-plugin-node-externals": "5.1.2",
|
|
62
62
|
"rollup-plugin-string": "3.0.0",
|
|
@@ -64,25 +64,25 @@
|
|
|
64
64
|
"signal-exit": "3.0.7",
|
|
65
65
|
"ts-node": "10.9.1",
|
|
66
66
|
"typescript": "5.0.4",
|
|
67
|
-
"yargs": "17.7.
|
|
67
|
+
"yargs": "17.7.2"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@types/babel__core": "7.20.0",
|
|
71
71
|
"@types/babel__plugin-transform-runtime": "7.9.2",
|
|
72
72
|
"@types/babel__preset-env": "7.9.2",
|
|
73
73
|
"@types/eslint": "8.37.0",
|
|
74
|
-
"@types/node": "18.
|
|
74
|
+
"@types/node": "18.16.2",
|
|
75
75
|
"@types/signal-exit": "3.0.1",
|
|
76
76
|
"@types/yargs": "17.0.24",
|
|
77
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
78
|
-
"@typescript-eslint/parser": "5.
|
|
77
|
+
"@typescript-eslint/eslint-plugin": "5.59.1",
|
|
78
|
+
"@typescript-eslint/parser": "5.59.1",
|
|
79
79
|
"@willbooster/babel-configs": "1.3.0",
|
|
80
80
|
"@willbooster/eslint-config-ts": "10.1.0",
|
|
81
81
|
"@willbooster/prettier-config": "9.1.1",
|
|
82
82
|
"@willbooster/renovate-config": "9.5.0",
|
|
83
83
|
"@willbooster/shared-lib-node": "2.0.1",
|
|
84
84
|
"conventional-changelog-conventionalcommits": "5.0.0",
|
|
85
|
-
"eslint": "8.
|
|
85
|
+
"eslint": "8.39.0",
|
|
86
86
|
"eslint-config-prettier": "8.8.0",
|
|
87
87
|
"eslint-import-resolver-typescript": "3.5.5",
|
|
88
88
|
"eslint-plugin-import": "2.27.5",
|
|
@@ -90,13 +90,13 @@
|
|
|
90
90
|
"eslint-plugin-sort-destructure-keys": "1.5.0",
|
|
91
91
|
"eslint-plugin-unicorn": "46.0.0",
|
|
92
92
|
"husky": "8.0.3",
|
|
93
|
-
"lint-staged": "13.2.
|
|
93
|
+
"lint-staged": "13.2.2",
|
|
94
94
|
"micromatch": "4.0.5",
|
|
95
95
|
"pinst": "3.0.0",
|
|
96
|
-
"prettier": "2.8.
|
|
97
|
-
"semantic-release": "21.0.
|
|
96
|
+
"prettier": "2.8.8",
|
|
97
|
+
"semantic-release": "21.0.2",
|
|
98
98
|
"sort-package-json": "2.4.1",
|
|
99
|
-
"type-fest": "3.
|
|
99
|
+
"type-fest": "3.9.0",
|
|
100
100
|
"vitest": "0.30.1"
|
|
101
101
|
},
|
|
102
102
|
"packageManager": "yarn@4.0.0-rc.42",
|