@icebreakers/monorepo 1.1.8 → 1.2.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/assets/package.json +1 -1
- package/dist/{chunk-EHVQVCB2.js → chunk-EBATUF3S.js} +169 -105
- package/dist/cli.cjs +117 -113
- package/dist/cli.js +10 -71
- package/dist/index.cjs +156 -100
- package/dist/index.d.cts +10 -3
- package/dist/index.d.ts +10 -3
- package/dist/index.js +3 -3
- package/package.json +3 -1
- package/templates/tsup-template/package.json +0 -42
- package/templates/tsup-template/src/index.ts +0 -12
- package/templates/tsup-template/test/index.test.ts +0 -7
- package/templates/tsup-template/tsconfig.json +0 -15
- package/templates/tsup-template/tsup.config.ts +0 -18
- package/templates/tsup-template/vitest.config.ts +0 -15
- package/templates/unbuild-template/build.config.ts +0 -24
- package/templates/unbuild-template/package.json +0 -42
- package/templates/unbuild-template/src/index.ts +0 -9
- package/templates/unbuild-template/src/utils.ts +0 -3
- package/templates/unbuild-template/test/index.test.ts +0 -7
- package/templates/unbuild-template/tsconfig.json +0 -15
- package/templates/unbuild-template/vitest.config.ts +0 -15
- package/templates/vue-lib-template/eslint.config.js +0 -12
- package/templates/vue-lib-template/index.html +0 -13
- package/templates/vue-lib-template/lib/HelloWorld.vue +0 -21
- package/templates/vue-lib-template/lib/index.ts +0 -3
- package/templates/vue-lib-template/package.json +0 -61
- package/templates/vue-lib-template/src/App.vue +0 -9
- package/templates/vue-lib-template/src/main.ts +0 -8
- package/templates/vue-lib-template/src/pages/index.vue +0 -7
- package/templates/vue-lib-template/src/router/index.ts +0 -11
- package/templates/vue-lib-template/src/style.css +0 -1
- package/templates/vue-lib-template/src/vite-env.d.ts +0 -2
- package/templates/vue-lib-template/test/index.test.ts +0 -13
- package/templates/vue-lib-template/tsconfig.app.json +0 -30
- package/templates/vue-lib-template/tsconfig.json +0 -14
- package/templates/vue-lib-template/tsconfig.node.json +0 -25
- package/templates/vue-lib-template/tsconfig.test.json +0 -40
- package/templates/vue-lib-template/vite.config.ts +0 -47
- package/templates/vue-lib-template/vite.shared.config.ts +0 -13
- package/templates/vue-lib-template/vitest.config.ts +0 -13
package/dist/index.cjs
CHANGED
|
@@ -190,9 +190,9 @@ var require_set_value = __commonJS({
|
|
|
190
190
|
}
|
|
191
191
|
return obj;
|
|
192
192
|
};
|
|
193
|
-
var setValue = (target,
|
|
194
|
-
if (!
|
|
195
|
-
const keys = split2(
|
|
193
|
+
var setValue = (target, path12, value, options) => {
|
|
194
|
+
if (!path12 || !isObject2(target)) return target;
|
|
195
|
+
const keys = split2(path12, options);
|
|
196
196
|
let obj = target;
|
|
197
197
|
for (let i = 0; i < keys.length; i++) {
|
|
198
198
|
const key = keys[i];
|
|
@@ -227,6 +227,7 @@ var index_exports = {};
|
|
|
227
227
|
__export(index_exports, {
|
|
228
228
|
GitClient: () => GitClient,
|
|
229
229
|
cleanProjects: () => cleanProjects,
|
|
230
|
+
createNewProject: () => createNewProject,
|
|
230
231
|
escapeStringRegexp: () => escapeStringRegexp,
|
|
231
232
|
getFileHash: () => getFileHash,
|
|
232
233
|
getWorkspaceData: () => getWorkspaceData,
|
|
@@ -234,7 +235,6 @@ __export(index_exports, {
|
|
|
234
235
|
init: () => init,
|
|
235
236
|
isFileChanged: () => isFileChanged,
|
|
236
237
|
isMatch: () => isMatch,
|
|
237
|
-
setPkgJson: () => setPkgJson,
|
|
238
238
|
setVscodeBinaryMirror: () => setVscodeBinaryMirror,
|
|
239
239
|
syncNpmMirror: () => syncNpmMirror,
|
|
240
240
|
upgradeMonorepo: () => upgradeMonorepo
|
|
@@ -392,6 +392,80 @@ async function cleanProjects(cwd) {
|
|
|
392
392
|
});
|
|
393
393
|
}
|
|
394
394
|
|
|
395
|
+
// src/monorepo/create.ts
|
|
396
|
+
init_cjs_shims();
|
|
397
|
+
var import_node_process = __toESM(require("process"), 1);
|
|
398
|
+
var import_fs_extra2 = __toESM(require("fs-extra"), 1);
|
|
399
|
+
var import_pathe3 = __toESM(require("pathe"), 1);
|
|
400
|
+
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
401
|
+
var import_set_value2 = __toESM(require_set_value(), 1);
|
|
402
|
+
|
|
403
|
+
// src/constants.ts
|
|
404
|
+
init_cjs_shims();
|
|
405
|
+
var import_node_path = __toESM(require("path"), 1);
|
|
406
|
+
var import_node_url = require("url");
|
|
407
|
+
|
|
408
|
+
// package.json
|
|
409
|
+
var name = "@icebreakers/monorepo";
|
|
410
|
+
var version = "1.2.0";
|
|
411
|
+
|
|
412
|
+
// src/constants.ts
|
|
413
|
+
var __filename2 = (0, import_node_url.fileURLToPath)(importMetaUrl);
|
|
414
|
+
var __dirname = import_node_path.default.dirname(__filename2);
|
|
415
|
+
var templatesDir = import_node_path.default.join(__dirname, "../templates");
|
|
416
|
+
var assetsDir = import_node_path.default.join(__dirname, "../assets");
|
|
417
|
+
var rootDir = import_node_path.default.join(__dirname, "../../..");
|
|
418
|
+
|
|
419
|
+
// src/logger.ts
|
|
420
|
+
init_cjs_shims();
|
|
421
|
+
var import_consola = require("consola");
|
|
422
|
+
var logger = (0, import_consola.createConsola)();
|
|
423
|
+
|
|
424
|
+
// src/monorepo/create.ts
|
|
425
|
+
var defaultTemplate = "unbuild";
|
|
426
|
+
var fromMap = {
|
|
427
|
+
"tsup": "packages/tsup-template",
|
|
428
|
+
"unbuild": "packages/unbuild-template",
|
|
429
|
+
"vue-lib": "packages/vue-lib-template",
|
|
430
|
+
"hono-server": "apps/server",
|
|
431
|
+
"vue-hono": "apps/client",
|
|
432
|
+
"vitepress": "apps/website",
|
|
433
|
+
"cli": "apps/cli"
|
|
434
|
+
};
|
|
435
|
+
async function createNewProject(options) {
|
|
436
|
+
const { name: targetName, renameJson, cwd, type } = defu(options, {
|
|
437
|
+
cwd: import_node_process.default.cwd(),
|
|
438
|
+
name: fromMap[defaultTemplate],
|
|
439
|
+
renameJson: false
|
|
440
|
+
});
|
|
441
|
+
const bundlerName = type ?? defaultTemplate;
|
|
442
|
+
const from = import_pathe3.default.join(templatesDir, fromMap[bundlerName]);
|
|
443
|
+
const to = import_pathe3.default.join(cwd, targetName);
|
|
444
|
+
const filelist = await import_fs_extra2.default.readdir(from);
|
|
445
|
+
for (const filename of filelist) {
|
|
446
|
+
if (filename === "package.json") {
|
|
447
|
+
const sourceJsonPath = import_pathe3.default.resolve(from, filename);
|
|
448
|
+
const sourceJson = await import_fs_extra2.default.readJson(sourceJsonPath);
|
|
449
|
+
(0, import_set_value2.default)(sourceJson, "version", "0.0.0");
|
|
450
|
+
(0, import_set_value2.default)(sourceJson, "name", import_pathe3.default.basename(targetName));
|
|
451
|
+
await import_fs_extra2.default.outputJson(
|
|
452
|
+
import_pathe3.default.resolve(
|
|
453
|
+
to,
|
|
454
|
+
renameJson ? "package.mock.json" : filename
|
|
455
|
+
),
|
|
456
|
+
sourceJson,
|
|
457
|
+
{ spaces: 2 }
|
|
458
|
+
);
|
|
459
|
+
} else {
|
|
460
|
+
await import_fs_extra2.default.copy(
|
|
461
|
+
import_pathe3.default.resolve(from, filename),
|
|
462
|
+
import_pathe3.default.resolve(to, filename)
|
|
463
|
+
);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
logger.success(`${import_picocolors.default.bgGreenBright(import_picocolors.default.white(`[${bundlerName}]`))} ${targetName} \u9879\u76EE\u521B\u5EFA\u6210\u529F\uFF01`);
|
|
467
|
+
}
|
|
468
|
+
|
|
395
469
|
// src/monorepo/git/index.ts
|
|
396
470
|
init_cjs_shims();
|
|
397
471
|
|
|
@@ -406,11 +480,11 @@ var join = /* @__PURE__ */ __name((segs, joinChar, options) => {
|
|
|
406
480
|
}
|
|
407
481
|
return segs[0] + joinChar + segs[1];
|
|
408
482
|
}, "join");
|
|
409
|
-
var split = /* @__PURE__ */ __name((
|
|
483
|
+
var split = /* @__PURE__ */ __name((path12, splitChar, options) => {
|
|
410
484
|
if (typeof options.split === "function") {
|
|
411
|
-
return options.split(
|
|
485
|
+
return options.split(path12);
|
|
412
486
|
}
|
|
413
|
-
return
|
|
487
|
+
return path12.split(splitChar);
|
|
414
488
|
}, "split");
|
|
415
489
|
var isValid = /* @__PURE__ */ __name((key, target = {}, options) => {
|
|
416
490
|
if (typeof (options == null ? void 0 : options.isValid) === "function") {
|
|
@@ -421,27 +495,27 @@ var isValid = /* @__PURE__ */ __name((key, target = {}, options) => {
|
|
|
421
495
|
var isValidObject = /* @__PURE__ */ __name((v) => {
|
|
422
496
|
return isObject(v) || typeof v === "function";
|
|
423
497
|
}, "isValidObject");
|
|
424
|
-
var getValue = /* @__PURE__ */ __name((target,
|
|
498
|
+
var getValue = /* @__PURE__ */ __name((target, path12, options = {}) => {
|
|
425
499
|
if (!isObject(options)) {
|
|
426
500
|
options = { default: options };
|
|
427
501
|
}
|
|
428
502
|
if (!isValidObject(target)) {
|
|
429
503
|
return typeof options.default !== "undefined" ? options.default : target;
|
|
430
504
|
}
|
|
431
|
-
if (typeof
|
|
432
|
-
|
|
505
|
+
if (typeof path12 === "number") {
|
|
506
|
+
path12 = String(path12);
|
|
433
507
|
}
|
|
434
|
-
const pathIsArray = Array.isArray(
|
|
435
|
-
const pathIsString = typeof
|
|
508
|
+
const pathIsArray = Array.isArray(path12);
|
|
509
|
+
const pathIsString = typeof path12 === "string";
|
|
436
510
|
const splitChar = options.separator || ".";
|
|
437
511
|
const joinChar = options.joinChar || (typeof splitChar === "string" ? splitChar : ".");
|
|
438
512
|
if (!pathIsString && !pathIsArray) {
|
|
439
513
|
return target;
|
|
440
514
|
}
|
|
441
|
-
if (target[
|
|
442
|
-
return isValid(
|
|
515
|
+
if (target[path12] !== void 0) {
|
|
516
|
+
return isValid(path12, target, options) ? target[path12] : options.default;
|
|
443
517
|
}
|
|
444
|
-
const segs = pathIsArray ?
|
|
518
|
+
const segs = pathIsArray ? path12 : split(path12, splitChar, options);
|
|
445
519
|
const len = segs.length;
|
|
446
520
|
let idx = 0;
|
|
447
521
|
do {
|
|
@@ -536,12 +610,12 @@ init_cjs_shims();
|
|
|
536
610
|
|
|
537
611
|
// src/monorepo/context/index.ts
|
|
538
612
|
init_cjs_shims();
|
|
539
|
-
var
|
|
613
|
+
var import_pathe4 = __toESM(require("pathe"), 1);
|
|
540
614
|
var import_types = require("@pnpm/types");
|
|
541
615
|
async function createContext(cwd) {
|
|
542
616
|
const git = new GitClient();
|
|
543
617
|
const { packages, workspaceDir } = await getWorkspaceData(cwd);
|
|
544
|
-
const workspaceFilepath =
|
|
618
|
+
const workspaceFilepath = import_pathe4.default.resolve(workspaceDir, "pnpm-workspace.yaml");
|
|
545
619
|
const gitUrl = await git.getGitUrl();
|
|
546
620
|
const gitUser = await git.getUser();
|
|
547
621
|
return {
|
|
@@ -557,20 +631,20 @@ async function createContext(cwd) {
|
|
|
557
631
|
|
|
558
632
|
// src/monorepo/init/setChangeset.ts
|
|
559
633
|
init_cjs_shims();
|
|
560
|
-
var
|
|
561
|
-
var
|
|
562
|
-
var
|
|
634
|
+
var import_fs_extra3 = __toESM(require("fs-extra"), 1);
|
|
635
|
+
var import_pathe5 = __toESM(require("pathe"), 1);
|
|
636
|
+
var import_set_value3 = __toESM(require_set_value(), 1);
|
|
563
637
|
async function setChangeset_default(ctx) {
|
|
564
638
|
const { gitUrl, workspaceFilepath } = ctx;
|
|
565
|
-
if (gitUrl && await
|
|
566
|
-
const changesetConfigPath =
|
|
567
|
-
if (await
|
|
568
|
-
const changesetConfig = await
|
|
639
|
+
if (gitUrl && await import_fs_extra3.default.exists(workspaceFilepath)) {
|
|
640
|
+
const changesetConfigPath = import_pathe5.default.resolve(import_pathe5.default.dirname(workspaceFilepath), ".changeset/config.json");
|
|
641
|
+
if (await import_fs_extra3.default.exists(changesetConfigPath)) {
|
|
642
|
+
const changesetConfig = await import_fs_extra3.default.readJson(
|
|
569
643
|
changesetConfigPath
|
|
570
644
|
);
|
|
571
645
|
if (gitUrl.full_name) {
|
|
572
|
-
(0,
|
|
573
|
-
await
|
|
646
|
+
(0, import_set_value3.default)(changesetConfig, "changelog.1.repo", gitUrl.full_name);
|
|
647
|
+
await import_fs_extra3.default.outputJson(changesetConfigPath, changesetConfig, { spaces: 2 });
|
|
574
648
|
}
|
|
575
649
|
}
|
|
576
650
|
}
|
|
@@ -578,16 +652,16 @@ async function setChangeset_default(ctx) {
|
|
|
578
652
|
|
|
579
653
|
// src/monorepo/init/setPkgJson.ts
|
|
580
654
|
init_cjs_shims();
|
|
581
|
-
var
|
|
582
|
-
var
|
|
583
|
-
var
|
|
655
|
+
var import_fs_extra4 = __toESM(require("fs-extra"), 1);
|
|
656
|
+
var import_pathe6 = __toESM(require("pathe"), 1);
|
|
657
|
+
var import_set_value4 = __toESM(require_set_value(), 1);
|
|
584
658
|
async function setPkgJson_default(ctx) {
|
|
585
659
|
const { gitUrl, gitUser, packages, cwd, workspaceFilepath } = ctx;
|
|
586
|
-
if (gitUrl && await
|
|
660
|
+
if (gitUrl && await import_fs_extra4.default.exists(workspaceFilepath)) {
|
|
587
661
|
for (const pkg of packages) {
|
|
588
662
|
const pkgJson = pkg.manifest;
|
|
589
|
-
const directory =
|
|
590
|
-
(0,
|
|
663
|
+
const directory = import_pathe6.default.relative(cwd, pkg.rootDir);
|
|
664
|
+
(0, import_set_value4.default)(pkgJson, "bugs.url", `https://github.com/${gitUrl.full_name}/issues`);
|
|
591
665
|
const repository = {
|
|
592
666
|
type: "git",
|
|
593
667
|
url: `git+https://github.com/${gitUrl.full_name}.git`
|
|
@@ -595,11 +669,11 @@ async function setPkgJson_default(ctx) {
|
|
|
595
669
|
if (directory) {
|
|
596
670
|
repository.directory = directory;
|
|
597
671
|
}
|
|
598
|
-
(0,
|
|
672
|
+
(0, import_set_value4.default)(pkgJson, "repository", repository);
|
|
599
673
|
if (gitUser) {
|
|
600
|
-
(0,
|
|
674
|
+
(0, import_set_value4.default)(pkgJson, "author", `${gitUser.name} <${gitUser.email}>`);
|
|
601
675
|
}
|
|
602
|
-
await
|
|
676
|
+
await import_fs_extra4.default.writeJSON(pkg.pkgJsonPath, pkgJson, {
|
|
603
677
|
spaces: 2
|
|
604
678
|
});
|
|
605
679
|
}
|
|
@@ -608,8 +682,8 @@ async function setPkgJson_default(ctx) {
|
|
|
608
682
|
|
|
609
683
|
// src/monorepo/init/setReadme.ts
|
|
610
684
|
init_cjs_shims();
|
|
611
|
-
var
|
|
612
|
-
var
|
|
685
|
+
var import_fs_extra5 = __toESM(require("fs-extra"), 1);
|
|
686
|
+
var import_pathe7 = __toESM(require("pathe"), 1);
|
|
613
687
|
async function getRows(ctx) {
|
|
614
688
|
const { packages, git, cwd } = ctx;
|
|
615
689
|
const gitUrl = await git.getGitUrl();
|
|
@@ -621,7 +695,7 @@ async function getRows(ctx) {
|
|
|
621
695
|
}
|
|
622
696
|
rows.push("## Packages\n");
|
|
623
697
|
for (const pkg of packages) {
|
|
624
|
-
const p =
|
|
698
|
+
const p = import_pathe7.default.relative(cwd, pkg.rootDirRealPath);
|
|
625
699
|
if (p) {
|
|
626
700
|
const description = pkg.manifest.description ? `- ${pkg.manifest.description}` : "";
|
|
627
701
|
rows.push(`- [${pkg.manifest.name}](${p}) ${description}`);
|
|
@@ -649,7 +723,7 @@ async function getRows(ctx) {
|
|
|
649
723
|
}
|
|
650
724
|
async function setReadme_default(ctx) {
|
|
651
725
|
const rows = await getRows(ctx);
|
|
652
|
-
await
|
|
726
|
+
await import_fs_extra5.default.writeFile(import_pathe7.default.resolve(ctx.cwd, "README.md"), `${rows.join("\n")}
|
|
653
727
|
`);
|
|
654
728
|
}
|
|
655
729
|
|
|
@@ -664,12 +738,12 @@ async function init(cwd) {
|
|
|
664
738
|
// src/monorepo/mirror/binaryMirror.ts
|
|
665
739
|
init_cjs_shims();
|
|
666
740
|
var import_comment_json = require("comment-json");
|
|
667
|
-
var
|
|
668
|
-
var
|
|
741
|
+
var import_fs_extra6 = __toESM(require("fs-extra"), 1);
|
|
742
|
+
var import_pathe8 = __toESM(require("pathe"), 1);
|
|
669
743
|
|
|
670
744
|
// src/monorepo/mirror/utils.ts
|
|
671
745
|
init_cjs_shims();
|
|
672
|
-
var
|
|
746
|
+
var import_set_value5 = __toESM(require_set_value(), 1);
|
|
673
747
|
|
|
674
748
|
// src/monorepo/mirror/sources.ts
|
|
675
749
|
init_cjs_shims();
|
|
@@ -708,18 +782,18 @@ function setMirror(obj) {
|
|
|
708
782
|
const prefix = "terminal.integrated.env";
|
|
709
783
|
if (typeof obj === "object" && obj) {
|
|
710
784
|
for (const platform of platforms) {
|
|
711
|
-
(0,
|
|
785
|
+
(0, import_set_value5.default)(obj, [prefix, platform].join(".").replaceAll(".", "\\."), chinaMirrorsEnvs);
|
|
712
786
|
}
|
|
713
787
|
}
|
|
714
788
|
}
|
|
715
789
|
|
|
716
790
|
// src/monorepo/mirror/binaryMirror.ts
|
|
717
791
|
async function setVscodeBinaryMirror(cwd) {
|
|
718
|
-
const targetJsonPath =
|
|
719
|
-
await
|
|
720
|
-
const json = (0, import_comment_json.parse)(await
|
|
792
|
+
const targetJsonPath = import_pathe8.default.resolve(cwd, ".vscode/settings.json");
|
|
793
|
+
await import_fs_extra6.default.ensureFile(targetJsonPath);
|
|
794
|
+
const json = (0, import_comment_json.parse)(await import_fs_extra6.default.readFile(targetJsonPath, "utf8"), void 0, false);
|
|
721
795
|
json && typeof json === "object" && setMirror(json);
|
|
722
|
-
await
|
|
796
|
+
await import_fs_extra6.default.writeFile(targetJsonPath, `${(0, import_comment_json.stringify)(json, void 0, 2)}
|
|
723
797
|
`, "utf8");
|
|
724
798
|
}
|
|
725
799
|
|
|
@@ -728,27 +802,20 @@ init_cjs_shims();
|
|
|
728
802
|
var import_node_os = __toESM(require("os"), 1);
|
|
729
803
|
var import_execa = require("execa");
|
|
730
804
|
var import_p_queue = __toESM(require("p-queue"), 1);
|
|
731
|
-
var
|
|
732
|
-
var
|
|
733
|
-
|
|
734
|
-
// src/logger.ts
|
|
735
|
-
init_cjs_shims();
|
|
736
|
-
var import_consola = require("consola");
|
|
737
|
-
var logger = (0, import_consola.createConsola)();
|
|
738
|
-
|
|
739
|
-
// src/monorepo/sync.ts
|
|
805
|
+
var import_pathe9 = __toESM(require("pathe"), 1);
|
|
806
|
+
var import_picocolors2 = __toESM(require("picocolors"), 1);
|
|
740
807
|
async function syncNpmMirror(cwd, options) {
|
|
741
808
|
const { packages, workspaceDir } = await getWorkspaceData(cwd, options);
|
|
742
809
|
logger.info(`[\u5F53\u524D\u5DE5\u4F5C\u533ARepo]:
|
|
743
|
-
${packages.map((x) => `- ${
|
|
810
|
+
${packages.map((x) => `- ${import_picocolors2.default.green(x.manifest.name)} : ${import_pathe9.default.relative(workspaceDir, x.rootDir)}`).join("\n")}
|
|
744
811
|
`);
|
|
745
|
-
const
|
|
812
|
+
const set7 = new Set(packages.map((x) => x.manifest.name));
|
|
746
813
|
logger.info(`[\u5373\u5C06\u540C\u6B65\u7684\u5305]:
|
|
747
|
-
${Array.from(
|
|
814
|
+
${Array.from(set7).map((x) => `- ${import_picocolors2.default.green(x)}`).join("\n")}
|
|
748
815
|
`);
|
|
749
816
|
const concurrency = Math.max(import_node_os.default.cpus().length, 1);
|
|
750
817
|
const queue2 = new import_p_queue.default({ concurrency });
|
|
751
|
-
for (const pkgName of
|
|
818
|
+
for (const pkgName of set7) {
|
|
752
819
|
if (pkgName) {
|
|
753
820
|
await queue2.add(async () => {
|
|
754
821
|
return (0, import_execa.execa)({
|
|
@@ -759,25 +826,17 @@ ${Array.from(set6).map((x) => `- ${import_picocolors.default.green(x)}`).join("\
|
|
|
759
826
|
}
|
|
760
827
|
}
|
|
761
828
|
|
|
762
|
-
// src/upgrade.ts
|
|
829
|
+
// src/monorepo/upgrade.ts
|
|
763
830
|
init_cjs_shims();
|
|
764
|
-
var
|
|
765
|
-
var import_node_url = require("url");
|
|
831
|
+
var import_node_process2 = __toESM(require("process"), 1);
|
|
766
832
|
var import_checkbox2 = __toESM(require("@inquirer/checkbox"), 1);
|
|
767
833
|
var import_confirm = __toESM(require("@inquirer/confirm"), 1);
|
|
768
|
-
var
|
|
834
|
+
var import_fs_extra7 = __toESM(require("fs-extra"), 1);
|
|
769
835
|
var import_klaw = __toESM(require("klaw"), 1);
|
|
770
836
|
var import_p_queue2 = __toESM(require("p-queue"), 1);
|
|
771
|
-
var
|
|
772
|
-
var
|
|
773
|
-
var
|
|
774
|
-
|
|
775
|
-
// src/constants.ts
|
|
776
|
-
init_cjs_shims();
|
|
777
|
-
|
|
778
|
-
// package.json
|
|
779
|
-
var name = "@icebreakers/monorepo";
|
|
780
|
-
var version = "1.1.8";
|
|
837
|
+
var import_pathe10 = __toESM(require("pathe"), 1);
|
|
838
|
+
var import_picocolors3 = __toESM(require("picocolors"), 1);
|
|
839
|
+
var import_set_value6 = __toESM(require_set_value(), 1);
|
|
781
840
|
|
|
782
841
|
// src/scripts.ts
|
|
783
842
|
init_cjs_shims();
|
|
@@ -859,11 +918,8 @@ function isMatch(str, arr) {
|
|
|
859
918
|
return false;
|
|
860
919
|
}
|
|
861
920
|
|
|
862
|
-
// src/upgrade.ts
|
|
921
|
+
// src/monorepo/upgrade.ts
|
|
863
922
|
var queue = new import_p_queue2.default({ concurrency: 1 });
|
|
864
|
-
var __filename2 = (0, import_node_url.fileURLToPath)(importMetaUrl);
|
|
865
|
-
var __dirname = import_pathe9.default.dirname(__filename2);
|
|
866
|
-
var assetsDir = import_pathe9.default.join(__dirname, "../assets");
|
|
867
923
|
function isWorkspace(version2) {
|
|
868
924
|
if (typeof version2 === "string") {
|
|
869
925
|
return version2.startsWith("workspace:");
|
|
@@ -876,32 +932,32 @@ function setPkgJson(sourcePkgJson, targetPkgJson) {
|
|
|
876
932
|
const devDeps = index_default(sourcePkgJson, "devDependencies", { default: {} });
|
|
877
933
|
const targetDeps = index_default(targetPkgJson, "dependencies", { default: {} });
|
|
878
934
|
const targetDevDeps = index_default(targetPkgJson, "devDependencies", { default: {} });
|
|
879
|
-
(0,
|
|
935
|
+
(0, import_set_value6.default)(targetPkgJson, "packageManager", packageManager);
|
|
880
936
|
Object.entries(deps).forEach((x) => {
|
|
881
937
|
if (!isWorkspace(targetDeps[x[0]])) {
|
|
882
|
-
(0,
|
|
938
|
+
(0, import_set_value6.default)(targetPkgJson, `dependencies.${x[0].replaceAll(".", "\\.")}`, x[1], { preservePaths: false });
|
|
883
939
|
}
|
|
884
940
|
});
|
|
885
941
|
Object.entries(devDeps).forEach((x) => {
|
|
886
942
|
if (x[0] === name) {
|
|
887
|
-
(0,
|
|
943
|
+
(0, import_set_value6.default)(targetPkgJson, `devDependencies.${x[0].replaceAll(".", "\\.")}`, `^${version}`, { preservePaths: false });
|
|
888
944
|
} else if (!isWorkspace(targetDevDeps[x[0]])) {
|
|
889
|
-
(0,
|
|
945
|
+
(0, import_set_value6.default)(targetPkgJson, `devDependencies.${x[0].replaceAll(".", "\\.")}`, x[1], { preservePaths: false });
|
|
890
946
|
}
|
|
891
947
|
});
|
|
892
948
|
for (const [k, v] of scriptsEntries) {
|
|
893
|
-
(0,
|
|
949
|
+
(0, import_set_value6.default)(targetPkgJson, `scripts.${k}`, v);
|
|
894
950
|
}
|
|
895
951
|
}
|
|
896
952
|
function confirmOverwrite(filename) {
|
|
897
|
-
return (0, import_confirm.default)({ message: `${
|
|
953
|
+
return (0, import_confirm.default)({ message: `${import_picocolors3.default.greenBright(filename)} \u6587\u4EF6\u5185\u5BB9\u53D1\u751F\u6539\u53D8,\u662F\u5426\u8986\u76D6?`, default: true });
|
|
898
954
|
}
|
|
899
955
|
async function upgradeMonorepo(opts) {
|
|
900
956
|
const { outDir, raw, interactive, cwd, skipOverwrite } = defu(opts, {
|
|
901
|
-
cwd:
|
|
957
|
+
cwd: import_node_process2.default.cwd(),
|
|
902
958
|
outDir: ""
|
|
903
959
|
});
|
|
904
|
-
const absOutDir =
|
|
960
|
+
const absOutDir = import_pathe10.default.isAbsolute(outDir) ? outDir : import_pathe10.default.join(cwd, outDir);
|
|
905
961
|
const gitClient = new GitClient({
|
|
906
962
|
baseDir: cwd
|
|
907
963
|
});
|
|
@@ -923,20 +979,20 @@ async function upgradeMonorepo(opts) {
|
|
|
923
979
|
});
|
|
924
980
|
for await (const file of (0, import_klaw.default)(assetsDir, {
|
|
925
981
|
filter(p) {
|
|
926
|
-
const str =
|
|
982
|
+
const str = import_pathe10.default.relative(assetsDir, p);
|
|
927
983
|
return isMatch(str, regexpArr);
|
|
928
984
|
}
|
|
929
985
|
})) {
|
|
930
986
|
await queue.add(async () => {
|
|
931
987
|
if (file.stats.isFile()) {
|
|
932
|
-
const relPath =
|
|
933
|
-
const targetPath =
|
|
934
|
-
const targetIsExisted = await
|
|
988
|
+
const relPath = import_pathe10.default.relative(assetsDir, file.path);
|
|
989
|
+
const targetPath = import_pathe10.default.resolve(absOutDir, relPath);
|
|
990
|
+
const targetIsExisted = await import_fs_extra7.default.exists(targetPath);
|
|
935
991
|
async function overwriteOrCopy(target) {
|
|
936
992
|
let isOverwrite = true;
|
|
937
993
|
if (targetIsExisted) {
|
|
938
|
-
const src = await
|
|
939
|
-
const dest = target ?? await
|
|
994
|
+
const src = await import_fs_extra7.default.readFile(file.path);
|
|
995
|
+
const dest = target ?? await import_fs_extra7.default.readFile(targetPath);
|
|
940
996
|
if (await isFileChanged(src, dest)) {
|
|
941
997
|
isOverwrite = await confirmOverwrite(relPath);
|
|
942
998
|
}
|
|
@@ -948,25 +1004,25 @@ async function upgradeMonorepo(opts) {
|
|
|
948
1004
|
if (relPath === "package.json") {
|
|
949
1005
|
const sourcePath = file.path;
|
|
950
1006
|
if (targetIsExisted) {
|
|
951
|
-
const sourcePkgJson = await
|
|
952
|
-
const targetPkgJson = await
|
|
1007
|
+
const sourcePkgJson = await import_fs_extra7.default.readJson(sourcePath);
|
|
1008
|
+
const targetPkgJson = await import_fs_extra7.default.readJson(targetPath);
|
|
953
1009
|
setPkgJson(sourcePkgJson, targetPkgJson);
|
|
954
1010
|
const data = JSON.stringify(targetPkgJson, void 0, 2);
|
|
955
|
-
await
|
|
1011
|
+
await import_fs_extra7.default.outputFile(targetPath, `${data}
|
|
956
1012
|
`, "utf8");
|
|
957
1013
|
logger.success(targetPath);
|
|
958
1014
|
}
|
|
959
1015
|
} else if (relPath === ".changeset/config.json" && repoName) {
|
|
960
|
-
const changesetJson = await
|
|
961
|
-
(0,
|
|
1016
|
+
const changesetJson = await import_fs_extra7.default.readJson(file.path);
|
|
1017
|
+
(0, import_set_value6.default)(changesetJson, "changelog.1.repo", repoName);
|
|
962
1018
|
const data = JSON.stringify(changesetJson, void 0, 2);
|
|
963
1019
|
if (await overwriteOrCopy(data)) {
|
|
964
|
-
await
|
|
1020
|
+
await import_fs_extra7.default.outputFile(targetPath, `${data}
|
|
965
1021
|
`, "utf8");
|
|
966
1022
|
logger.success(targetPath);
|
|
967
1023
|
}
|
|
968
1024
|
} else if (await overwriteOrCopy()) {
|
|
969
|
-
await
|
|
1025
|
+
await import_fs_extra7.default.copy(
|
|
970
1026
|
file.path,
|
|
971
1027
|
targetPath
|
|
972
1028
|
);
|
|
@@ -980,6 +1036,7 @@ async function upgradeMonorepo(opts) {
|
|
|
980
1036
|
0 && (module.exports = {
|
|
981
1037
|
GitClient,
|
|
982
1038
|
cleanProjects,
|
|
1039
|
+
createNewProject,
|
|
983
1040
|
escapeStringRegexp,
|
|
984
1041
|
getFileHash,
|
|
985
1042
|
getWorkspaceData,
|
|
@@ -987,7 +1044,6 @@ async function upgradeMonorepo(opts) {
|
|
|
987
1044
|
init,
|
|
988
1045
|
isFileChanged,
|
|
989
1046
|
isMatch,
|
|
990
|
-
setPkgJson,
|
|
991
1047
|
setVscodeBinaryMirror,
|
|
992
1048
|
syncNpmMirror,
|
|
993
1049
|
upgradeMonorepo
|
package/dist/index.d.cts
CHANGED
|
@@ -2,9 +2,17 @@ import * as _pnpm_types from '@pnpm/types';
|
|
|
2
2
|
import * as simple_git from 'simple-git';
|
|
3
3
|
import { SimpleGitOptions, ConfigValues } from 'simple-git';
|
|
4
4
|
import gitUrlParse from 'git-url-parse';
|
|
5
|
-
import { PackageJson } from 'pkg-types';
|
|
6
5
|
import crypto from 'node:crypto';
|
|
7
6
|
|
|
7
|
+
type CreateNewProjectType = 'tsup' | 'unbuild' | 'vue-lib' | 'vitepress' | 'hono-server' | 'vue-hono' | 'cli';
|
|
8
|
+
interface CreateNewProjectOptions {
|
|
9
|
+
name?: string;
|
|
10
|
+
cwd?: string;
|
|
11
|
+
renameJson?: boolean;
|
|
12
|
+
type?: CreateNewProjectType;
|
|
13
|
+
}
|
|
14
|
+
declare function createNewProject(options?: CreateNewProjectOptions): Promise<void>;
|
|
15
|
+
|
|
8
16
|
interface GetWorkspacePackagesOptions {
|
|
9
17
|
ignoreRootPackage?: boolean;
|
|
10
18
|
ignorePrivatePackage?: boolean;
|
|
@@ -62,7 +70,6 @@ declare function setVscodeBinaryMirror(cwd: string): Promise<void>;
|
|
|
62
70
|
|
|
63
71
|
declare function syncNpmMirror(cwd: string, options?: GetWorkspacePackagesOptions): Promise<void>;
|
|
64
72
|
|
|
65
|
-
declare function setPkgJson(sourcePkgJson: PackageJson, targetPkgJson: PackageJson): void;
|
|
66
73
|
declare function upgradeMonorepo(opts: CliOpts): Promise<void>;
|
|
67
74
|
|
|
68
75
|
declare function getFileHash(data: crypto.BinaryLike): string;
|
|
@@ -71,4 +78,4 @@ declare function isFileChanged(src: crypto.BinaryLike, dest: crypto.BinaryLike):
|
|
|
71
78
|
declare function escapeStringRegexp(str: string): string;
|
|
72
79
|
declare function isMatch(str: string, arr: RegExp[]): boolean;
|
|
73
80
|
|
|
74
|
-
export { type GetWorkspacePackagesOptions, GitClient, cleanProjects, escapeStringRegexp, getFileHash, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isMatch,
|
|
81
|
+
export { type CreateNewProjectOptions, type GetWorkspacePackagesOptions, GitClient, cleanProjects, createNewProject, escapeStringRegexp, getFileHash, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isMatch, setVscodeBinaryMirror, syncNpmMirror, upgradeMonorepo };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,9 +2,17 @@ import * as _pnpm_types from '@pnpm/types';
|
|
|
2
2
|
import * as simple_git from 'simple-git';
|
|
3
3
|
import { SimpleGitOptions, ConfigValues } from 'simple-git';
|
|
4
4
|
import gitUrlParse from 'git-url-parse';
|
|
5
|
-
import { PackageJson } from 'pkg-types';
|
|
6
5
|
import crypto from 'node:crypto';
|
|
7
6
|
|
|
7
|
+
type CreateNewProjectType = 'tsup' | 'unbuild' | 'vue-lib' | 'vitepress' | 'hono-server' | 'vue-hono' | 'cli';
|
|
8
|
+
interface CreateNewProjectOptions {
|
|
9
|
+
name?: string;
|
|
10
|
+
cwd?: string;
|
|
11
|
+
renameJson?: boolean;
|
|
12
|
+
type?: CreateNewProjectType;
|
|
13
|
+
}
|
|
14
|
+
declare function createNewProject(options?: CreateNewProjectOptions): Promise<void>;
|
|
15
|
+
|
|
8
16
|
interface GetWorkspacePackagesOptions {
|
|
9
17
|
ignoreRootPackage?: boolean;
|
|
10
18
|
ignorePrivatePackage?: boolean;
|
|
@@ -62,7 +70,6 @@ declare function setVscodeBinaryMirror(cwd: string): Promise<void>;
|
|
|
62
70
|
|
|
63
71
|
declare function syncNpmMirror(cwd: string, options?: GetWorkspacePackagesOptions): Promise<void>;
|
|
64
72
|
|
|
65
|
-
declare function setPkgJson(sourcePkgJson: PackageJson, targetPkgJson: PackageJson): void;
|
|
66
73
|
declare function upgradeMonorepo(opts: CliOpts): Promise<void>;
|
|
67
74
|
|
|
68
75
|
declare function getFileHash(data: crypto.BinaryLike): string;
|
|
@@ -71,4 +78,4 @@ declare function isFileChanged(src: crypto.BinaryLike, dest: crypto.BinaryLike):
|
|
|
71
78
|
declare function escapeStringRegexp(str: string): string;
|
|
72
79
|
declare function isMatch(str: string, arr: RegExp[]): boolean;
|
|
73
80
|
|
|
74
|
-
export { type GetWorkspacePackagesOptions, GitClient, cleanProjects, escapeStringRegexp, getFileHash, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isMatch,
|
|
81
|
+
export { type CreateNewProjectOptions, type GetWorkspacePackagesOptions, GitClient, cleanProjects, createNewProject, escapeStringRegexp, getFileHash, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isMatch, setVscodeBinaryMirror, syncNpmMirror, upgradeMonorepo };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GitClient,
|
|
3
3
|
cleanProjects,
|
|
4
|
+
createNewProject,
|
|
4
5
|
escapeStringRegexp,
|
|
5
6
|
getFileHash,
|
|
6
7
|
getWorkspaceData,
|
|
@@ -9,17 +10,17 @@ import {
|
|
|
9
10
|
init_esm_shims,
|
|
10
11
|
isFileChanged,
|
|
11
12
|
isMatch,
|
|
12
|
-
setPkgJson,
|
|
13
13
|
setVscodeBinaryMirror,
|
|
14
14
|
syncNpmMirror,
|
|
15
15
|
upgradeMonorepo
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-EBATUF3S.js";
|
|
17
17
|
|
|
18
18
|
// src/index.ts
|
|
19
19
|
init_esm_shims();
|
|
20
20
|
export {
|
|
21
21
|
GitClient,
|
|
22
22
|
cleanProjects,
|
|
23
|
+
createNewProject,
|
|
23
24
|
escapeStringRegexp,
|
|
24
25
|
getFileHash,
|
|
25
26
|
getWorkspaceData,
|
|
@@ -27,7 +28,6 @@ export {
|
|
|
27
28
|
init,
|
|
28
29
|
isFileChanged,
|
|
29
30
|
isMatch,
|
|
30
|
-
setPkgJson,
|
|
31
31
|
setVscodeBinaryMirror,
|
|
32
32
|
syncNpmMirror,
|
|
33
33
|
upgradeMonorepo
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@icebreakers/monorepo",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.2.0",
|
|
5
5
|
"description": "The icebreaker's monorepo manager",
|
|
6
6
|
"author": "ice breaker <1324318532@qq.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -60,6 +60,8 @@
|
|
|
60
60
|
"@types/klaw": "^3.0.7",
|
|
61
61
|
"@types/micromatch": "^4.0.9",
|
|
62
62
|
"@types/set-value": "^4.0.3",
|
|
63
|
+
"fast-glob": "^3.3.3",
|
|
64
|
+
"fdir": "^6.5.0",
|
|
63
65
|
"get-value": "^4.0.1",
|
|
64
66
|
"micromatch": "^4.0.8",
|
|
65
67
|
"set-value": "^4.1.0"
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@icebreakers/tsup-template",
|
|
3
|
-
"type": "module",
|
|
4
|
-
"version": "0.0.0",
|
|
5
|
-
"description": "tsup package template",
|
|
6
|
-
"author": "ice breaker <1324318532@qq.com>",
|
|
7
|
-
"license": "MIT",
|
|
8
|
-
"repository": {
|
|
9
|
-
"type": "git",
|
|
10
|
-
"url": "git+https://github.com/sonofmagic/monorepo-template.git",
|
|
11
|
-
"directory": "packages/tsup-template"
|
|
12
|
-
},
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/sonofmagic/monorepo-template/issues"
|
|
15
|
-
},
|
|
16
|
-
"keywords": [],
|
|
17
|
-
"sideEffects": false,
|
|
18
|
-
"exports": {
|
|
19
|
-
".": {
|
|
20
|
-
"types": "./dist/index.d.ts",
|
|
21
|
-
"import": "./dist/index.mjs",
|
|
22
|
-
"require": "./dist/index.cjs"
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"main": "./dist/index.cjs",
|
|
26
|
-
"module": "./dist/index.mjs",
|
|
27
|
-
"types": "./dist/index.d.ts",
|
|
28
|
-
"files": [
|
|
29
|
-
"dist"
|
|
30
|
-
],
|
|
31
|
-
"scripts": {
|
|
32
|
-
"stub": "unbuild --stub",
|
|
33
|
-
"dev": "tsup --watch --sourcemap",
|
|
34
|
-
"build": "tsup",
|
|
35
|
-
"test": "vitest run",
|
|
36
|
-
"test:dev": "vitest",
|
|
37
|
-
"release": "pnpm publish",
|
|
38
|
-
"lint": "eslint .",
|
|
39
|
-
"lint:fix": "eslint . --fix"
|
|
40
|
-
},
|
|
41
|
-
"publishConfig": {}
|
|
42
|
-
}
|