build-ts 1.0.1 → 1.1.0
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/babel.app.config.mjs +58 -0
- package/dist/index.min.mjs +1 -1
- package/dist/index.min.mjs.map +1 -1
- package/package.json +5 -4
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import url from 'node:url';
|
|
4
|
+
|
|
5
|
+
/** @type {import('@babel/core').TransformOptions} */
|
|
6
|
+
const config = {
|
|
7
|
+
presets: [
|
|
8
|
+
[
|
|
9
|
+
'@babel/preset-env',
|
|
10
|
+
{
|
|
11
|
+
bugfixes: true,
|
|
12
|
+
},
|
|
13
|
+
],
|
|
14
|
+
'@babel/typescript',
|
|
15
|
+
],
|
|
16
|
+
plugins: ['@babel/proposal-class-properties', '@babel/proposal-numeric-separator'],
|
|
17
|
+
env: {
|
|
18
|
+
production: {
|
|
19
|
+
plugins: [
|
|
20
|
+
[
|
|
21
|
+
'transform-remove-console',
|
|
22
|
+
{
|
|
23
|
+
exclude: ['error', 'info', 'warn'],
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
test: {
|
|
29
|
+
plugins: [
|
|
30
|
+
[
|
|
31
|
+
'transform-remove-console',
|
|
32
|
+
{
|
|
33
|
+
exclude: ['error', 'info', 'warn', 'debug'],
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
],
|
|
37
|
+
presets: [
|
|
38
|
+
[
|
|
39
|
+
'@babel/preset-env',
|
|
40
|
+
{
|
|
41
|
+
modules: 'auto',
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const rootPath = url.fileURLToPath(path.dirname(import.meta.url));
|
|
50
|
+
const packageJson = JSON.parse(fs.readFileSync(path.join(rootPath, 'package.json'), 'utf8'));
|
|
51
|
+
const [major, minor] = packageJson.dependencies['core-js'].split('.');
|
|
52
|
+
|
|
53
|
+
/** @type {import('@babel/core').PluginItem} */
|
|
54
|
+
const presetEnvConfig = config.presets[0][1];
|
|
55
|
+
presetEnvConfig.useBuiltIns = 'usage';
|
|
56
|
+
presetEnvConfig.corejs = `${major}.${minor}`;
|
|
57
|
+
|
|
58
|
+
export default config;
|
package/dist/index.min.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"yargs";import{hideBin as o}from"yargs/helpers";import
|
|
1
|
+
import e from"yargs";import{hideBin as o}from"yargs/helpers";import r from"node:fs";import i from"node:path";import{babel as s}from"@rollup/plugin-babel";import a from"@rollup/plugin-commonjs";import n from"@rollup/plugin-json";import t from"@rollup/plugin-node-resolve";import p from"@rollup/plugin-terser";import{rollup as l}from"rollup";import{externals as m}from"rollup-plugin-node-externals";import{string as c}from"rollup-plugin-string";import d from"node:url";const u={command:"app",describe:"Build app",builder:{input:{description:"A file path of main source code",type:"string",default:"src/index.ts",alias:"i"},packagePath:{description:"A directory path containing package.json",type:"string",default:".",alias:"p"},firebaseJson:{description:"A file path of firebase.json",type:"string",alias:"f"},"core-js":{description:"Whether core-js is employed or not",type:"boolean",default:!0}},async handler(e){const o=e.coreJs?"babel.app.config.mjs":"babel.app-no-core-js.config.json",u=[".cjs",".mjs",".js",".json",".cts",".mts",".ts"],f=[n(),m({deps:!0,devDeps:!1}),t({extensions:u}),a(),s({configFile:i.join(d.fileURLToPath(i.dirname(i.dirname(import.meta.url))),o),extensions:u,babelHelpers:"bundled",exclude:"node_modules/**"}),c({include:["**/*.csv","**/*.txt"]})];"production"===process.env.NODE_ENV&&f.push(p());let g=e.packagePath;g.endsWith("package.json")||(g=i.join(g,"package.json"));const j=await r.promises.readFile(g,"utf8"),b=JSON.parse(j);b.main||(console.error('Please add "main" property in package.json.'),process.exit(1));let h=i.join(e.packagePath,b.main);const v=e.firebaseJson&&r.existsSync(e.firebaseJson);if(v){const o=await r.promises.readFile(e.firebaseJson,"utf8"),s=JSON.parse(o),a=i.resolve(i.dirname(e.firebaseJson),s.functions.source);h=i.resolve(a,i.basename(b.main)),await r.promises.rm(a,{recursive:!0,force:!0}),await r.promises.mkdir(a,{recursive:!0}),b.name+="-dist",b.main=i.relative(a,h),delete b.devDependencies,await r.promises.writeFile(i.join(a,"package.json"),JSON.stringify(b))}const y={input:e.input,output:{file:h,format:".mjs"===i.extname(h)?"module":"commonjs",sourcemap:!0},plugins:f};let w,x=!1;try{const[e]=await Promise.all([l(y),!v&&r.promises.rm(i.dirname(h),{recursive:!0,force:!0})]);w=e,await w.write(y.output)}catch(e){x=!0,console.error("Filed to build due to:",e)}await(w?.close()),process.exit(x?1:0)}};await e(o(process.argv)).command(u).demandCommand().help().argv;
|
|
2
2
|
//# sourceMappingURL=index.min.mjs.map
|
package/dist/index.min.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.min.mjs","sources":["../src/commands/appBuilder.ts","../src/pathUtil.ts","../src/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport 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 terser from '@rollup/plugin-terser';\nimport { rollup, RollupBuild } from 'rollup';\nimport { externals } from 'rollup-plugin-node-externals';\nimport { string } from 'rollup-plugin-string';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { getBuildTsRootPath } from '../pathUtil.js';\n\nconst builder = {\n input: {\n description: 'A file path of main source code',\n type: 'string',\n default: 'src/index.ts',\n alias: 'i',\n },\n packagePath: {\n description: 'A directory path containing package.json',\n type: 'string',\n default: '.',\n alias: 'p',\n },\n firebaseJson: {\n description: 'A file path of firebase.json',\n type: 'string',\n alias: 'f',\n },\n
|
|
1
|
+
{"version":3,"file":"index.min.mjs","sources":["../src/commands/appBuilder.ts","../src/pathUtil.ts","../src/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport 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 terser from '@rollup/plugin-terser';\nimport { rollup, RollupBuild } from 'rollup';\nimport { externals } from 'rollup-plugin-node-externals';\nimport { string } from 'rollup-plugin-string';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { getBuildTsRootPath } from '../pathUtil.js';\n\nconst builder = {\n input: {\n description: 'A file path of main source code',\n type: 'string',\n default: 'src/index.ts',\n alias: 'i',\n },\n packagePath: {\n description: 'A directory path containing package.json',\n type: 'string',\n default: '.',\n alias: 'p',\n },\n firebaseJson: {\n description: 'A file path of firebase.json',\n type: 'string',\n alias: 'f',\n },\n 'core-js': {\n description: 'Whether core-js is employed or not',\n type: 'boolean',\n default: true,\n },\n} as const;\n\nexport const appBuilder: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'app',\n describe: 'Build app',\n builder,\n async handler(argv) {\n const babelConfigFile = argv.coreJs ? 'babel.app.config.mjs' : 'babel.app-no-core-js.config.json';\n const extensions = ['.cjs', '.mjs', '.js', '.json', '.cts', '.mts', '.ts'];\n const plugins = [\n json(),\n externals({ deps: true, devDeps: false }),\n resolve({ extensions }),\n commonjs(),\n babel({\n configFile: path.join(getBuildTsRootPath(), babelConfigFile),\n extensions,\n babelHelpers: 'bundled',\n exclude: 'node_modules/**',\n }),\n string({ include: ['**/*.csv', '**/*.txt'] }),\n ];\n if (process.env.NODE_ENV === 'production') {\n plugins.push(terser());\n }\n\n let packageJsonPath = argv.packagePath;\n if (!packageJsonPath.endsWith('package.json')) {\n packageJsonPath = path.join(packageJsonPath, 'package.json');\n }\n const packageJsonText = await fs.promises.readFile(packageJsonPath, 'utf8');\n const packageJson = JSON.parse(packageJsonText);\n if (!packageJson.main) {\n console.error('Please add \"main\" property in package.json.');\n process.exit(1);\n }\n let outputFile = path.join(argv.packagePath, packageJson.main);\n\n const isFirebase = argv.firebaseJson && fs.existsSync(argv.firebaseJson);\n if (isFirebase) {\n const firebaseJsonText = await fs.promises.readFile(argv.firebaseJson, 'utf8');\n const firebaseJson = JSON.parse(firebaseJsonText);\n const packageDirPath = path.resolve(path.dirname(argv.firebaseJson), firebaseJson.functions.source);\n outputFile = path.resolve(packageDirPath, path.basename(packageJson.main));\n\n await fs.promises.rm(packageDirPath, { recursive: true, force: true });\n await fs.promises.mkdir(packageDirPath, { recursive: true });\n\n packageJson.name += '-dist';\n packageJson.main = path.relative(packageDirPath, outputFile);\n delete packageJson.devDependencies;\n await fs.promises.writeFile(path.join(packageDirPath, 'package.json'), JSON.stringify(packageJson));\n }\n\n const options = {\n input: argv.input,\n output: {\n file: outputFile,\n format: path.extname(outputFile) === '.mjs' ? 'module' : 'commonjs',\n sourcemap: true,\n },\n plugins,\n } as const;\n\n let bundle: RollupBuild | undefined;\n let buildFailed = false;\n try {\n const [_bundle] = await Promise.all([\n rollup(options),\n !isFirebase && fs.promises.rm(path.dirname(outputFile), { recursive: true, force: true }),\n ]);\n bundle = _bundle;\n await bundle.write(options.output);\n } catch (error) {\n buildFailed = true;\n console.error('Filed to build due to:', error);\n }\n await bundle?.close();\n process.exit(buildFailed ? 1 : 0);\n },\n};\n","import path from 'node:path';\nimport url from 'node:url';\n\nexport function getBuildTsRootPath(): string {\n return url.fileURLToPath(path.dirname(path.dirname(import.meta.url)));\n}\n","import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport { appBuilder } from './commands/appBuilder.js';\n\nawait yargs(hideBin(process.argv)).command(appBuilder).demandCommand().help().argv;\n"],"names":["appBuilder","command","describe","builder","input","description","type","default","alias","packagePath","firebaseJson","async","argv","babelConfigFile","coreJs","extensions","plugins","json","externals","deps","devDeps","resolve","commonjs","babel","configFile","path","join","url","fileURLToPath","dirname","import","meta","babelHelpers","exclude","string","include","process","env","NODE_ENV","push","terser","packageJsonPath","endsWith","packageJsonText","fs","promises","readFile","packageJson","JSON","parse","main","console","error","exit","outputFile","isFirebase","existsSync","firebaseJsonText","packageDirPath","functions","source","basename","rm","recursive","force","mkdir","name","relative","devDependencies","writeFile","stringify","options","output","file","format","extname","sourcemap","bundle","buildFailed","_bundle","Promise","all","rollup","write","close","yargs","hideBin","demandCommand","help"],"mappings":"mdAeA,MAyBaA,EAA0E,CACrFC,QAAS,MACTC,SAAU,YACVC,QA5Bc,CACdC,MAAO,CACLC,YAAa,kCACbC,KAAM,SACNC,QAAS,eACTC,MAAO,KAETC,YAAa,CACXJ,YAAa,2CACbC,KAAM,SACNC,QAAS,IACTC,MAAO,KAETE,aAAc,CACZL,YAAa,+BACbC,KAAM,SACNE,MAAO,KAET,UAAW,CACTH,YAAa,qCACbC,KAAM,UACNC,SAAS,IAQXI,cAAcC,GACZ,MAAMC,EAAkBD,EAAKE,OAAS,uBAAyB,mCACzDC,EAAa,CAAC,OAAQ,OAAQ,MAAO,QAAS,OAAQ,OAAQ,OAC9DC,EAAU,CACdC,IACAC,EAAU,CAAEC,MAAM,EAAMC,SAAS,IACjCC,EAAQ,CAAEN,eACVO,IACAC,EAAM,CACJC,WAAYC,EAAKC,KCjDhBC,EAAIC,cAAcH,EAAKI,QAAQJ,EAAKI,QAAQC,OAAOC,KAAKJ,ODiDbd,GAC5CE,aACAiB,aAAc,UACdC,QAAS,oBAEXC,EAAO,CAAEC,QAAS,CAAC,WAAY,eAEJ,eAAzBC,QAAQC,IAAIC,UACdtB,EAAQuB,KAAKC,KAGf,IAAIC,EAAkB7B,EAAKH,YACtBgC,EAAgBC,SAAS,kBAC5BD,EAAkBhB,EAAKC,KAAKe,EAAiB,iBAE/C,MAAME,QAAwBC,EAAGC,SAASC,SAASL,EAAiB,QAC9DM,EAAcC,KAAKC,MAAMN,GAC1BI,EAAYG,OACfC,QAAQC,MAAM,+CACdhB,QAAQiB,KAAK,IAEf,IAAIC,EAAa7B,EAAKC,KAAKd,EAAKH,YAAasC,EAAYG,MAEzD,MAAMK,EAAa3C,EAAKF,cAAgBkC,EAAGY,WAAW5C,EAAKF,cAC3D,GAAI6C,EAAY,CACd,MAAME,QAAyBb,EAAGC,SAASC,SAASlC,EAAKF,aAAc,QACjEA,EAAesC,KAAKC,MAAMQ,GAC1BC,EAAiBjC,EAAKJ,QAAQI,EAAKI,QAAQjB,EAAKF,cAAeA,EAAaiD,UAAUC,QAC5FN,EAAa7B,EAAKJ,QAAQqC,EAAgBjC,EAAKoC,SAASd,EAAYG,aAE9DN,EAAGC,SAASiB,GAAGJ,EAAgB,CAAEK,WAAW,EAAMC,OAAO,UACzDpB,EAAGC,SAASoB,MAAMP,EAAgB,CAAEK,WAAW,IAErDhB,EAAYmB,MAAQ,QACpBnB,EAAYG,KAAOzB,EAAK0C,SAAST,EAAgBJ,UAC1CP,EAAYqB,sBACbxB,EAAGC,SAASwB,UAAU5C,EAAKC,KAAKgC,EAAgB,gBAAiBV,KAAKsB,UAAUvB,GACxF,CAEA,MAAMwB,EAAU,CACdnE,MAAOQ,EAAKR,MACZoE,OAAQ,CACNC,KAAMnB,EACNoB,OAAqC,SAA7BjD,EAAKkD,QAAQrB,GAAyB,SAAW,WACzDsB,WAAW,GAEb5D,WAGF,IAAI6D,EACAC,GAAc,EAClB,IACE,MAAOC,SAAiBC,QAAQC,IAAI,CAClCC,EAAOX,IACNhB,GAAcX,EAAGC,SAASiB,GAAGrC,EAAKI,QAAQyB,GAAa,CAAES,WAAW,EAAMC,OAAO,MAEpFa,EAASE,QACHF,EAAOM,MAAMZ,EAAQC,OAI7B,CAHE,MAAOpB,GACP0B,GAAc,EACd3B,QAAQC,MAAM,yBAA0BA,EAC1C,OACMyB,GAAQO,SACdhD,QAAQiB,KAAKyB,EAAc,EAAI,EACjC,SEhHIO,EAAMC,EAAQlD,QAAQxB,OAAOX,QAAQD,GAAYuF,gBAAgBC,OAAO5E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "build-ts",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"repository": "github:WillBooster/build-ts",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "WillBooster Inc.",
|
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
"bin": "bin/index.mjs",
|
|
10
10
|
"files": [
|
|
11
11
|
"bin/",
|
|
12
|
-
"dist/"
|
|
12
|
+
"dist/",
|
|
13
|
+
"babel.*.config.mjs"
|
|
13
14
|
],
|
|
14
15
|
"scripts": {
|
|
15
|
-
"build": "yarn start app",
|
|
16
|
+
"build": "NODE_ENV=production yarn start app --no-core-js",
|
|
16
17
|
"cleanup": "yarn format && yarn lint-fix",
|
|
17
18
|
"format": "sort-package-json && yarn prettify",
|
|
18
19
|
"_postinstall": "husky install",
|
|
@@ -21,7 +22,7 @@
|
|
|
21
22
|
"prepack": "pinst --disable",
|
|
22
23
|
"postpack": "pinst --enable",
|
|
23
24
|
"prettify": "prettier --cache --color --write \"**/{.*/,}*.{cjs,css,cts,htm,html,js,json,json5,jsx,md,mjs,mts,scss,ts,tsx,vue,yaml,yml}\" \"!**/test-fixtures/**\"",
|
|
24
|
-
"start": "
|
|
25
|
+
"start": "node --no-warnings --loader ts-node/esm src/index.ts",
|
|
25
26
|
"typecheck": "tsc --noEmit --Pretty"
|
|
26
27
|
},
|
|
27
28
|
"prettier": "@willbooster/prettier-config",
|