jiek 1.1.5 → 1.1.7-alpha.1

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/bin/jiek.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { existsSync } from 'node:fs'
3
- import { resolve, dirname } from 'node:path'
4
3
  import { createRequire } from 'node:module'
4
+ import { dirname, resolve } from 'node:path'
5
5
 
6
6
  const __dirname = dirname(import.meta.url.replace('file://', ''))
7
7
  if (existsSync(resolve(__dirname, '../.jiek-dev-tag'))) {
package/dist/cli.cjs CHANGED
@@ -89,19 +89,33 @@ try {
89
89
  } catch {
90
90
  }
91
91
  if (type$1 !== "") {
92
- commander.program.option("-f, --filter <filter>", "filter packages");
92
+ commander.program.option("-f, --filter <filter>", "filter packages, support fuzzy match and array. e.g. -f core,utils");
93
93
  }
94
- async function getSelectedProjectsGraph() {
95
- let filter = commander.program.getOptionValue("filter");
96
- const root = getRoot();
94
+ function filterPackagesGraph(filters) {
95
+ return Promise.all(filters.map(async (filter) => getSelectedProjectsGraph(filter)));
96
+ }
97
+ async function getSelectedProjectsGraph(filter = commander.program.getOptionValue("filter")) {
98
+ let root = getRoot();
97
99
  const { wd, notWorkspace } = getWD();
98
- if (!notWorkspace && type$1 === "pnpm") {
100
+ if (notWorkspace) {
101
+ return {
102
+ wd,
103
+ root,
104
+ value: {
105
+ [wd]: JSON.parse(fs__default.default.readFileSync(path__default.default.resolve(wd, "package.json"), "utf-8"))
106
+ }
107
+ };
108
+ }
109
+ if (type$1 === "pnpm") {
99
110
  const pnpmWorkspaceFilePath = path__default.default.resolve(wd, "pnpm-workspace.yaml");
100
111
  const pnpmWorkspaceFileContent = fs__default.default.readFileSync(pnpmWorkspaceFilePath, "utf-8");
101
112
  const pnpmWorkspace = jsYaml.load(pnpmWorkspaceFileContent);
102
113
  if (root === wd && !filter) {
103
114
  throw new Error("root path is workspace root, please provide a filter");
104
115
  }
116
+ if (root === void 0) {
117
+ root = process.cwd();
118
+ }
105
119
  if (root !== wd && !filter) {
106
120
  const packageJSONIsExist = fs__default.default.existsSync(path__default.default.resolve(root, "package.json"));
107
121
  if (!packageJSONIsExist) {
@@ -130,18 +144,12 @@ async function getSelectedProjectsGraph() {
130
144
  }, {})
131
145
  };
132
146
  }
133
- return {
134
- wd,
135
- root,
136
- value: {
137
- [wd]: JSON.parse(fs__default.default.readFileSync(path__default.default.resolve(wd, "package.json"), "utf-8"))
138
- }
139
- };
147
+ throw new Error(`not supported package manager ${type$1}`);
140
148
  }
141
149
 
142
150
  var name = "jiek";
143
151
  var type = "module";
144
- var version = "1.1.4";
152
+ var version = "1.1.7-alpha.1";
145
153
  var description$1 = "YiJie's personal kits.";
146
154
  var bin = {
147
155
  jiek: "bin/jiek.js",
@@ -163,6 +171,9 @@ var typesVersions = {
163
171
  ]
164
172
  }
165
173
  };
174
+ var scripts = {
175
+ prepublish: "jk build"
176
+ };
166
177
  var exports$1 = {
167
178
  "./package.json": "./package.json",
168
179
  ".": "./src/index.ts",
@@ -188,7 +199,7 @@ var dependencies = {
188
199
  inquirer: "^8.2.6",
189
200
  "js-yaml": "^4.1.0",
190
201
  "jsonc-parser": "^3.2.1",
191
- rollup: "^4.1.5",
202
+ rollup: "4.13.2",
192
203
  "rollup-plugin-esbuild": "^6.1.0",
193
204
  typescript: "^5.0.0"
194
205
  };
@@ -212,6 +223,28 @@ var devDependencies = {
212
223
  postcss: "^8.4.47",
213
224
  "rollup-plugin-postcss": "^4.0.2"
214
225
  };
226
+ var publishConfig = {
227
+ exports: {
228
+ "./package.json": "./package.json",
229
+ ".": {
230
+ source: "./src/index.ts",
231
+ require: "./dist/index.cjs",
232
+ "default": "./dist/index.js"
233
+ },
234
+ "./cli": {
235
+ source: "./src/cli.ts",
236
+ require: "./dist/cli.cjs",
237
+ "default": "./dist/cli.js"
238
+ },
239
+ "./rollup": {
240
+ source: "./src/rollup/index.ts",
241
+ require: "./dist/rollup/index.cjs",
242
+ "default": "./dist/rollup/index.js"
243
+ }
244
+ },
245
+ main: "./dist/index.cjs",
246
+ module: "./dist/index.js"
247
+ };
215
248
  var pkg = {
216
249
  name: name,
217
250
  type: type,
@@ -220,11 +253,13 @@ var pkg = {
220
253
  bin: bin,
221
254
  files: files,
222
255
  typesVersions: typesVersions,
256
+ scripts: scripts,
223
257
  exports: exports$1,
224
258
  imports: imports,
225
259
  dependencies: dependencies,
226
260
  optionalDependencies: optionalDependencies,
227
- devDependencies: devDependencies
261
+ devDependencies: devDependencies,
262
+ publishConfig: publishConfig
228
263
  };
229
264
 
230
265
  commander.program.version(pkg.version).description(pkg.description).option("--root <root>", "root path").option("-c, --config-path <configPath>", "config path");
@@ -360,122 +395,133 @@ commander.program.command("build").description(description).option("-s, --silent
360
395
  actionRestore();
361
396
  const { build } = loadConfig();
362
397
  silent = silent ?? build?.silent ?? false;
363
- const {
364
- wd,
365
- value = {}
366
- } = await getSelectedProjectsGraph() ?? {};
367
- if (Object.keys(value).length === 0) {
368
- throw new Error("no package found");
369
- }
370
- const wdNodeModules = path__default.default.resolve(wd, "node_modules");
371
- if (!fs__default.default.existsSync(wdNodeModules)) {
372
- fs__default.default.mkdirSync(wdNodeModules);
373
- }
374
- const jiekTempDir = (...paths) => path__default.default.resolve(wdNodeModules, ".jiek", ...paths);
375
- if (!fs__default.default.existsSync(jiekTempDir())) {
376
- fs__default.default.mkdirSync(jiekTempDir());
377
- }
378
- const rollupBinaryPath = require$1.resolve("rollup").replace(/dist\/rollup.js$/, "dist/bin/rollup");
379
398
  const multiBars = new cliProgress.MultiBar({
380
399
  clearOnComplete: false,
381
400
  hideCursor: true,
382
- format: "- {bar} | {status} | {input} | {message}"
401
+ format: "- {bar} | {status} | {pkgName} | {input} | {message}"
383
402
  }, cliProgress.Presets.shades_classic);
384
- let i = 0;
385
- await Promise.all(
386
- Object.entries(value).map(async ([dir, manifest]) => {
387
- const escapeManifestName = manifest.name?.replace(/^@/g, "").replace(/\//g, "+");
388
- const configFile = jiekTempDir(
389
- `${escapeManifestName ?? `anonymous-${i++}`}.rollup.config.js`
390
- );
391
- fs__default.default.writeFileSync(configFile, FILE_TEMPLATE(manifest));
392
- let prefix = "";
393
- if (tsRegisterName) {
394
- prefix = `node -r ${tsRegisterName} `;
395
- }
396
- const command = `${prefix}${rollupBinaryPath} --silent -c ${configFile}`;
397
- const child = execa.execaCommand(command, {
398
- ipc: true,
399
- cwd: dir,
400
- env: {
401
- ...process.env,
402
- JIEK_ROOT: wd,
403
- JIEK_ENTRIES: entries,
404
- JIEK_WITHOUT_JS: String(withoutJs),
405
- JIEK_WITHOUT_DTS: String(withoutDts)
403
+ const buildPackage = async ({
404
+ wd,
405
+ value = {}
406
+ }) => {
407
+ if (Object.keys(value).length === 0) {
408
+ throw new Error("no package found");
409
+ }
410
+ const wdNodeModules = path__default.default.resolve(wd, "node_modules");
411
+ if (!fs__default.default.existsSync(wdNodeModules)) {
412
+ fs__default.default.mkdirSync(wdNodeModules);
413
+ }
414
+ const jiekTempDir = (...paths) => path__default.default.resolve(wdNodeModules, ".jiek", ...paths);
415
+ if (!fs__default.default.existsSync(jiekTempDir())) {
416
+ fs__default.default.mkdirSync(jiekTempDir());
417
+ }
418
+ const rollupBinaryPath = require$1.resolve("rollup").replace(/dist\/rollup.js$/, "dist/bin/rollup");
419
+ let i = 0;
420
+ await Promise.all(
421
+ Object.entries(value).map(async ([dir, manifest]) => {
422
+ const escapeManifestName = manifest.name?.replace(/^@/g, "").replace(/\//g, "+");
423
+ const configFile = jiekTempDir(
424
+ `${escapeManifestName ?? `anonymous-${i++}`}.rollup.config.js`
425
+ );
426
+ fs__default.default.writeFileSync(configFile, FILE_TEMPLATE(manifest));
427
+ let prefix = "";
428
+ if (tsRegisterName) {
429
+ prefix = `node -r ${tsRegisterName} `;
406
430
  }
407
- });
408
- const bars = {};
409
- let inputMaxLen = 10;
410
- child.on("message", (e) => {
411
- if (e.type === "debug")
412
- console.log(...Array.isArray(e.data) ? e.data : [e.data]);
413
- });
414
- !silent && child.on("message", (e) => {
415
- if (e.type === "init") {
416
- const { leafMap, targetsLength } = e.data;
417
- const leafs = Array.from(leafMap.entries()).flatMap(
418
- ([input, pathAndCondiions]) => pathAndCondiions.map(([path2, ...conditions]) => ({
419
- input,
431
+ const command = `${prefix}${rollupBinaryPath} --silent -c ${configFile}`;
432
+ const child = execa.execaCommand(command, {
433
+ ipc: true,
434
+ cwd: dir,
435
+ env: {
436
+ ...process.env,
437
+ JIEK_ROOT: wd,
438
+ JIEK_ENTRIES: entries,
439
+ JIEK_WITHOUT_JS: String(withoutJs),
440
+ JIEK_WITHOUT_DTS: String(withoutDts)
441
+ }
442
+ });
443
+ const bars = {};
444
+ let inputMaxLen = 10;
445
+ child.on("message", (e) => {
446
+ if (e.type === "debug")
447
+ console.log(...Array.isArray(e.data) ? e.data : [e.data]);
448
+ });
449
+ !silent && child.on("message", (e) => {
450
+ if (e.type === "init") {
451
+ const { leafMap, targetsLength } = e.data;
452
+ const leafs = Array.from(leafMap.entries()).flatMap(
453
+ ([input, pathAndCondiions]) => pathAndCondiions.map(([path2, ...conditions]) => ({
454
+ input,
455
+ path: path2,
456
+ conditions
457
+ }))
458
+ );
459
+ console.log(`Package '${manifest.name}' has ${targetsLength} targets to build`);
460
+ leafs.forEach(({ input }) => {
461
+ inputMaxLen = Math.max(inputMaxLen, input.length);
462
+ });
463
+ leafs.forEach(({ input, path: path2 }) => {
464
+ const key = `${input}:${path2}`;
465
+ if (bars[key])
466
+ return;
467
+ bars[key] = multiBars.create(50, 0, {
468
+ pkgName: manifest.name,
469
+ input: input.padEnd(inputMaxLen),
470
+ status: "waiting".padEnd(10)
471
+ }, {
472
+ barsize: 20,
473
+ linewrap: true
474
+ });
475
+ });
476
+ }
477
+ if (e.type === "progress") {
478
+ const {
420
479
  path: path2,
421
- conditions
422
- }))
423
- );
424
- console.log(`Package '${manifest.name}' has ${targetsLength} targets to build`);
425
- leafs.forEach(({ input }) => {
426
- inputMaxLen = Math.max(inputMaxLen, input.length);
427
- });
428
- leafs.forEach(({ input, path: path2 }) => {
429
- const key = `${input}:${path2}`;
430
- if (bars[key])
480
+ tags,
481
+ input,
482
+ event,
483
+ message
484
+ } = e.data;
485
+ const bar = bars[`${input}:${path2}`];
486
+ if (!bar)
431
487
  return;
432
- bars[key] = multiBars.create(50, 0, {
433
- input: input.padEnd(inputMaxLen),
434
- status: "waiting".padEnd(10)
435
- }, {
436
- barsize: 20,
437
- linewrap: true
438
- });
439
- });
440
- }
441
- if (e.type === "progress") {
442
- const {
443
- path: path2,
444
- tags,
445
- input,
446
- event,
447
- message
448
- } = e.data;
449
- const bar = bars[`${input}:${path2}`];
450
- if (!bar)
451
- return;
452
- bar.update(
453
- {
454
- start: 0,
455
- resolve: 20,
456
- end: 50
457
- }[event ?? "start"] ?? 0,
458
- {
459
- input: input.padEnd(inputMaxLen),
460
- status: event?.padEnd(10),
461
- message: `${tags?.join(", ")}: ${message}`
462
- }
463
- );
464
- }
465
- });
466
- await new Promise((resolve, reject) => {
467
- let errorStr = "";
468
- child.stderr?.on("data", (data) => {
469
- errorStr += data;
488
+ bar.update(
489
+ {
490
+ start: 0,
491
+ resolve: 20,
492
+ end: 50
493
+ }[event ?? "start"] ?? 0,
494
+ {
495
+ input: input.padEnd(inputMaxLen),
496
+ status: event?.padEnd(10),
497
+ message: `${tags?.join(", ")}: ${message}`
498
+ }
499
+ );
500
+ }
470
501
  });
471
- child.once("exit", (code) => code === 0 ? resolve() : reject(new Error(`rollup build failed:
502
+ await new Promise((resolve, reject) => {
503
+ let errorStr = "";
504
+ child.stderr?.on("data", (data) => {
505
+ errorStr += data;
506
+ });
507
+ child.once("exit", (code) => code === 0 ? resolve() : reject(new Error(`rollup build failed:
472
508
  ${errorStr}`)));
473
- verbose && child.stdout?.pipe(process.stdout);
474
- });
475
- })
476
- ).finally(() => {
509
+ verbose && child.stdout?.pipe(process.stdout);
510
+ });
511
+ })
512
+ );
513
+ };
514
+ const filters = commander.program.getOptionValue("filter")?.split(",");
515
+ try {
516
+ if (filters) {
517
+ const packages = await filterPackagesGraph(filters);
518
+ await Promise.all(packages.map(buildPackage));
519
+ } else {
520
+ await buildPackage(await getSelectedProjectsGraph());
521
+ }
522
+ } finally {
477
523
  multiBars.stop();
478
- });
524
+ }
479
525
  actionDone();
480
526
  });
481
527
 
@@ -5041,7 +5087,11 @@ commander.program.command("publish").aliases(["pub", "p"]).option("-b, --bumper
5041
5087
  console.warn("preview mode");
5042
5088
  continue;
5043
5089
  }
5044
- childProcess__namespace.execSync(["pnpm", "publish", "--access", "public", "--no-git-checks", ...passArgs].join(" "), {
5090
+ const args = ["pnpm", "publish", "--access", "public", "--no-git-checks", ...passArgs];
5091
+ if (bumper$1 && bumper.TAGS.includes(bumper$1)) {
5092
+ args.push("--tag", bumper$1);
5093
+ }
5094
+ childProcess__namespace.execSync(args.join(" "), {
5045
5095
  cwd: dir,
5046
5096
  stdio: "inherit"
5047
5097
  });