@xylabs/ts-scripts-yarn3 3.0.4 → 3.0.5

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.
@@ -34,6 +34,7 @@ module.exports = __toCommonJS(compile_exports);
34
34
  var import_plugin_commonjs = __toESM(require("@rollup/plugin-commonjs"));
35
35
  var import_plugin_typescript = __toESM(require("@rollup/plugin-typescript"));
36
36
  var import_chalk = __toESM(require("chalk"));
37
+ var import_cosmiconfig = require("cosmiconfig");
37
38
  var import_promises = require("fs/promises");
38
39
  var import_rollup = require("rollup");
39
40
  var import_rollup_plugin_exclude_dependencies_from_bundle = __toESM(require("rollup-plugin-exclude-dependencies-from-bundle"));
@@ -41,15 +42,16 @@ var import_rollup_plugin_node_externals = __toESM(require("rollup-plugin-node-ex
41
42
  var import_loadPackageConfig = require("../../loadPackageConfig");
42
43
  var import_publint = require("./publint");
43
44
  const rollItUp = async (format, ext, subDir) => {
44
- const input = await getInputs(subDir);
45
+ const dir = subDir === "." ? void 0 : subDir;
46
+ const input = await getInputs(dir);
45
47
  const tsPlugIn = (0, import_plugin_typescript.default)({
46
48
  baseUrl: "src",
47
- declaration: !subDir,
48
- declarationMap: !subDir,
49
+ declaration: !dir || !subDir,
50
+ declarationMap: !dir || !subDir,
49
51
  emitDeclarationOnly: false,
50
52
  esModuleInterop: true,
51
53
  exclude: ["**/*.spec.*", "dist", "docs", "node_modules", "packages"],
52
- outDir: subDir ? `dist/${subDir}` : "dist",
54
+ outDir: dir ? `dist/${dir}` : "dist",
53
55
  rootDir: "src",
54
56
  tsconfig: "tsconfig.json"
55
57
  });
@@ -58,9 +60,12 @@ const rollItUp = async (format, ext, subDir) => {
58
60
  const infos = [];
59
61
  const debugs = [];
60
62
  const options = {
61
- input: input.map((file) => `./src/${file}`),
63
+ input: subDir ? input.map((file) => `./src/${file}`) : ["./src/index.ts"],
62
64
  logLevel: "warn",
63
65
  onLog: (level, log, defaultHandler) => {
66
+ if (log.code === "EMPTY_BUNDLE") {
67
+ return defaultHandler(level, log);
68
+ }
64
69
  switch (level) {
65
70
  case "warn": {
66
71
  warnings.push(log);
@@ -83,13 +88,13 @@ const rollItUp = async (format, ext, subDir) => {
83
88
  break;
84
89
  }
85
90
  }
86
- console.log(`Log: ${level}: ${log.cause}`);
91
+ console.log(`Log: ${level}: ${log.message}`);
87
92
  return defaultHandler(level, log);
88
93
  },
89
94
  plugins: [(0, import_plugin_commonjs.default)(), (0, import_rollup_plugin_exclude_dependencies_from_bundle.default)(), (0, import_rollup_plugin_node_externals.default)(), tsPlugIn]
90
95
  };
91
96
  const outputOptions = {
92
- dir: subDir ? `dist/${subDir}` : "dist",
97
+ dir: dir ? `dist/${dir}` : "dist",
93
98
  dynamicImportInCjs: true,
94
99
  entryFileNames: (chunkInfo) => `${chunkInfo.name}.${ext}`,
95
100
  format,
@@ -103,10 +108,13 @@ const rollItUp = async (format, ext, subDir) => {
103
108
  const getInputs = async (subDir) => {
104
109
  return (await (0, import_promises.readdir)(subDir ? `src/${subDir}` : "src", { recursive: false })).filter((file) => (file.endsWith(".ts") || file.endsWith(".tsx")) && !file.endsWith("d.ts") && !file.endsWith("spec.ts")).map((file) => subDir ? `${subDir}/${file}` : file);
105
110
  };
106
- const getInputDirs = async () => {
111
+ const getInputDirs = async (depth) => {
112
+ if (depth === 0) {
113
+ return [];
114
+ }
107
115
  return [
108
- void 0,
109
- ...(await (0, import_promises.readdir)("src", { recursive: true, withFileTypes: true })).filter((file) => file.isDirectory()).map((file) => {
116
+ ".",
117
+ ...(await (0, import_promises.readdir)("src", { recursive: depth > 1, withFileTypes: true })).filter((file) => file.isDirectory()).map((file) => {
110
118
  const pathParts = file.path.split("/");
111
119
  pathParts.shift();
112
120
  if (pathParts.length) {
@@ -124,16 +132,16 @@ const getDistTypeFiles = async () => {
124
132
  const getDistTypeMapFiles = async () => {
125
133
  return (await (0, import_promises.readdir)("dist", { recursive: true })).filter((file) => file.endsWith("d.ts.map")).map((file) => `dist/${file}`);
126
134
  };
127
- const buildIt = async (pkg) => {
128
- const inputDirs = await getInputDirs();
135
+ const buildIt = async (pkg, compileDepth) => {
136
+ const inputDirs = await getInputDirs(compileDepth);
129
137
  const pkgType = pkg.type ?? "commonjs";
130
138
  const esmExt = pkgType === "module" ? "js" : "mjs";
131
139
  const cjsExt = pkgType === "commonjs" ? "js" : "cjs";
132
- const rollupResult = await Promise.all(
140
+ const rollupResult = inputDirs.length ? await Promise.all(
133
141
  inputDirs.map(async (inputDir) => {
134
142
  return await rollItUp("esm", esmExt, inputDir) + await rollItUp("cjs", cjsExt, inputDir);
135
143
  })
136
- );
144
+ ) : [await rollItUp("esm", esmExt) + await rollItUp("cjs", cjsExt)];
137
145
  const distTypeFiles = await getDistTypeFiles();
138
146
  await Promise.all(
139
147
  distTypeFiles.map(async (file) => {
@@ -149,11 +157,13 @@ const buildIt = async (pkg) => {
149
157
  return rollupResult.reduce((prev, item) => prev + item, 0);
150
158
  };
151
159
  const packageCompile = async ({ publint = true, verbose } = { verbose: false }) => {
160
+ const xyConfig = await (0, import_cosmiconfig.cosmiconfig)("xy").search();
161
+ const compileDepth = xyConfig?.config.compile?.depth ?? 0;
152
162
  const pkgName = process.env.npm_package_name;
153
163
  if (verbose) {
154
164
  console.log(import_chalk.default.green(`Compiling ${pkgName} Start`));
155
165
  }
156
- const result = await buildIt(await (0, import_loadPackageConfig.loadPackageConfig)()) + (publint ? await (0, import_publint.packagePublint)() : 0);
166
+ const result = await buildIt(await (0, import_loadPackageConfig.loadPackageConfig)(), compileDepth) + (publint ? await (0, import_publint.packagePublint)() : 0);
157
167
  if (result) {
158
168
  const input = await getInputs();
159
169
  console.log(`Inputs: ${JSON.stringify(input, null, 2)}`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/actions/package/compile.ts"],"sourcesContent":["import commonjs from '@rollup/plugin-commonjs'\nimport typescript from '@rollup/plugin-typescript'\nimport chalk from 'chalk'\nimport { copyFile, readdir } from 'fs/promises'\nimport { OutputOptions, rollup, RollupLog, RollupOptions, watch } from 'rollup'\nimport externalDeps from 'rollup-plugin-exclude-dependencies-from-bundle'\nimport nodeExternals from 'rollup-plugin-node-externals'\n\nimport { loadPackageConfig, PackageJsonEx } from '../../loadPackageConfig'\nimport { packagePublint } from './publint'\n\nexport interface CompilePackageParams {\n publint?: boolean\n verbose?: boolean\n}\n\nconst rollItUp = async (format: 'cjs' | 'esm', ext: string, subDir?: string) => {\n const input = await getInputs(subDir)\n const tsPlugIn = typescript({\n baseUrl: 'src',\n declaration: !subDir,\n declarationMap: !subDir,\n emitDeclarationOnly: false,\n esModuleInterop: true,\n exclude: ['**/*.spec.*', 'dist', 'docs', 'node_modules', 'packages'],\n outDir: subDir ? `dist/${subDir}` : 'dist',\n rootDir: 'src',\n tsconfig: 'tsconfig.json',\n })\n\n const errors: RollupLog[] = []\n const warnings: RollupLog[] = []\n const infos: RollupLog[] = []\n const debugs: RollupLog[] = []\n\n const options: RollupOptions = {\n input: input.map((file) => `./src/${file}`),\n logLevel: 'warn',\n onLog: (level, log, defaultHandler) => {\n switch (level) {\n case 'warn': {\n warnings.push(log)\n console.warn(chalk.yellow(JSON.stringify(log, null, 2)))\n break\n }\n case 'info': {\n infos.push(log)\n console.info(chalk.white(JSON.stringify(log, null, 2)))\n break\n }\n case 'debug': {\n debugs.push(log)\n console.debug(chalk.gray(JSON.stringify(log, null, 2)))\n break\n }\n default: {\n errors.push(log)\n console.error(chalk.red(JSON.stringify(log, null, 2)))\n break\n }\n }\n console.log(`Log: ${level}: ${log.cause}`)\n return defaultHandler(level, log)\n },\n plugins: [commonjs(), externalDeps(), nodeExternals(), tsPlugIn],\n }\n\n const outputOptions: OutputOptions = {\n dir: subDir ? `dist/${subDir}` : 'dist',\n dynamicImportInCjs: true,\n entryFileNames: (chunkInfo) => `${chunkInfo.name}.${ext}`,\n format,\n sourcemap: true,\n }\n\n if (input.length) {\n await (await rollup(options)).write(outputOptions)\n }\n\n return errors.length + warnings.length\n}\n\nconst getInputs = async (subDir?: string) => {\n return (await readdir(subDir ? `src/${subDir}` : 'src', { recursive: false }))\n .filter((file) => (file.endsWith('.ts') || file.endsWith('.tsx')) && !file.endsWith('d.ts') && !file.endsWith('spec.ts'))\n .map((file) => (subDir ? `${subDir}/${file}` : file))\n}\n\nconst getInputDirs = async () => {\n return [\n undefined,\n ...(await readdir('src', { recursive: true, withFileTypes: true }))\n .filter((file) => file.isDirectory())\n .map((file) => {\n const pathParts = file.path.split('/')\n pathParts.shift()\n if (pathParts.length) {\n const root = pathParts.join('/')\n return `${root}/${file.name}`\n } else {\n return file.name\n }\n }),\n ]\n}\n\nconst getDistTypeFiles = async () => {\n return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts')).map((file) => `dist/${file}`)\n}\n\nconst getDistTypeMapFiles = async () => {\n return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts.map')).map((file) => `dist/${file}`)\n}\n\nconst buildIt = async (pkg: PackageJsonEx) => {\n const inputDirs = await getInputDirs()\n\n const pkgType = pkg.type ?? 'commonjs'\n\n const esmExt = pkgType === 'module' ? 'js' : 'mjs'\n const cjsExt = pkgType === 'commonjs' ? 'js' : 'cjs'\n\n const rollupResult = await Promise.all(\n inputDirs.map(async (inputDir) => {\n return await rollItUp('esm', esmExt, inputDir) + await rollItUp('cjs', cjsExt, inputDir)\n }),\n )\n\n //hybrid packages want two copies of the types\n const distTypeFiles = await getDistTypeFiles()\n await Promise.all(\n distTypeFiles.map(async (file) => {\n await copyFile(file, file.replace('d.ts', 'd.mts'))\n }),\n )\n\n const distTypeMapFiles = await getDistTypeMapFiles()\n await Promise.all(\n distTypeMapFiles.map(async (file) => {\n await copyFile(file, file.replace('d.ts.map', 'd.mts.map'))\n }),\n )\n\n return rollupResult.reduce((prev, item) => prev + item, 0)\n}\n\nexport const packageCompile = async ({ publint = true, verbose }: CompilePackageParams = { verbose: false }) => {\n const pkgName = process.env.npm_package_name\n if (verbose) {\n console.log(chalk.green(`Compiling ${pkgName} Start`))\n }\n const result = (await buildIt(await loadPackageConfig())) + (publint ? await packagePublint() : 0)\n if (result) {\n const input = await getInputs()\n console.log(`Inputs: ${JSON.stringify(input, null, 2)}`)\n console.error(chalk.red(`Compiling ${pkgName} Failed [${result}]`))\n } else if (verbose) {\n console.log(chalk.green(`Compiling ${pkgName} Done`))\n }\n return result\n}\n"],"mappings":"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","names":["typescript","chalk","commonjs","externalDeps","nodeExternals"]}
1
+ {"version":3,"sources":["../../../src/actions/package/compile.ts"],"sourcesContent":["import commonjs from '@rollup/plugin-commonjs'\nimport typescript from '@rollup/plugin-typescript'\nimport chalk from 'chalk'\nimport { cosmiconfig } from 'cosmiconfig'\nimport { copyFile, readdir } from 'fs/promises'\nimport { OutputOptions, rollup, RollupLog, RollupOptions, watch } from 'rollup'\nimport externalDeps from 'rollup-plugin-exclude-dependencies-from-bundle'\nimport nodeExternals from 'rollup-plugin-node-externals'\n\nimport { loadPackageConfig, PackageJsonEx } from '../../loadPackageConfig'\nimport { packagePublint } from './publint'\n\nexport interface CompilePackageParams {\n publint?: boolean\n verbose?: boolean\n}\n\nconst rollItUp = async (format: 'cjs' | 'esm', ext: string, subDir?: string) => {\n const dir = subDir === '.' ? undefined : subDir\n const input = await getInputs(dir)\n const tsPlugIn = typescript({\n baseUrl: 'src',\n declaration: !dir || !subDir,\n declarationMap: !dir || !subDir,\n emitDeclarationOnly: false,\n esModuleInterop: true,\n exclude: ['**/*.spec.*', 'dist', 'docs', 'node_modules', 'packages'],\n outDir: dir ? `dist/${dir}` : 'dist',\n rootDir: 'src',\n tsconfig: 'tsconfig.json',\n })\n\n const errors: RollupLog[] = []\n const warnings: RollupLog[] = []\n const infos: RollupLog[] = []\n const debugs: RollupLog[] = []\n\n const options: RollupOptions = {\n input: subDir ? input.map((file) => `./src/${file}`) : ['./src/index.ts'],\n logLevel: 'warn',\n onLog: (level, log, defaultHandler) => {\n if (log.code === 'EMPTY_BUNDLE') {\n return defaultHandler(level, log)\n }\n switch (level) {\n case 'warn': {\n warnings.push(log)\n console.warn(chalk.yellow(JSON.stringify(log, null, 2)))\n break\n }\n case 'info': {\n infos.push(log)\n console.info(chalk.white(JSON.stringify(log, null, 2)))\n break\n }\n case 'debug': {\n debugs.push(log)\n console.debug(chalk.gray(JSON.stringify(log, null, 2)))\n break\n }\n default: {\n errors.push(log)\n console.error(chalk.red(JSON.stringify(log, null, 2)))\n break\n }\n }\n console.log(`Log: ${level}: ${log.message}`)\n return defaultHandler(level, log)\n },\n plugins: [commonjs(), externalDeps(), nodeExternals(), tsPlugIn],\n }\n\n const outputOptions: OutputOptions = {\n dir: dir ? `dist/${dir}` : 'dist',\n dynamicImportInCjs: true,\n entryFileNames: (chunkInfo) => `${chunkInfo.name}.${ext}`,\n format,\n sourcemap: true,\n }\n\n if (input.length) {\n await (await rollup(options)).write(outputOptions)\n }\n\n return errors.length + warnings.length\n}\n\nconst getInputs = async (subDir?: string) => {\n return (await readdir(subDir ? `src/${subDir}` : 'src', { recursive: false }))\n .filter((file) => (file.endsWith('.ts') || file.endsWith('.tsx')) && !file.endsWith('d.ts') && !file.endsWith('spec.ts'))\n .map((file) => (subDir ? `${subDir}/${file}` : file))\n}\n\nconst getInputDirs = async (depth: number) => {\n if (depth === 0) {\n return []\n }\n return [\n '.',\n ...(await readdir('src', { recursive: depth > 1, withFileTypes: true }))\n .filter((file) => file.isDirectory())\n .map((file) => {\n const pathParts = file.path.split('/')\n pathParts.shift()\n if (pathParts.length) {\n const root = pathParts.join('/')\n return `${root}/${file.name}`\n } else {\n return file.name\n }\n }),\n ]\n}\n\nconst getDistTypeFiles = async () => {\n return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts')).map((file) => `dist/${file}`)\n}\n\nconst getDistTypeMapFiles = async () => {\n return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts.map')).map((file) => `dist/${file}`)\n}\n\nconst buildIt = async (pkg: PackageJsonEx, compileDepth: number) => {\n const inputDirs = await getInputDirs(compileDepth)\n\n const pkgType = pkg.type ?? 'commonjs'\n\n const esmExt = pkgType === 'module' ? 'js' : 'mjs'\n const cjsExt = pkgType === 'commonjs' ? 'js' : 'cjs'\n\n const rollupResult = inputDirs.length\n ? await Promise.all(\n inputDirs.map(async (inputDir) => {\n return (await rollItUp('esm', esmExt, inputDir)) + (await rollItUp('cjs', cjsExt, inputDir))\n }),\n )\n : [(await rollItUp('esm', esmExt)) + (await rollItUp('cjs', cjsExt))]\n\n //hybrid packages want two copies of the types\n const distTypeFiles = await getDistTypeFiles()\n await Promise.all(\n distTypeFiles.map(async (file) => {\n await copyFile(file, file.replace('d.ts', 'd.mts'))\n }),\n )\n\n const distTypeMapFiles = await getDistTypeMapFiles()\n await Promise.all(\n distTypeMapFiles.map(async (file) => {\n await copyFile(file, file.replace('d.ts.map', 'd.mts.map'))\n }),\n )\n\n return rollupResult.reduce((prev, item) => prev + item, 0)\n}\n\nexport const packageCompile = async ({ publint = true, verbose }: CompilePackageParams = { verbose: false }) => {\n const xyConfig = await cosmiconfig('xy').search()\n const compileDepth: number = xyConfig?.config.compile?.depth ?? 0\n const pkgName = process.env.npm_package_name\n if (verbose) {\n console.log(chalk.green(`Compiling ${pkgName} Start`))\n }\n const result = (await buildIt(await loadPackageConfig(), compileDepth)) + (publint ? await packagePublint() : 0)\n if (result) {\n const input = await getInputs()\n console.log(`Inputs: ${JSON.stringify(input, null, 2)}`)\n console.error(chalk.red(`Compiling ${pkgName} Failed [${result}]`))\n } else if (verbose) {\n console.log(chalk.green(`Compiling ${pkgName} Done`))\n }\n return result\n}\n"],"mappings":"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","names":["typescript","chalk","commonjs","externalDeps","nodeExternals"]}
@@ -1,6 +1,7 @@
1
1
  import commonjs from "@rollup/plugin-commonjs";
2
2
  import typescript from "@rollup/plugin-typescript";
3
3
  import chalk from "chalk";
4
+ import { cosmiconfig } from "cosmiconfig";
4
5
  import { copyFile, readdir } from "fs/promises";
5
6
  import { rollup } from "rollup";
6
7
  import externalDeps from "rollup-plugin-exclude-dependencies-from-bundle";
@@ -8,15 +9,16 @@ import nodeExternals from "rollup-plugin-node-externals";
8
9
  import { loadPackageConfig } from "../../loadPackageConfig";
9
10
  import { packagePublint } from "./publint";
10
11
  const rollItUp = async (format, ext, subDir) => {
11
- const input = await getInputs(subDir);
12
+ const dir = subDir === "." ? void 0 : subDir;
13
+ const input = await getInputs(dir);
12
14
  const tsPlugIn = typescript({
13
15
  baseUrl: "src",
14
- declaration: !subDir,
15
- declarationMap: !subDir,
16
+ declaration: !dir || !subDir,
17
+ declarationMap: !dir || !subDir,
16
18
  emitDeclarationOnly: false,
17
19
  esModuleInterop: true,
18
20
  exclude: ["**/*.spec.*", "dist", "docs", "node_modules", "packages"],
19
- outDir: subDir ? `dist/${subDir}` : "dist",
21
+ outDir: dir ? `dist/${dir}` : "dist",
20
22
  rootDir: "src",
21
23
  tsconfig: "tsconfig.json"
22
24
  });
@@ -25,9 +27,12 @@ const rollItUp = async (format, ext, subDir) => {
25
27
  const infos = [];
26
28
  const debugs = [];
27
29
  const options = {
28
- input: input.map((file) => `./src/${file}`),
30
+ input: subDir ? input.map((file) => `./src/${file}`) : ["./src/index.ts"],
29
31
  logLevel: "warn",
30
32
  onLog: (level, log, defaultHandler) => {
33
+ if (log.code === "EMPTY_BUNDLE") {
34
+ return defaultHandler(level, log);
35
+ }
31
36
  switch (level) {
32
37
  case "warn": {
33
38
  warnings.push(log);
@@ -50,13 +55,13 @@ const rollItUp = async (format, ext, subDir) => {
50
55
  break;
51
56
  }
52
57
  }
53
- console.log(`Log: ${level}: ${log.cause}`);
58
+ console.log(`Log: ${level}: ${log.message}`);
54
59
  return defaultHandler(level, log);
55
60
  },
56
61
  plugins: [commonjs(), externalDeps(), nodeExternals(), tsPlugIn]
57
62
  };
58
63
  const outputOptions = {
59
- dir: subDir ? `dist/${subDir}` : "dist",
64
+ dir: dir ? `dist/${dir}` : "dist",
60
65
  dynamicImportInCjs: true,
61
66
  entryFileNames: (chunkInfo) => `${chunkInfo.name}.${ext}`,
62
67
  format,
@@ -70,10 +75,13 @@ const rollItUp = async (format, ext, subDir) => {
70
75
  const getInputs = async (subDir) => {
71
76
  return (await readdir(subDir ? `src/${subDir}` : "src", { recursive: false })).filter((file) => (file.endsWith(".ts") || file.endsWith(".tsx")) && !file.endsWith("d.ts") && !file.endsWith("spec.ts")).map((file) => subDir ? `${subDir}/${file}` : file);
72
77
  };
73
- const getInputDirs = async () => {
78
+ const getInputDirs = async (depth) => {
79
+ if (depth === 0) {
80
+ return [];
81
+ }
74
82
  return [
75
- void 0,
76
- ...(await readdir("src", { recursive: true, withFileTypes: true })).filter((file) => file.isDirectory()).map((file) => {
83
+ ".",
84
+ ...(await readdir("src", { recursive: depth > 1, withFileTypes: true })).filter((file) => file.isDirectory()).map((file) => {
77
85
  const pathParts = file.path.split("/");
78
86
  pathParts.shift();
79
87
  if (pathParts.length) {
@@ -91,16 +99,16 @@ const getDistTypeFiles = async () => {
91
99
  const getDistTypeMapFiles = async () => {
92
100
  return (await readdir("dist", { recursive: true })).filter((file) => file.endsWith("d.ts.map")).map((file) => `dist/${file}`);
93
101
  };
94
- const buildIt = async (pkg) => {
95
- const inputDirs = await getInputDirs();
102
+ const buildIt = async (pkg, compileDepth) => {
103
+ const inputDirs = await getInputDirs(compileDepth);
96
104
  const pkgType = pkg.type ?? "commonjs";
97
105
  const esmExt = pkgType === "module" ? "js" : "mjs";
98
106
  const cjsExt = pkgType === "commonjs" ? "js" : "cjs";
99
- const rollupResult = await Promise.all(
107
+ const rollupResult = inputDirs.length ? await Promise.all(
100
108
  inputDirs.map(async (inputDir) => {
101
109
  return await rollItUp("esm", esmExt, inputDir) + await rollItUp("cjs", cjsExt, inputDir);
102
110
  })
103
- );
111
+ ) : [await rollItUp("esm", esmExt) + await rollItUp("cjs", cjsExt)];
104
112
  const distTypeFiles = await getDistTypeFiles();
105
113
  await Promise.all(
106
114
  distTypeFiles.map(async (file) => {
@@ -116,11 +124,13 @@ const buildIt = async (pkg) => {
116
124
  return rollupResult.reduce((prev, item) => prev + item, 0);
117
125
  };
118
126
  const packageCompile = async ({ publint = true, verbose } = { verbose: false }) => {
127
+ const xyConfig = await cosmiconfig("xy").search();
128
+ const compileDepth = xyConfig?.config.compile?.depth ?? 0;
119
129
  const pkgName = process.env.npm_package_name;
120
130
  if (verbose) {
121
131
  console.log(chalk.green(`Compiling ${pkgName} Start`));
122
132
  }
123
- const result = await buildIt(await loadPackageConfig()) + (publint ? await packagePublint() : 0);
133
+ const result = await buildIt(await loadPackageConfig(), compileDepth) + (publint ? await packagePublint() : 0);
124
134
  if (result) {
125
135
  const input = await getInputs();
126
136
  console.log(`Inputs: ${JSON.stringify(input, null, 2)}`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/actions/package/compile.ts"],"sourcesContent":["import commonjs from '@rollup/plugin-commonjs'\nimport typescript from '@rollup/plugin-typescript'\nimport chalk from 'chalk'\nimport { copyFile, readdir } from 'fs/promises'\nimport { OutputOptions, rollup, RollupLog, RollupOptions, watch } from 'rollup'\nimport externalDeps from 'rollup-plugin-exclude-dependencies-from-bundle'\nimport nodeExternals from 'rollup-plugin-node-externals'\n\nimport { loadPackageConfig, PackageJsonEx } from '../../loadPackageConfig'\nimport { packagePublint } from './publint'\n\nexport interface CompilePackageParams {\n publint?: boolean\n verbose?: boolean\n}\n\nconst rollItUp = async (format: 'cjs' | 'esm', ext: string, subDir?: string) => {\n const input = await getInputs(subDir)\n const tsPlugIn = typescript({\n baseUrl: 'src',\n declaration: !subDir,\n declarationMap: !subDir,\n emitDeclarationOnly: false,\n esModuleInterop: true,\n exclude: ['**/*.spec.*', 'dist', 'docs', 'node_modules', 'packages'],\n outDir: subDir ? `dist/${subDir}` : 'dist',\n rootDir: 'src',\n tsconfig: 'tsconfig.json',\n })\n\n const errors: RollupLog[] = []\n const warnings: RollupLog[] = []\n const infos: RollupLog[] = []\n const debugs: RollupLog[] = []\n\n const options: RollupOptions = {\n input: input.map((file) => `./src/${file}`),\n logLevel: 'warn',\n onLog: (level, log, defaultHandler) => {\n switch (level) {\n case 'warn': {\n warnings.push(log)\n console.warn(chalk.yellow(JSON.stringify(log, null, 2)))\n break\n }\n case 'info': {\n infos.push(log)\n console.info(chalk.white(JSON.stringify(log, null, 2)))\n break\n }\n case 'debug': {\n debugs.push(log)\n console.debug(chalk.gray(JSON.stringify(log, null, 2)))\n break\n }\n default: {\n errors.push(log)\n console.error(chalk.red(JSON.stringify(log, null, 2)))\n break\n }\n }\n console.log(`Log: ${level}: ${log.cause}`)\n return defaultHandler(level, log)\n },\n plugins: [commonjs(), externalDeps(), nodeExternals(), tsPlugIn],\n }\n\n const outputOptions: OutputOptions = {\n dir: subDir ? `dist/${subDir}` : 'dist',\n dynamicImportInCjs: true,\n entryFileNames: (chunkInfo) => `${chunkInfo.name}.${ext}`,\n format,\n sourcemap: true,\n }\n\n if (input.length) {\n await (await rollup(options)).write(outputOptions)\n }\n\n return errors.length + warnings.length\n}\n\nconst getInputs = async (subDir?: string) => {\n return (await readdir(subDir ? `src/${subDir}` : 'src', { recursive: false }))\n .filter((file) => (file.endsWith('.ts') || file.endsWith('.tsx')) && !file.endsWith('d.ts') && !file.endsWith('spec.ts'))\n .map((file) => (subDir ? `${subDir}/${file}` : file))\n}\n\nconst getInputDirs = async () => {\n return [\n undefined,\n ...(await readdir('src', { recursive: true, withFileTypes: true }))\n .filter((file) => file.isDirectory())\n .map((file) => {\n const pathParts = file.path.split('/')\n pathParts.shift()\n if (pathParts.length) {\n const root = pathParts.join('/')\n return `${root}/${file.name}`\n } else {\n return file.name\n }\n }),\n ]\n}\n\nconst getDistTypeFiles = async () => {\n return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts')).map((file) => `dist/${file}`)\n}\n\nconst getDistTypeMapFiles = async () => {\n return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts.map')).map((file) => `dist/${file}`)\n}\n\nconst buildIt = async (pkg: PackageJsonEx) => {\n const inputDirs = await getInputDirs()\n\n const pkgType = pkg.type ?? 'commonjs'\n\n const esmExt = pkgType === 'module' ? 'js' : 'mjs'\n const cjsExt = pkgType === 'commonjs' ? 'js' : 'cjs'\n\n const rollupResult = await Promise.all(\n inputDirs.map(async (inputDir) => {\n return await rollItUp('esm', esmExt, inputDir) + await rollItUp('cjs', cjsExt, inputDir)\n }),\n )\n\n //hybrid packages want two copies of the types\n const distTypeFiles = await getDistTypeFiles()\n await Promise.all(\n distTypeFiles.map(async (file) => {\n await copyFile(file, file.replace('d.ts', 'd.mts'))\n }),\n )\n\n const distTypeMapFiles = await getDistTypeMapFiles()\n await Promise.all(\n distTypeMapFiles.map(async (file) => {\n await copyFile(file, file.replace('d.ts.map', 'd.mts.map'))\n }),\n )\n\n return rollupResult.reduce((prev, item) => prev + item, 0)\n}\n\nexport const packageCompile = async ({ publint = true, verbose }: CompilePackageParams = { verbose: false }) => {\n const pkgName = process.env.npm_package_name\n if (verbose) {\n console.log(chalk.green(`Compiling ${pkgName} Start`))\n }\n const result = (await buildIt(await loadPackageConfig())) + (publint ? await packagePublint() : 0)\n if (result) {\n const input = await getInputs()\n console.log(`Inputs: ${JSON.stringify(input, null, 2)}`)\n console.error(chalk.red(`Compiling ${pkgName} Failed [${result}]`))\n } else if (verbose) {\n console.log(chalk.green(`Compiling ${pkgName} Done`))\n }\n return result\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/actions/package/compile.ts"],"sourcesContent":["import commonjs from '@rollup/plugin-commonjs'\nimport typescript from '@rollup/plugin-typescript'\nimport chalk from 'chalk'\nimport { cosmiconfig } from 'cosmiconfig'\nimport { copyFile, readdir } from 'fs/promises'\nimport { OutputOptions, rollup, RollupLog, RollupOptions, watch } from 'rollup'\nimport externalDeps from 'rollup-plugin-exclude-dependencies-from-bundle'\nimport nodeExternals from 'rollup-plugin-node-externals'\n\nimport { loadPackageConfig, PackageJsonEx } from '../../loadPackageConfig'\nimport { packagePublint } from './publint'\n\nexport interface CompilePackageParams {\n publint?: boolean\n verbose?: boolean\n}\n\nconst rollItUp = async (format: 'cjs' | 'esm', ext: string, subDir?: string) => {\n const dir = subDir === '.' ? undefined : subDir\n const input = await getInputs(dir)\n const tsPlugIn = typescript({\n baseUrl: 'src',\n declaration: !dir || !subDir,\n declarationMap: !dir || !subDir,\n emitDeclarationOnly: false,\n esModuleInterop: true,\n exclude: ['**/*.spec.*', 'dist', 'docs', 'node_modules', 'packages'],\n outDir: dir ? `dist/${dir}` : 'dist',\n rootDir: 'src',\n tsconfig: 'tsconfig.json',\n })\n\n const errors: RollupLog[] = []\n const warnings: RollupLog[] = []\n const infos: RollupLog[] = []\n const debugs: RollupLog[] = []\n\n const options: RollupOptions = {\n input: subDir ? input.map((file) => `./src/${file}`) : ['./src/index.ts'],\n logLevel: 'warn',\n onLog: (level, log, defaultHandler) => {\n if (log.code === 'EMPTY_BUNDLE') {\n return defaultHandler(level, log)\n }\n switch (level) {\n case 'warn': {\n warnings.push(log)\n console.warn(chalk.yellow(JSON.stringify(log, null, 2)))\n break\n }\n case 'info': {\n infos.push(log)\n console.info(chalk.white(JSON.stringify(log, null, 2)))\n break\n }\n case 'debug': {\n debugs.push(log)\n console.debug(chalk.gray(JSON.stringify(log, null, 2)))\n break\n }\n default: {\n errors.push(log)\n console.error(chalk.red(JSON.stringify(log, null, 2)))\n break\n }\n }\n console.log(`Log: ${level}: ${log.message}`)\n return defaultHandler(level, log)\n },\n plugins: [commonjs(), externalDeps(), nodeExternals(), tsPlugIn],\n }\n\n const outputOptions: OutputOptions = {\n dir: dir ? `dist/${dir}` : 'dist',\n dynamicImportInCjs: true,\n entryFileNames: (chunkInfo) => `${chunkInfo.name}.${ext}`,\n format,\n sourcemap: true,\n }\n\n if (input.length) {\n await (await rollup(options)).write(outputOptions)\n }\n\n return errors.length + warnings.length\n}\n\nconst getInputs = async (subDir?: string) => {\n return (await readdir(subDir ? `src/${subDir}` : 'src', { recursive: false }))\n .filter((file) => (file.endsWith('.ts') || file.endsWith('.tsx')) && !file.endsWith('d.ts') && !file.endsWith('spec.ts'))\n .map((file) => (subDir ? `${subDir}/${file}` : file))\n}\n\nconst getInputDirs = async (depth: number) => {\n if (depth === 0) {\n return []\n }\n return [\n '.',\n ...(await readdir('src', { recursive: depth > 1, withFileTypes: true }))\n .filter((file) => file.isDirectory())\n .map((file) => {\n const pathParts = file.path.split('/')\n pathParts.shift()\n if (pathParts.length) {\n const root = pathParts.join('/')\n return `${root}/${file.name}`\n } else {\n return file.name\n }\n }),\n ]\n}\n\nconst getDistTypeFiles = async () => {\n return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts')).map((file) => `dist/${file}`)\n}\n\nconst getDistTypeMapFiles = async () => {\n return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts.map')).map((file) => `dist/${file}`)\n}\n\nconst buildIt = async (pkg: PackageJsonEx, compileDepth: number) => {\n const inputDirs = await getInputDirs(compileDepth)\n\n const pkgType = pkg.type ?? 'commonjs'\n\n const esmExt = pkgType === 'module' ? 'js' : 'mjs'\n const cjsExt = pkgType === 'commonjs' ? 'js' : 'cjs'\n\n const rollupResult = inputDirs.length\n ? await Promise.all(\n inputDirs.map(async (inputDir) => {\n return (await rollItUp('esm', esmExt, inputDir)) + (await rollItUp('cjs', cjsExt, inputDir))\n }),\n )\n : [(await rollItUp('esm', esmExt)) + (await rollItUp('cjs', cjsExt))]\n\n //hybrid packages want two copies of the types\n const distTypeFiles = await getDistTypeFiles()\n await Promise.all(\n distTypeFiles.map(async (file) => {\n await copyFile(file, file.replace('d.ts', 'd.mts'))\n }),\n )\n\n const distTypeMapFiles = await getDistTypeMapFiles()\n await Promise.all(\n distTypeMapFiles.map(async (file) => {\n await copyFile(file, file.replace('d.ts.map', 'd.mts.map'))\n }),\n )\n\n return rollupResult.reduce((prev, item) => prev + item, 0)\n}\n\nexport const packageCompile = async ({ publint = true, verbose }: CompilePackageParams = { verbose: false }) => {\n const xyConfig = await cosmiconfig('xy').search()\n const compileDepth: number = xyConfig?.config.compile?.depth ?? 0\n const pkgName = process.env.npm_package_name\n if (verbose) {\n console.log(chalk.green(`Compiling ${pkgName} Start`))\n }\n const result = (await buildIt(await loadPackageConfig(), compileDepth)) + (publint ? await packagePublint() : 0)\n if (result) {\n const input = await getInputs()\n console.log(`Inputs: ${JSON.stringify(input, null, 2)}`)\n console.error(chalk.red(`Compiling ${pkgName} Failed [${result}]`))\n } else if (verbose) {\n console.log(chalk.green(`Compiling ${pkgName} Done`))\n }\n return result\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -65,8 +65,9 @@
65
65
  "@types/yargs": "^17.0.24",
66
66
  "@typescript-eslint/eslint-plugin": "^6.7.0",
67
67
  "@typescript-eslint/parser": "^6.7.0",
68
- "@xylabs/tsconfig": "~3.0.4",
68
+ "@xylabs/tsconfig": "~3.0.5",
69
69
  "chalk": "^4.1.2",
70
+ "cosmiconfig": "^8.3.6",
70
71
  "cpy": "^8.1.2",
71
72
  "depcheck": "^1.4.6",
72
73
  "eslint": "^8.49.0",
@@ -108,8 +109,8 @@
108
109
  "@types/license-checker": "^25.0.4",
109
110
  "@types/lodash": "^4.14.198",
110
111
  "@types/parse-git-config": "^3.0.1",
111
- "@xylabs/eslint-config": "^3.0.4",
112
- "@xylabs/tsconfig": "^3.0.4",
112
+ "@xylabs/eslint-config": "^3.0.5",
113
+ "@xylabs/tsconfig": "^3.0.5",
113
114
  "publint": "^0.2.2",
114
115
  "tsup": "^7.2.0",
115
116
  "typescript": "^5.2.2"
@@ -167,5 +168,5 @@
167
168
  "package-clean": "echo Not cleaning..."
168
169
  },
169
170
  "sideEffects": false,
170
- "version": "3.0.4"
171
+ "version": "3.0.5"
171
172
  }
@@ -1,6 +1,7 @@
1
1
  import commonjs from '@rollup/plugin-commonjs'
2
2
  import typescript from '@rollup/plugin-typescript'
3
3
  import chalk from 'chalk'
4
+ import { cosmiconfig } from 'cosmiconfig'
4
5
  import { copyFile, readdir } from 'fs/promises'
5
6
  import { OutputOptions, rollup, RollupLog, RollupOptions, watch } from 'rollup'
6
7
  import externalDeps from 'rollup-plugin-exclude-dependencies-from-bundle'
@@ -15,15 +16,16 @@ export interface CompilePackageParams {
15
16
  }
16
17
 
17
18
  const rollItUp = async (format: 'cjs' | 'esm', ext: string, subDir?: string) => {
18
- const input = await getInputs(subDir)
19
+ const dir = subDir === '.' ? undefined : subDir
20
+ const input = await getInputs(dir)
19
21
  const tsPlugIn = typescript({
20
22
  baseUrl: 'src',
21
- declaration: !subDir,
22
- declarationMap: !subDir,
23
+ declaration: !dir || !subDir,
24
+ declarationMap: !dir || !subDir,
23
25
  emitDeclarationOnly: false,
24
26
  esModuleInterop: true,
25
27
  exclude: ['**/*.spec.*', 'dist', 'docs', 'node_modules', 'packages'],
26
- outDir: subDir ? `dist/${subDir}` : 'dist',
28
+ outDir: dir ? `dist/${dir}` : 'dist',
27
29
  rootDir: 'src',
28
30
  tsconfig: 'tsconfig.json',
29
31
  })
@@ -34,9 +36,12 @@ const rollItUp = async (format: 'cjs' | 'esm', ext: string, subDir?: string) =>
34
36
  const debugs: RollupLog[] = []
35
37
 
36
38
  const options: RollupOptions = {
37
- input: input.map((file) => `./src/${file}`),
39
+ input: subDir ? input.map((file) => `./src/${file}`) : ['./src/index.ts'],
38
40
  logLevel: 'warn',
39
41
  onLog: (level, log, defaultHandler) => {
42
+ if (log.code === 'EMPTY_BUNDLE') {
43
+ return defaultHandler(level, log)
44
+ }
40
45
  switch (level) {
41
46
  case 'warn': {
42
47
  warnings.push(log)
@@ -59,14 +64,14 @@ const rollItUp = async (format: 'cjs' | 'esm', ext: string, subDir?: string) =>
59
64
  break
60
65
  }
61
66
  }
62
- console.log(`Log: ${level}: ${log.cause}`)
67
+ console.log(`Log: ${level}: ${log.message}`)
63
68
  return defaultHandler(level, log)
64
69
  },
65
70
  plugins: [commonjs(), externalDeps(), nodeExternals(), tsPlugIn],
66
71
  }
67
72
 
68
73
  const outputOptions: OutputOptions = {
69
- dir: subDir ? `dist/${subDir}` : 'dist',
74
+ dir: dir ? `dist/${dir}` : 'dist',
70
75
  dynamicImportInCjs: true,
71
76
  entryFileNames: (chunkInfo) => `${chunkInfo.name}.${ext}`,
72
77
  format,
@@ -86,10 +91,13 @@ const getInputs = async (subDir?: string) => {
86
91
  .map((file) => (subDir ? `${subDir}/${file}` : file))
87
92
  }
88
93
 
89
- const getInputDirs = async () => {
94
+ const getInputDirs = async (depth: number) => {
95
+ if (depth === 0) {
96
+ return []
97
+ }
90
98
  return [
91
- undefined,
92
- ...(await readdir('src', { recursive: true, withFileTypes: true }))
99
+ '.',
100
+ ...(await readdir('src', { recursive: depth > 1, withFileTypes: true }))
93
101
  .filter((file) => file.isDirectory())
94
102
  .map((file) => {
95
103
  const pathParts = file.path.split('/')
@@ -112,19 +120,21 @@ const getDistTypeMapFiles = async () => {
112
120
  return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts.map')).map((file) => `dist/${file}`)
113
121
  }
114
122
 
115
- const buildIt = async (pkg: PackageJsonEx) => {
116
- const inputDirs = await getInputDirs()
123
+ const buildIt = async (pkg: PackageJsonEx, compileDepth: number) => {
124
+ const inputDirs = await getInputDirs(compileDepth)
117
125
 
118
126
  const pkgType = pkg.type ?? 'commonjs'
119
127
 
120
128
  const esmExt = pkgType === 'module' ? 'js' : 'mjs'
121
129
  const cjsExt = pkgType === 'commonjs' ? 'js' : 'cjs'
122
130
 
123
- const rollupResult = await Promise.all(
124
- inputDirs.map(async (inputDir) => {
125
- return await rollItUp('esm', esmExt, inputDir) + await rollItUp('cjs', cjsExt, inputDir)
126
- }),
127
- )
131
+ const rollupResult = inputDirs.length
132
+ ? await Promise.all(
133
+ inputDirs.map(async (inputDir) => {
134
+ return (await rollItUp('esm', esmExt, inputDir)) + (await rollItUp('cjs', cjsExt, inputDir))
135
+ }),
136
+ )
137
+ : [(await rollItUp('esm', esmExt)) + (await rollItUp('cjs', cjsExt))]
128
138
 
129
139
  //hybrid packages want two copies of the types
130
140
  const distTypeFiles = await getDistTypeFiles()
@@ -145,11 +155,13 @@ const buildIt = async (pkg: PackageJsonEx) => {
145
155
  }
146
156
 
147
157
  export const packageCompile = async ({ publint = true, verbose }: CompilePackageParams = { verbose: false }) => {
158
+ const xyConfig = await cosmiconfig('xy').search()
159
+ const compileDepth: number = xyConfig?.config.compile?.depth ?? 0
148
160
  const pkgName = process.env.npm_package_name
149
161
  if (verbose) {
150
162
  console.log(chalk.green(`Compiling ${pkgName} Start`))
151
163
  }
152
- const result = (await buildIt(await loadPackageConfig())) + (publint ? await packagePublint() : 0)
164
+ const result = (await buildIt(await loadPackageConfig(), compileDepth)) + (publint ? await packagePublint() : 0)
153
165
  if (result) {
154
166
  const input = await getInputs()
155
167
  console.log(`Inputs: ${JSON.stringify(input, null, 2)}`)