@icebreakers/monorepo 0.6.0 → 0.6.2

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.
@@ -3,7 +3,7 @@
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
5
  "private": true,
6
- "packageManager": "pnpm@9.12.0",
6
+ "packageManager": "pnpm@9.12.1",
7
7
  "author": "ice breaker <1324318532@qq.com>",
8
8
  "repository": {
9
9
  "type": "git",
@@ -46,7 +46,7 @@
46
46
  "@types/lodash": "^4.17.10",
47
47
  "@types/lodash-es": "^4.17.12",
48
48
  "@types/micromatch": "^4.0.9",
49
- "@types/node": "^22.7.4",
49
+ "@types/node": "^22.7.5",
50
50
  "@vitest/coverage-v8": "~2.0.5",
51
51
  "ci-info": "^4.0.0",
52
52
  "cross-env": "^7.0.3",
@@ -13,30 +13,12 @@ import set from "set-value";
13
13
 
14
14
  // package.json
15
15
  var name = "@icebreakers/monorepo";
16
- var version = "0.6.0";
16
+ var version = "0.6.2";
17
17
 
18
18
  // src/logger.ts
19
19
  import { createConsola } from "consola";
20
20
  var logger = createConsola();
21
21
 
22
- // src/md5.ts
23
- import crypto from "node:crypto";
24
- function getFileHash(data) {
25
- const hashSum = crypto.createHash("md5");
26
- hashSum.update(data);
27
- return hashSum.digest("hex");
28
- }
29
- function isFileChanged(src, dest) {
30
- try {
31
- const currentHash = getFileHash(src);
32
- const previousHash = getFileHash(dest);
33
- return currentHash !== previousHash;
34
- } catch (err) {
35
- console.error("Error calculating file hash:", err);
36
- return false;
37
- }
38
- }
39
-
40
22
  // src/monorepo/git.ts
41
23
  import get from "get-value";
42
24
  import gitUrlParse from "git-url-parse";
@@ -96,7 +78,7 @@ var scripts = {
96
78
  var scriptsEntries = Object.entries(scripts);
97
79
 
98
80
  // src/targets.ts
99
- function getTargets(raw) {
81
+ function getAssetTargets(raw) {
100
82
  const list = [
101
83
  ".changeset",
102
84
  ".husky",
@@ -129,7 +111,25 @@ function getTargets(raw) {
129
111
  return list;
130
112
  }
131
113
 
132
- // src/utils.ts
114
+ // src/utils/md5.ts
115
+ import crypto from "node:crypto";
116
+ function getFileHash(data) {
117
+ const hashSum = crypto.createHash("md5");
118
+ hashSum.update(data);
119
+ return hashSum.digest("hex");
120
+ }
121
+ function isFileChanged(src, dest) {
122
+ try {
123
+ const currentHash = getFileHash(src);
124
+ const previousHash = getFileHash(dest);
125
+ return currentHash !== previousHash;
126
+ } catch (err) {
127
+ console.error("Error calculating file hash:", err);
128
+ return false;
129
+ }
130
+ }
131
+
132
+ // src/utils/regexp.ts
133
133
  function escapeStringRegexp(str) {
134
134
  return str.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
135
135
  }
@@ -147,6 +147,7 @@ var queue = new PQueue({ concurrency: 1 });
147
147
  var __filename2 = fileURLToPath(import.meta.url);
148
148
  var __dirname2 = path.dirname(__filename2);
149
149
  var assetsDir = path.join(__dirname2, "../assets");
150
+ var templatesDir = path.join(__dirname2, "../templates");
150
151
  var cwd = process.cwd();
151
152
  function setPkgJson(sourcePkgJson, targetPkgJson) {
152
153
  const packageManager = get2(sourcePkgJson, "packageManager", { default: "" });
@@ -170,14 +171,14 @@ function setPkgJson(sourcePkgJson, targetPkgJson) {
170
171
  function confirmOverwrite(filename) {
171
172
  return confirm({ message: `${pc.greenBright(filename)} \u6587\u4EF6\u5185\u5BB9\u53D1\u751F\u6539\u53D8,\u662F\u5426\u8986\u76D6?`, default: false });
172
173
  }
173
- async function main(opts) {
174
+ async function upgradeMonorepo(opts) {
174
175
  const { outDir = "", raw, interactive } = opts;
175
176
  const absOutDir = path.isAbsolute(outDir) ? outDir : path.join(cwd, outDir);
176
177
  const gitClient = new GitClient({
177
178
  baseDir: cwd
178
179
  });
179
180
  const repoName = await gitClient.getRepoName();
180
- let targets = getTargets(raw);
181
+ let targets = getAssetTargets(raw);
181
182
  if (interactive) {
182
183
  targets = await checkbox({
183
184
  message: "\u9009\u62E9\u4F60\u9700\u8981\u7684\u6587\u4EF6",
@@ -248,6 +249,12 @@ async function main(opts) {
248
249
  });
249
250
  }
250
251
  }
252
+ async function createNewProject(name2) {
253
+ const defaultTemplate = "bar";
254
+ const targetTemplate = name2 ?? defaultTemplate;
255
+ await fs.copy(path.join(templatesDir, defaultTemplate), path.join(cwd, targetTemplate));
256
+ logger.success(`${targetTemplate} \u9879\u76EE\u521B\u5EFA\u6210\u529F\uFF01`);
257
+ }
251
258
 
252
259
  export {
253
260
  name,
@@ -255,5 +262,6 @@ export {
255
262
  logger,
256
263
  GitClient,
257
264
  setPkgJson,
258
- main
265
+ upgradeMonorepo,
266
+ createNewProject
259
267
  };
package/dist/cli.cjs CHANGED
@@ -32,7 +32,7 @@ var import_commander = require("commander");
32
32
 
33
33
  // package.json
34
34
  var name = "@icebreakers/monorepo";
35
- var version = "0.6.0";
35
+ var version = "0.6.2";
36
36
 
37
37
  // src/lib.ts
38
38
  var import_node_process = __toESM(require("process"), 1);
@@ -51,24 +51,6 @@ var import_set_value = __toESM(require("set-value"), 1);
51
51
  var import_consola = require("consola");
52
52
  var logger = (0, import_consola.createConsola)();
53
53
 
54
- // src/md5.ts
55
- var import_node_crypto = __toESM(require("crypto"), 1);
56
- function getFileHash(data) {
57
- const hashSum = import_node_crypto.default.createHash("md5");
58
- hashSum.update(data);
59
- return hashSum.digest("hex");
60
- }
61
- function isFileChanged(src, dest) {
62
- try {
63
- const currentHash = getFileHash(src);
64
- const previousHash = getFileHash(dest);
65
- return currentHash !== previousHash;
66
- } catch (err) {
67
- console.error("Error calculating file hash:", err);
68
- return false;
69
- }
70
- }
71
-
72
54
  // src/monorepo/git.ts
73
55
  var import_get_value = __toESM(require("get-value"), 1);
74
56
  var import_git_url_parse = __toESM(require("git-url-parse"), 1);
@@ -128,7 +110,7 @@ var scripts = {
128
110
  var scriptsEntries = Object.entries(scripts);
129
111
 
130
112
  // src/targets.ts
131
- function getTargets(raw) {
113
+ function getAssetTargets(raw) {
132
114
  const list = [
133
115
  ".changeset",
134
116
  ".husky",
@@ -161,7 +143,25 @@ function getTargets(raw) {
161
143
  return list;
162
144
  }
163
145
 
164
- // src/utils.ts
146
+ // src/utils/md5.ts
147
+ var import_node_crypto = __toESM(require("crypto"), 1);
148
+ function getFileHash(data) {
149
+ const hashSum = import_node_crypto.default.createHash("md5");
150
+ hashSum.update(data);
151
+ return hashSum.digest("hex");
152
+ }
153
+ function isFileChanged(src, dest) {
154
+ try {
155
+ const currentHash = getFileHash(src);
156
+ const previousHash = getFileHash(dest);
157
+ return currentHash !== previousHash;
158
+ } catch (err) {
159
+ console.error("Error calculating file hash:", err);
160
+ return false;
161
+ }
162
+ }
163
+
164
+ // src/utils/regexp.ts
165
165
  function escapeStringRegexp(str) {
166
166
  return str.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
167
167
  }
@@ -179,6 +179,7 @@ var queue = new import_p_queue.default({ concurrency: 1 });
179
179
  var __filename2 = (0, import_node_url.fileURLToPath)(importMetaUrl);
180
180
  var __dirname = import_pathe.default.dirname(__filename2);
181
181
  var assetsDir = import_pathe.default.join(__dirname, "../assets");
182
+ var templatesDir = import_pathe.default.join(__dirname, "../templates");
182
183
  var cwd = import_node_process.default.cwd();
183
184
  function setPkgJson(sourcePkgJson, targetPkgJson) {
184
185
  const packageManager = (0, import_get_value2.default)(sourcePkgJson, "packageManager", { default: "" });
@@ -202,14 +203,14 @@ function setPkgJson(sourcePkgJson, targetPkgJson) {
202
203
  function confirmOverwrite(filename) {
203
204
  return (0, import_confirm.default)({ message: `${import_picocolors.default.greenBright(filename)} \u6587\u4EF6\u5185\u5BB9\u53D1\u751F\u6539\u53D8,\u662F\u5426\u8986\u76D6?`, default: false });
204
205
  }
205
- async function main(opts) {
206
+ async function upgradeMonorepo(opts) {
206
207
  const { outDir = "", raw, interactive } = opts;
207
208
  const absOutDir = import_pathe.default.isAbsolute(outDir) ? outDir : import_pathe.default.join(cwd, outDir);
208
209
  const gitClient = new GitClient({
209
210
  baseDir: cwd
210
211
  });
211
212
  const repoName = await gitClient.getRepoName();
212
- let targets = getTargets(raw);
213
+ let targets = getAssetTargets(raw);
213
214
  if (interactive) {
214
215
  targets = await (0, import_checkbox.default)({
215
216
  message: "\u9009\u62E9\u4F60\u9700\u8981\u7684\u6587\u4EF6",
@@ -280,15 +281,18 @@ async function main(opts) {
280
281
  });
281
282
  }
282
283
  }
284
+ async function createNewProject(name2) {
285
+ const defaultTemplate = "bar";
286
+ const targetTemplate = name2 ?? defaultTemplate;
287
+ await import_fs_extra.default.copy(import_pathe.default.join(templatesDir, defaultTemplate), import_pathe.default.join(cwd, targetTemplate));
288
+ logger.success(`${targetTemplate} \u9879\u76EE\u521B\u5EFA\u6210\u529F\uFF01`);
289
+ }
283
290
 
284
291
  // src/monorepo/binaryMirror.ts
285
292
  var import_comment_json = require("comment-json");
286
293
  var import_fs_extra2 = __toESM(require("fs-extra"), 1);
287
294
  var import_pathe2 = __toESM(require("pathe"), 1);
288
295
 
289
- // src/monorepo/mirror/utils.ts
290
- var import_set_value2 = __toESM(require("set-value"), 1);
291
-
292
296
  // src/monorepo/mirror/sources.ts
293
297
  var chinaMirrorsEnvs = {
294
298
  COREPACK_NPM_REGISTRY: "https://registry.npmmirror.com",
@@ -320,6 +324,7 @@ var chinaMirrorsEnvs = {
320
324
  };
321
325
 
322
326
  // src/monorepo/mirror/utils.ts
327
+ var import_set_value2 = __toESM(require("set-value"), 1);
323
328
  function setMirror(obj) {
324
329
  const platforms = ["linux", "windows", "osx"];
325
330
  const prefix = "terminal.integrated.env";
@@ -489,7 +494,7 @@ async function syncNpmMirror(cwd3) {
489
494
  var cwd2 = import_node_process2.default.cwd();
490
495
  import_commander.program.name(name).version(version);
491
496
  import_commander.program.option("-i,--interactive").option("--raw", "raw mode").option("--outDir <dir>", "Output directory").action(async (opts) => {
492
- await main(opts);
497
+ await upgradeMonorepo(opts);
493
498
  logger.success("upgrade @icebreakers/monorepo ok!");
494
499
  });
495
500
  import_commander.program.command("init").action(async () => {
@@ -508,6 +513,10 @@ import_commander.program.command("mirror").action(async () => {
508
513
  await setVscodeBinaryMirror(cwd2);
509
514
  logger.success("set vscode binary mirror finished!");
510
515
  });
516
+ import_commander.program.command("new").argument("[name]").action(async (targetPath) => {
517
+ await createNewProject(targetPath);
518
+ logger.success("create a package");
519
+ });
511
520
  var program_default = import_commander.program;
512
521
 
513
522
  // src/cli.ts
package/dist/cli.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  GitClient,
3
+ createNewProject,
3
4
  logger,
4
- main,
5
5
  name,
6
+ upgradeMonorepo,
6
7
  version
7
- } from "./chunk-G24QWDPQ.js";
8
+ } from "./chunk-UFDFNNMJ.js";
8
9
 
9
10
  // src/program.ts
10
11
  import process from "node:process";
@@ -15,9 +16,6 @@ import { parse, stringify } from "comment-json";
15
16
  import fs from "fs-extra";
16
17
  import path from "pathe";
17
18
 
18
- // src/monorepo/mirror/utils.ts
19
- import set from "set-value";
20
-
21
19
  // src/monorepo/mirror/sources.ts
22
20
  var chinaMirrorsEnvs = {
23
21
  COREPACK_NPM_REGISTRY: "https://registry.npmmirror.com",
@@ -49,6 +47,7 @@ var chinaMirrorsEnvs = {
49
47
  };
50
48
 
51
49
  // src/monorepo/mirror/utils.ts
50
+ import set from "set-value";
52
51
  function setMirror(obj) {
53
52
  const platforms = ["linux", "windows", "osx"];
54
53
  const prefix = "terminal.integrated.env";
@@ -218,7 +217,7 @@ async function syncNpmMirror(cwd2) {
218
217
  var cwd = process.cwd();
219
218
  program.name(name).version(version);
220
219
  program.option("-i,--interactive").option("--raw", "raw mode").option("--outDir <dir>", "Output directory").action(async (opts) => {
221
- await main(opts);
220
+ await upgradeMonorepo(opts);
222
221
  logger.success("upgrade @icebreakers/monorepo ok!");
223
222
  });
224
223
  program.command("init").action(async () => {
@@ -237,6 +236,10 @@ program.command("mirror").action(async () => {
237
236
  await setVscodeBinaryMirror(cwd);
238
237
  logger.success("set vscode binary mirror finished!");
239
238
  });
239
+ program.command("new").argument("[name]").action(async (targetPath) => {
240
+ await createNewProject(targetPath);
241
+ logger.success("create a package");
242
+ });
240
243
  var program_default = program;
241
244
 
242
245
  // src/cli.ts
package/dist/index.cjs CHANGED
@@ -6,8 +6,8 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
8
  var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
9
+ for (var name2 in all)
10
+ __defProp(target, name2, { get: all[name2], enumerable: true });
11
11
  };
12
12
  var __copyProps = (to, from, except, desc) => {
13
13
  if (from && typeof from === "object" || typeof from === "function") {
@@ -30,8 +30,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
- main: () => main,
34
- setPkgJson: () => setPkgJson
33
+ createNewProject: () => createNewProject,
34
+ setPkgJson: () => setPkgJson,
35
+ upgradeMonorepo: () => upgradeMonorepo
35
36
  });
36
37
  module.exports = __toCommonJS(src_exports);
37
38
 
@@ -53,30 +54,12 @@ var import_picocolors = __toESM(require("picocolors"), 1);
53
54
  var import_set_value = __toESM(require("set-value"), 1);
54
55
 
55
56
  // package.json
56
- var version = "0.6.0";
57
+ var version = "0.6.2";
57
58
 
58
59
  // src/logger.ts
59
60
  var import_consola = require("consola");
60
61
  var logger = (0, import_consola.createConsola)();
61
62
 
62
- // src/md5.ts
63
- var import_node_crypto = __toESM(require("crypto"), 1);
64
- function getFileHash(data) {
65
- const hashSum = import_node_crypto.default.createHash("md5");
66
- hashSum.update(data);
67
- return hashSum.digest("hex");
68
- }
69
- function isFileChanged(src, dest) {
70
- try {
71
- const currentHash = getFileHash(src);
72
- const previousHash = getFileHash(dest);
73
- return currentHash !== previousHash;
74
- } catch (err) {
75
- console.error("Error calculating file hash:", err);
76
- return false;
77
- }
78
- }
79
-
80
63
  // src/monorepo/git.ts
81
64
  var import_get_value = __toESM(require("get-value"), 1);
82
65
  var import_git_url_parse = __toESM(require("git-url-parse"), 1);
@@ -117,10 +100,10 @@ var GitClient = class {
117
100
  }
118
101
  async getUser() {
119
102
  const config = await this.getConfig();
120
- const name = (0, import_get_value.default)(config, "user.name");
103
+ const name2 = (0, import_get_value.default)(config, "user.name");
121
104
  const email = (0, import_get_value.default)(config, "user.email");
122
105
  return {
123
- name,
106
+ name: name2,
124
107
  email
125
108
  };
126
109
  }
@@ -136,7 +119,7 @@ var scripts = {
136
119
  var scriptsEntries = Object.entries(scripts);
137
120
 
138
121
  // src/targets.ts
139
- function getTargets(raw) {
122
+ function getAssetTargets(raw) {
140
123
  const list = [
141
124
  ".changeset",
142
125
  ".husky",
@@ -169,7 +152,25 @@ function getTargets(raw) {
169
152
  return list;
170
153
  }
171
154
 
172
- // src/utils.ts
155
+ // src/utils/md5.ts
156
+ var import_node_crypto = __toESM(require("crypto"), 1);
157
+ function getFileHash(data) {
158
+ const hashSum = import_node_crypto.default.createHash("md5");
159
+ hashSum.update(data);
160
+ return hashSum.digest("hex");
161
+ }
162
+ function isFileChanged(src, dest) {
163
+ try {
164
+ const currentHash = getFileHash(src);
165
+ const previousHash = getFileHash(dest);
166
+ return currentHash !== previousHash;
167
+ } catch (err) {
168
+ console.error("Error calculating file hash:", err);
169
+ return false;
170
+ }
171
+ }
172
+
173
+ // src/utils/regexp.ts
173
174
  function escapeStringRegexp(str) {
174
175
  return str.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
175
176
  }
@@ -187,6 +188,7 @@ var queue = new import_p_queue.default({ concurrency: 1 });
187
188
  var __filename2 = (0, import_node_url.fileURLToPath)(importMetaUrl);
188
189
  var __dirname = import_pathe.default.dirname(__filename2);
189
190
  var assetsDir = import_pathe.default.join(__dirname, "../assets");
191
+ var templatesDir = import_pathe.default.join(__dirname, "../templates");
190
192
  var cwd = import_node_process.default.cwd();
191
193
  function setPkgJson(sourcePkgJson, targetPkgJson) {
192
194
  const packageManager = (0, import_get_value2.default)(sourcePkgJson, "packageManager", { default: "" });
@@ -210,14 +212,14 @@ function setPkgJson(sourcePkgJson, targetPkgJson) {
210
212
  function confirmOverwrite(filename) {
211
213
  return (0, import_confirm.default)({ message: `${import_picocolors.default.greenBright(filename)} \u6587\u4EF6\u5185\u5BB9\u53D1\u751F\u6539\u53D8,\u662F\u5426\u8986\u76D6?`, default: false });
212
214
  }
213
- async function main(opts) {
215
+ async function upgradeMonorepo(opts) {
214
216
  const { outDir = "", raw, interactive } = opts;
215
217
  const absOutDir = import_pathe.default.isAbsolute(outDir) ? outDir : import_pathe.default.join(cwd, outDir);
216
218
  const gitClient = new GitClient({
217
219
  baseDir: cwd
218
220
  });
219
221
  const repoName = await gitClient.getRepoName();
220
- let targets = getTargets(raw);
222
+ let targets = getAssetTargets(raw);
221
223
  if (interactive) {
222
224
  targets = await (0, import_checkbox.default)({
223
225
  message: "\u9009\u62E9\u4F60\u9700\u8981\u7684\u6587\u4EF6",
@@ -288,8 +290,15 @@ async function main(opts) {
288
290
  });
289
291
  }
290
292
  }
293
+ async function createNewProject(name2) {
294
+ const defaultTemplate = "bar";
295
+ const targetTemplate = name2 ?? defaultTemplate;
296
+ await import_fs_extra.default.copy(import_pathe.default.join(templatesDir, defaultTemplate), import_pathe.default.join(cwd, targetTemplate));
297
+ logger.success(`${targetTemplate} \u9879\u76EE\u521B\u5EFA\u6210\u529F\uFF01`);
298
+ }
291
299
  // Annotate the CommonJS export names for ESM import in node:
292
300
  0 && (module.exports = {
293
- main,
294
- setPkgJson
301
+ createNewProject,
302
+ setPkgJson,
303
+ upgradeMonorepo
295
304
  });
package/dist/index.d.cts CHANGED
@@ -7,6 +7,7 @@ interface CliOpts {
7
7
  }
8
8
 
9
9
  declare function setPkgJson(sourcePkgJson: PackageJson, targetPkgJson: PackageJson): void;
10
- declare function main(opts: CliOpts): Promise<void>;
10
+ declare function upgradeMonorepo(opts: CliOpts): Promise<void>;
11
+ declare function createNewProject(name?: string): Promise<void>;
11
12
 
12
- export { main, setPkgJson };
13
+ export { createNewProject, setPkgJson, upgradeMonorepo };
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ interface CliOpts {
7
7
  }
8
8
 
9
9
  declare function setPkgJson(sourcePkgJson: PackageJson, targetPkgJson: PackageJson): void;
10
- declare function main(opts: CliOpts): Promise<void>;
10
+ declare function upgradeMonorepo(opts: CliOpts): Promise<void>;
11
+ declare function createNewProject(name?: string): Promise<void>;
11
12
 
12
- export { main, setPkgJson };
13
+ export { createNewProject, setPkgJson, upgradeMonorepo };
package/dist/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import {
2
- main,
3
- setPkgJson
4
- } from "./chunk-G24QWDPQ.js";
2
+ createNewProject,
3
+ setPkgJson,
4
+ upgradeMonorepo
5
+ } from "./chunk-UFDFNNMJ.js";
5
6
  export {
6
- main,
7
- setPkgJson
7
+ createNewProject,
8
+ setPkgJson,
9
+ upgradeMonorepo
8
10
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@icebreakers/monorepo",
3
3
  "type": "module",
4
- "version": "0.6.0",
4
+ "version": "0.6.2",
5
5
  "description": "icebreaker's monorepo config generator",
6
6
  "author": "ice breaker <1324318532@qq.com>",
7
7
  "license": "MIT",
@@ -30,7 +30,8 @@
30
30
  "files": [
31
31
  "assets",
32
32
  "bin",
33
- "dist"
33
+ "dist",
34
+ "templates"
34
35
  ],
35
36
  "dependencies": {
36
37
  "@inquirer/checkbox": "^4.0.0",
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@icebreakers/bar",
3
+ "type": "module",
4
+ "version": "0.1.2",
5
+ "description": "tsup(esbuild) build 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/bar"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/sonofmagic/monorepo-template/issues"
15
+ },
16
+ "keywords": [],
17
+ "sideEffects": false,
18
+ "exports": {
19
+ ".": "./src/index.ts"
20
+ },
21
+ "files": [
22
+ "dist"
23
+ ],
24
+ "scripts": {
25
+ "dev": "tsup --watch --sourcemap",
26
+ "build": "tsup",
27
+ "test": "vitest run",
28
+ "test:dev": "vitest",
29
+ "release": "pnpm publish",
30
+ "lint": "eslint .",
31
+ "lint:fix": "eslint . --fix"
32
+ },
33
+ "publishConfig": {
34
+ "exports": {
35
+ ".": {
36
+ "types": "./dist/index.d.ts",
37
+ "import": "./dist/index.js",
38
+ "require": "./dist/index.cjs"
39
+ }
40
+ },
41
+ "main": "./dist/index.cjs",
42
+ "module": "./dist/index.js",
43
+ "types": "./dist/index.d.ts"
44
+ }
45
+ }
@@ -0,0 +1,17 @@
1
+ export function bar() {
2
+ return 'foo'
3
+ }
4
+ // import __cjs_url__ from 'url';
5
+ // import __cjs_path__ from 'path';
6
+ // import __cjs_mod__ from 'module';
7
+ // const __filename = __cjs_url__.fileURLToPath(import.meta.url);
8
+ // const __dirname = __cjs_path__.dirname(__filename);
9
+ // const require = __cjs_mod__.createRequire(import.meta.url);
10
+ export function getDirname() {
11
+ return __dirname
12
+ }
13
+
14
+ export enum xx {
15
+ id,
16
+ dd,
17
+ }
@@ -0,0 +1,7 @@
1
+ import { bar } from '@/index'
2
+
3
+ describe('index', () => {
4
+ it('foo bar', () => {
5
+ expect(bar()).toBe('foo')
6
+ })
7
+ })
@@ -0,0 +1,15 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "baseUrl": ".",
5
+ "paths": {
6
+ "@/*": [
7
+ "src/*"
8
+ ]
9
+ }
10
+ },
11
+ "include": [
12
+ "src",
13
+ "test"
14
+ ]
15
+ }
@@ -0,0 +1,13 @@
1
+ import { defineConfig } from 'tsup'
2
+
3
+ export default defineConfig({
4
+ entry: ['src/index.ts'], // , 'src/cli.ts'],
5
+ shims: true,
6
+ format: ['cjs', 'esm'],
7
+ clean: true,
8
+ dts: true,
9
+ // https://github.com/egoist/tsup/pull/1056
10
+ // https://github.com/egoist/tsup/issues?q=cjsInterop
11
+ // cjsInterop: true,
12
+ // splitting: true,
13
+ })
@@ -0,0 +1,15 @@
1
+ import path from 'node:path'
2
+ import { defineProject } from 'vitest/config'
3
+
4
+ export default defineProject({
5
+ test: {
6
+ alias: [
7
+ {
8
+ find: '@',
9
+ replacement: path.resolve(__dirname, './src'),
10
+ },
11
+ ],
12
+ globals: true,
13
+ testTimeout: 60_000,
14
+ },
15
+ })