@effect-app/cli 0.1.0 → 0.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @effect-app/cli
2
2
 
3
+ ## 0.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 5fd3e5f5: Add package json exports support
8
+
9
+ ## 0.1.1
10
+
11
+ ### Patch Changes
12
+
13
+ - f8d2dea7: Add index commands
14
+
3
15
  ## 0.1.0
4
16
 
5
17
  ### Minor Changes
package/_cjs/index.cjs CHANGED
@@ -3,33 +3,128 @@
3
3
  var _child_process = _interopRequireDefault(require("child_process"));
4
4
  var _fs = _interopRequireDefault(require("fs"));
5
5
  var _nodeWatch = _interopRequireDefault(require("node-watch"));
6
+ var _path = _interopRequireDefault(require("path"));
6
7
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
- const cmd = process.argv[2];
8
- if (cmd !== "watch") {
9
- console.log("unknown command: ", cmd);
8
+ const _cmd = process.argv[2];
9
+ const supportedCommands = ["watch", "index", "index-multi", "packagejson", "packagejson-multi", "packagejson-packages"];
10
+ if (!supportedCommands.includes(_cmd)) {
11
+ console.log("unknown command: ", _cmd);
10
12
  process.exit(1);
11
13
  }
12
- const cmds = process.argv.slice(3);
13
- const dirs = ["../resources/dist", "../types/dist", "../ui/dist"];
14
- const touch = path => {
14
+ const cmd = _cmd;
15
+ function touch(path) {
15
16
  const time = new Date();
16
17
  try {
17
18
  _fs.default.utimesSync(path, time, time);
18
19
  } catch (err) {
19
20
  _fs.default.closeSync(_fs.default.openSync(path, "w"));
20
21
  }
21
- };
22
- dirs.forEach(d => {
23
- if (_fs.default.existsSync(d)) {
24
- _nodeWatch.default.default(d, {
25
- recursive: true
26
- }, () => {
27
- // console.log("change!", d)
28
- touch("./tsconfig.json");
29
- });
30
- }
31
- });
32
- _child_process.default.spawn(cmds[0], cmds.slice(1), {
33
- stdio: "inherit"
34
- });
22
+ }
23
+ function monitorIndexes(path) {
24
+ return _nodeWatch.default.default(path, {
25
+ recursive: true
26
+ }, (_, path) => {
27
+ const pathParts = path.split("/");
28
+ if (pathParts.length < 3) {
29
+ return;
30
+ }
31
+ // const dirName = pathParts[pathParts.length - 2]!
32
+ const indexFileName = pathParts.slice(0, -1).join("/") + ".ts";
33
+ // console.log("change!", evt, path, dirName, indexFileName)
34
+ if (!_fs.default.existsSync(indexFileName)) {
35
+ return;
36
+ }
37
+ _child_process.default.execSync(`pnpm eslint --fix ./'${indexFileName}'`);
38
+ });
39
+ }
40
+ // TODO: cache, don't do things when it already existed before, so only file is updated, not created.
41
+ const startDir = process.cwd();
42
+ function packagejson(p) {
43
+ process.chdir(_path.default.resolve(startDir, p));
44
+ const r = _child_process.default.execSync("sh ../../scripts/extract.sh", {
45
+ encoding: "utf-8"
46
+ });
47
+ const s = r.split("\n").sort((a, b) => a < b ? -1 : 1).join("\n");
48
+ const items = JSON.parse(`{${s.substring(0, s.length - 1)} }`);
49
+ const pkg = JSON.parse(_fs.default.readFileSync("package.json", "utf-8"));
50
+ const exps = {
51
+ ".": {
52
+ "import": {
53
+ "types": "./dist/index.d.ts",
54
+ "default": "./dist/index.js"
55
+ },
56
+ "require": {
57
+ "types": "./dist/index.d.ts",
58
+ "default": "./_cjs/index.cjs"
59
+ }
60
+ },
61
+ ...items
62
+ // ...pkg.name === "@effect-app/core" ? {
63
+ // "./types/awesome": { "types": "./types/awesome.d.ts" }
64
+ // } : {},
65
+ };
66
+
67
+ pkg.exports = exps;
68
+ _fs.default.writeFileSync("package.json", JSON.stringify(pkg, null, 2));
69
+ }
70
+ function monitorPackagejson(path) {
71
+ _nodeWatch.default.default(path + "/_src", {
72
+ recursive: true
73
+ }, (_, __) => {
74
+ packagejson(path);
75
+ });
76
+ }
77
+ const cmds = process.argv.slice(3);
78
+ switch (cmd) {
79
+ case "watch":
80
+ {
81
+ const dirs = ["../resources/dist", "../types/dist", "../ui/dist"];
82
+ dirs.forEach(d => {
83
+ if (_fs.default.existsSync(d)) {
84
+ _nodeWatch.default.default(d, {
85
+ recursive: true
86
+ }, () => {
87
+ // console.log("change!", d)
88
+ touch("./tsconfig.json");
89
+ });
90
+ }
91
+ });
92
+ break;
93
+ }
94
+ case "index-multi":
95
+ {
96
+ ;
97
+ ["./_project/api-api/_src", "./_project/resources/_src", "./_project/models/_src"].forEach(monitorIndexes);
98
+ break;
99
+ }
100
+ case "index":
101
+ {
102
+ monitorIndexes("./_src");
103
+ break;
104
+ }
105
+ case "packagejson":
106
+ {
107
+ monitorPackagejson(".");
108
+ break;
109
+ }
110
+ case "packagejson-multi":
111
+ {
112
+ ;
113
+ ["./_project/resources", "./_project/models"].forEach(monitorPackagejson);
114
+ break;
115
+ }
116
+ case "packagejson-packages":
117
+ {
118
+ _fs.default.readdirSync("./packages").map(_ => "./packages/" + _).filter(_ => _fs.default.existsSync(_ + "/package.json") && _fs.default.existsSync(_ + "/_src")).forEach(monitorPackagejson);
119
+ break;
120
+ }
121
+ }
122
+ if (cmds.length) {
123
+ const p = _child_process.default.spawn(cmds[0], cmds.slice(1), {
124
+ stdio: "inherit"
125
+ });
126
+ p.on("close", code => process.exit(code ?? 0));
127
+ p.on("exit", code => process.exit(code ?? 0));
128
+ p.on("disconnect", () => process.exit(1));
129
+ }
35
130
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","mappings":";;AAAA;AACA;AAEA;AAA0B;AAE1B,MAAMA,GAAG,GAAGC,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;AAC3B,IAAIF,GAAG,KAAK,OAAO,EAAE;EACnBG,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEJ,GAAG,CAAC;EACrCC,OAAO,CAACI,IAAI,CAAC,CAAC,CAAC;;AAGjB,MAAMC,IAAI,GAAGL,OAAO,CAACC,IAAI,CAACK,KAAK,CAAC,CAAC,CAAC;AAElC,MAAMC,IAAI,GAAG,CAAC,mBAAmB,EAAE,eAAe,EAAE,YAAY,CAAC;AAEjE,MAAMC,KAAK,GAAIC,IAAY,IAAI;EAC7B,MAAMC,IAAI,GAAG,IAAIC,IAAI,EAAE;EACvB,IAAI;IACFC,WAAE,CAACC,UAAU,CAACJ,IAAI,EAAEC,IAAI,EAAEA,IAAI,CAAC;GAChC,CAAC,OAAOI,GAAG,EAAE;IACZF,WAAE,CAACG,SAAS,CAACH,WAAE,CAACI,QAAQ,CAACP,IAAI,EAAE,GAAG,CAAC,CAAC;;AAExC,CAAC;AAEDF,IAAI,CAACU,OAAO,CAACC,CAAC,IAAG;EACf,IAAIN,WAAE,CAACO,UAAU,CAACD,CAAC,CAAC,EAAE;IACpBE,kBAAC,CAACC,OAAO,CAACH,CAAC,EAAE;MAAEI,SAAS,EAAE;IAAI,CAAE,EAAE,MAAK;MACrC;MACAd,KAAK,CAAC,iBAAiB,CAAC;IAC1B,CAAC,CAAC;;AAEN,CAAC,CAAC;AAEFe,sBAAE,CAACC,KAAK,CAACnB,IAAI,CAAC,CAAC,CAAE,EAAEA,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,EAAE;EAAEmB,KAAK,EAAE;AAAS,CAAE,CAAC","names":["cmd","process","argv","console","log","exit","cmds","slice","dirs","touch","path","time","Date","fs","utimesSync","err","closeSync","openSync","forEach","d","existsSync","w","default","recursive","cp","spawn","stdio"],"sourceRoot":"","sources":["../_src/index.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"index.cjs","mappings":"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","names":["_cmd","process","argv","supportedCommands","includes","console","log","exit","cmd","touch","path","time","Date","fs","utimesSync","err","closeSync","openSync","monitorIndexes","w","default","recursive","_","pathParts","split","length","indexFileName","slice","join","existsSync","cp","execSync","startDir","cwd","packagejson","p","chdir","resolve","r","encoding","s","sort","a","b","items","JSON","parse","substring","pkg","readFileSync","exps","exports","writeFileSync","stringify","monitorPackagejson","__","cmds","dirs","forEach","d","readdirSync","map","filter","spawn","stdio","on","code"],"sourceRoot":"","sources":["../_src/index.ts"],"sourcesContent":[null]}
package/_src/index.ts CHANGED
@@ -1,19 +1,28 @@
1
1
  import cp from "child_process"
2
2
  import fs from "fs"
3
-
4
3
  import w from "node-watch"
5
4
 
6
- const cmd = process.argv[2]
7
- if (cmd !== "watch") {
8
- console.log("unknown command: ", cmd)
5
+ import path from "path"
6
+
7
+ const _cmd = process.argv[2]
8
+ const supportedCommands = [
9
+ "watch",
10
+ "index",
11
+ "index-multi",
12
+ "packagejson",
13
+ "packagejson-multi",
14
+ "packagejson-packages"
15
+ ] as const
16
+ if (
17
+ !supportedCommands.includes(_cmd as any)
18
+ ) {
19
+ console.log("unknown command: ", _cmd)
9
20
  process.exit(1)
10
21
  }
11
22
 
12
- const cmds = process.argv.slice(3)
13
-
14
- const dirs = ["../resources/dist", "../types/dist", "../ui/dist"]
23
+ const cmd = _cmd as typeof supportedCommands[number]
15
24
 
16
- const touch = (path: string) => {
25
+ function touch(path: string) {
17
26
  const time = new Date()
18
27
  try {
19
28
  fs.utimesSync(path, time, time)
@@ -22,13 +31,109 @@ const touch = (path: string) => {
22
31
  }
23
32
  }
24
33
 
25
- dirs.forEach(d => {
26
- if (fs.existsSync(d)) {
27
- w.default(d, { recursive: true }, () => {
28
- // console.log("change!", d)
29
- touch("./tsconfig.json")
34
+ function monitorIndexes(path: string) {
35
+ return w.default(path, { recursive: true }, (_, path) => {
36
+ const pathParts = path.split("/")
37
+ if (pathParts.length < 3) {
38
+ return
39
+ }
40
+ // const dirName = pathParts[pathParts.length - 2]!
41
+ const indexFileName = pathParts.slice(0, -1).join("/") + ".ts"
42
+
43
+ // console.log("change!", evt, path, dirName, indexFileName)
44
+ if (!fs.existsSync(indexFileName)) {
45
+ return
46
+ }
47
+ cp.execSync(`pnpm eslint --fix ./'${indexFileName}'`)
48
+ })
49
+ }
50
+
51
+ // TODO: cache, don't do things when it already existed before, so only file is updated, not created.
52
+
53
+ const startDir = process.cwd()
54
+
55
+ function packagejson(p: string) {
56
+ process.chdir(path.resolve(startDir, p))
57
+
58
+ const r = cp.execSync("sh ../../scripts/extract.sh", { encoding: "utf-8" })
59
+ const s = r.split("\n").sort((a, b) => a < b ? -1 : 1).join("\n")
60
+ const items = JSON.parse(`{${s.substring(0, s.length - 1)} }`)
61
+
62
+ const pkg = JSON.parse(fs.readFileSync("package.json", "utf-8"))
63
+ const exps = {
64
+ ".": {
65
+ "import": {
66
+ "types": "./dist/index.d.ts",
67
+ "default": "./dist/index.js"
68
+ },
69
+ "require": {
70
+ "types": "./dist/index.d.ts",
71
+ "default": "./_cjs/index.cjs"
72
+ }
73
+ },
74
+ ...items
75
+ // ...pkg.name === "@effect-app/core" ? {
76
+ // "./types/awesome": { "types": "./types/awesome.d.ts" }
77
+ // } : {},
78
+ }
79
+ pkg.exports = exps
80
+ fs.writeFileSync("package.json", JSON.stringify(pkg, null, 2))
81
+ }
82
+
83
+ function monitorPackagejson(path: string) {
84
+ w.default(path + "/_src", { recursive: true }, (_, __) => {
85
+ packagejson(path)
86
+ })
87
+ }
88
+
89
+ const cmds = process.argv.slice(3)
90
+ switch (cmd) {
91
+ case "watch": {
92
+ const dirs = ["../resources/dist", "../types/dist", "../ui/dist"]
93
+
94
+ dirs.forEach(d => {
95
+ if (fs.existsSync(d)) {
96
+ w.default(d, { recursive: true }, () => {
97
+ // console.log("change!", d)
98
+ touch("./tsconfig.json")
99
+ })
100
+ }
30
101
  })
102
+
103
+ break
104
+ }
105
+
106
+ case "index-multi": {
107
+ ;["./_project/api-api/_src", "./_project/resources/_src", "./_project/models/_src"].forEach(monitorIndexes)
108
+ break
109
+ }
110
+
111
+ case "index": {
112
+ monitorIndexes("./_src")
113
+ break
31
114
  }
32
- })
33
115
 
34
- cp.spawn(cmds[0]!, cmds.slice(1), { stdio: "inherit" })
116
+ case "packagejson": {
117
+ monitorPackagejson(".")
118
+ break
119
+ }
120
+
121
+ case "packagejson-multi": {
122
+ ;["./_project/resources", "./_project/models"].forEach(monitorPackagejson)
123
+ break
124
+ }
125
+
126
+ case "packagejson-packages": {
127
+ fs.readdirSync("./packages")
128
+ .map(_ => "./packages/" + _)
129
+ .filter(_ => fs.existsSync(_ + "/package.json") && fs.existsSync(_ + "/_src")).forEach(monitorPackagejson)
130
+ break
131
+ }
132
+ }
133
+
134
+ if (cmds.length) {
135
+ const p = cp.spawn(cmds[0]!, cmds.slice(1), { stdio: "inherit" })
136
+ p.on("close", code => process.exit(code ?? 0))
137
+ p.on("exit", code => process.exit(code ?? 0))
138
+ p.on("disconnect", () => process.exit(1))
139
+ }
package/dist/index.js CHANGED
@@ -1,14 +1,22 @@
1
1
  import cp from "child_process";
2
2
  import fs from "fs";
3
3
  import w from "node-watch";
4
- const cmd = process.argv[2];
5
- if (cmd !== "watch") {
6
- console.log("unknown command: ", cmd);
4
+ import path from "path";
5
+ const _cmd = process.argv[2];
6
+ const supportedCommands = [
7
+ "watch",
8
+ "index",
9
+ "index-multi",
10
+ "packagejson",
11
+ "packagejson-multi",
12
+ "packagejson-packages"
13
+ ];
14
+ if (!supportedCommands.includes(_cmd)) {
15
+ console.log("unknown command: ", _cmd);
7
16
  process.exit(1);
8
17
  }
9
- const cmds = process.argv.slice(3);
10
- const dirs = ["../resources/dist", "../types/dist", "../ui/dist"];
11
- const touch = (path) => {
18
+ const cmd = _cmd;
19
+ function touch(path) {
12
20
  const time = new Date();
13
21
  try {
14
22
  fs.utimesSync(path, time, time);
@@ -16,14 +24,97 @@ const touch = (path) => {
16
24
  catch (err) {
17
25
  fs.closeSync(fs.openSync(path, "w"));
18
26
  }
19
- };
20
- dirs.forEach(d => {
21
- if (fs.existsSync(d)) {
22
- w.default(d, { recursive: true }, () => {
23
- // console.log("change!", d)
24
- touch("./tsconfig.json");
27
+ }
28
+ function monitorIndexes(path) {
29
+ return w.default(path, { recursive: true }, (_, path) => {
30
+ const pathParts = path.split("/");
31
+ if (pathParts.length < 3) {
32
+ return;
33
+ }
34
+ // const dirName = pathParts[pathParts.length - 2]!
35
+ const indexFileName = pathParts.slice(0, -1).join("/") + ".ts";
36
+ // console.log("change!", evt, path, dirName, indexFileName)
37
+ if (!fs.existsSync(indexFileName)) {
38
+ return;
39
+ }
40
+ cp.execSync(`pnpm eslint --fix ./'${indexFileName}'`);
41
+ });
42
+ }
43
+ // TODO: cache, don't do things when it already existed before, so only file is updated, not created.
44
+ const startDir = process.cwd();
45
+ function packagejson(p) {
46
+ process.chdir(path.resolve(startDir, p));
47
+ const r = cp.execSync("sh ../../scripts/extract.sh", { encoding: "utf-8" });
48
+ const s = r.split("\n").sort((a, b) => a < b ? -1 : 1).join("\n");
49
+ const items = JSON.parse(`{${s.substring(0, s.length - 1)} }`);
50
+ const pkg = JSON.parse(fs.readFileSync("package.json", "utf-8"));
51
+ const exps = {
52
+ ".": {
53
+ "import": {
54
+ "types": "./dist/index.d.ts",
55
+ "default": "./dist/index.js"
56
+ },
57
+ "require": {
58
+ "types": "./dist/index.d.ts",
59
+ "default": "./_cjs/index.cjs"
60
+ }
61
+ },
62
+ ...items
63
+ // ...pkg.name === "@effect-app/core" ? {
64
+ // "./types/awesome": { "types": "./types/awesome.d.ts" }
65
+ // } : {},
66
+ };
67
+ pkg.exports = exps;
68
+ fs.writeFileSync("package.json", JSON.stringify(pkg, null, 2));
69
+ }
70
+ function monitorPackagejson(path) {
71
+ w.default(path + "/_src", { recursive: true }, (_, __) => {
72
+ packagejson(path);
73
+ });
74
+ }
75
+ const cmds = process.argv.slice(3);
76
+ switch (cmd) {
77
+ case "watch": {
78
+ const dirs = ["../resources/dist", "../types/dist", "../ui/dist"];
79
+ dirs.forEach(d => {
80
+ if (fs.existsSync(d)) {
81
+ w.default(d, { recursive: true }, () => {
82
+ // console.log("change!", d)
83
+ touch("./tsconfig.json");
84
+ });
85
+ }
25
86
  });
87
+ break;
88
+ }
89
+ case "index-multi": {
90
+ ;
91
+ ["./_project/api-api/_src", "./_project/resources/_src", "./_project/models/_src"].forEach(monitorIndexes);
92
+ break;
26
93
  }
27
- });
28
- cp.spawn(cmds[0], cmds.slice(1), { stdio: "inherit" });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5QixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFFbkIsT0FBTyxDQUFDLE1BQU0sWUFBWSxDQUFBO0FBRTFCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDM0IsSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFO0lBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtDQUNoQjtBQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRWxDLE1BQU0sSUFBSSxHQUFHLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFBO0FBRWpFLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQTtJQUN2QixJQUFJO1FBQ0YsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0tBQ2hDO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDWixFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7S0FDckM7QUFDSCxDQUFDLENBQUE7QUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ2YsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3BCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUNyQyw0QkFBNEI7WUFDNUIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDMUIsQ0FBQyxDQUFDLENBQUE7S0FDSDtBQUNILENBQUMsQ0FBQyxDQUFBO0FBRUYsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBIn0=
94
+ case "index": {
95
+ monitorIndexes("./_src");
96
+ break;
97
+ }
98
+ case "packagejson": {
99
+ monitorPackagejson(".");
100
+ break;
101
+ }
102
+ case "packagejson-multi": {
103
+ ;
104
+ ["./_project/resources", "./_project/models"].forEach(monitorPackagejson);
105
+ break;
106
+ }
107
+ case "packagejson-packages": {
108
+ fs.readdirSync("./packages")
109
+ .map(_ => "./packages/" + _)
110
+ .filter(_ => fs.existsSync(_ + "/package.json") && fs.existsSync(_ + "/_src")).forEach(monitorPackagejson);
111
+ break;
112
+ }
113
+ }
114
+ if (cmds.length) {
115
+ const p = cp.spawn(cmds[0], cmds.slice(1), { stdio: "inherit" });
116
+ p.on("close", code => process.exit(code ?? 0));
117
+ p.on("exit", code => process.exit(code ?? 0));
118
+ p.on("disconnect", () => process.exit(1));
119
+ }
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5QixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxDQUFDLE1BQU0sWUFBWSxDQUFBO0FBRTFCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUV2QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQzVCLE1BQU0saUJBQWlCLEdBQUc7SUFDeEIsT0FBTztJQUNQLE9BQU87SUFDUCxhQUFhO0lBQ2IsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixzQkFBc0I7Q0FDZCxDQUFBO0FBQ1YsSUFDRSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFXLENBQUMsRUFDeEM7SUFDQSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7Q0FDaEI7QUFFRCxNQUFNLEdBQUcsR0FBRyxJQUF3QyxDQUFBO0FBRXBELFNBQVMsS0FBSyxDQUFDLElBQVk7SUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQTtJQUN2QixJQUFJO1FBQ0YsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0tBQ2hDO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDWixFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7S0FDckM7QUFDSCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsSUFBWTtJQUNsQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLElB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QyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDNUcsTUFBSztLQUNOO0NBQ0Y7QUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7SUFDZixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDakUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM3QyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7Q0FDMUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/cli",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1 @@
1
+ console.log(3)
@@ -0,0 +1,3 @@
1
+ // codegen:start {preset: barrel, include: ./abc/*.ts}
2
+ export * from "./abc/newFile.js"
3
+ // codegen:end