@pavlos-samaras/react-cli 2.0.0 → 2.0.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.
Files changed (87) hide show
  1. package/dist/bin/ct.js +2 -2
  2. package/dist/bin/ct.js.map +1 -1
  3. package/dist/commands/generate/generate.constants.d.ts +5 -0
  4. package/dist/commands/generate/generate.constants.d.ts.map +1 -0
  5. package/dist/commands/generate/generate.constants.js +5 -0
  6. package/dist/commands/generate/generate.constants.js.map +1 -0
  7. package/dist/commands/generate/generate.d.ts +3 -0
  8. package/dist/commands/generate/generate.d.ts.map +1 -0
  9. package/dist/commands/generate/generate.js +34 -0
  10. package/dist/commands/generate/generate.js.map +1 -0
  11. package/dist/commands/generate/generate.types.d.ts +22 -0
  12. package/dist/commands/generate/generate.types.d.ts.map +1 -0
  13. package/dist/commands/generate/generate.types.js +2 -0
  14. package/dist/commands/generate/generate.types.js.map +1 -0
  15. package/dist/commands/generate/utils/general.d.ts +4 -0
  16. package/dist/commands/generate/utils/general.d.ts.map +1 -0
  17. package/dist/commands/generate/utils/general.js +23 -0
  18. package/dist/commands/generate/utils/general.js.map +1 -0
  19. package/dist/commands/generate/utils/generateComponent.d.ts +3 -0
  20. package/dist/commands/generate/utils/generateComponent.d.ts.map +1 -0
  21. package/dist/{utils/generate/component.js → commands/generate/utils/generateComponent.js} +9 -7
  22. package/dist/commands/generate/utils/generateComponent.js.map +1 -0
  23. package/dist/{utils/generate/hook.d.ts → commands/generate/utils/generateHook.d.ts} +2 -2
  24. package/dist/commands/generate/utils/generateHook.d.ts.map +1 -0
  25. package/dist/commands/generate/utils/generateHook.js +14 -0
  26. package/dist/commands/generate/utils/generateHook.js.map +1 -0
  27. package/dist/commands/generate/utils/runGenerateComponent.d.ts +3 -0
  28. package/dist/commands/generate/utils/runGenerateComponent.d.ts.map +1 -0
  29. package/dist/commands/generate/utils/runGenerateComponent.js +25 -0
  30. package/dist/commands/generate/utils/runGenerateComponent.js.map +1 -0
  31. package/dist/commands/generate/utils/runGenerateHook.d.ts +3 -0
  32. package/dist/commands/generate/utils/runGenerateHook.d.ts.map +1 -0
  33. package/dist/commands/generate/utils/runGenerateHook.js +23 -0
  34. package/dist/commands/generate/utils/runGenerateHook.js.map +1 -0
  35. package/dist/commands/new/new.constants.d.ts +2 -0
  36. package/dist/commands/new/new.constants.d.ts.map +1 -0
  37. package/dist/commands/new/new.constants.js +2 -0
  38. package/dist/commands/new/new.constants.js.map +1 -0
  39. package/dist/commands/new/new.d.ts.map +1 -0
  40. package/dist/commands/{new.js → new/new.js} +12 -15
  41. package/dist/commands/new/new.js.map +1 -0
  42. package/dist/constants/config.constants.d.ts +3 -0
  43. package/dist/constants/config.constants.d.ts.map +1 -0
  44. package/dist/constants/config.constants.js +5 -0
  45. package/dist/constants/config.constants.js.map +1 -0
  46. package/dist/types/config.types.d.ts +11 -0
  47. package/dist/types/config.types.d.ts.map +1 -0
  48. package/dist/types/config.types.js +2 -0
  49. package/dist/types/config.types.js.map +1 -0
  50. package/dist/utils/loadConfig.d.ts +2 -9
  51. package/dist/utils/loadConfig.d.ts.map +1 -1
  52. package/dist/utils/loadConfig.js +19 -4
  53. package/dist/utils/loadConfig.js.map +1 -1
  54. package/package.json +1 -1
  55. package/dist/commands/generate.d.ts +0 -12
  56. package/dist/commands/generate.d.ts.map +0 -1
  57. package/dist/commands/generate.js +0 -88
  58. package/dist/commands/generate.js.map +0 -1
  59. package/dist/commands/new.d.ts.map +0 -1
  60. package/dist/commands/new.js.map +0 -1
  61. package/dist/constants/ct.config.d.ts +0 -9
  62. package/dist/constants/ct.config.d.ts.map +0 -1
  63. package/dist/constants/ct.config.js +0 -9
  64. package/dist/constants/ct.config.js.map +0 -1
  65. package/dist/constants/generator.d.ts +0 -3
  66. package/dist/constants/generator.d.ts.map +0 -1
  67. package/dist/constants/generator.js +0 -6
  68. package/dist/constants/generator.js.map +0 -1
  69. package/dist/types/generator.d.ts +0 -7
  70. package/dist/types/generator.d.ts.map +0 -1
  71. package/dist/types/generator.js +0 -2
  72. package/dist/types/generator.js.map +0 -1
  73. package/dist/utils/generate/component.d.ts +0 -11
  74. package/dist/utils/generate/component.d.ts.map +0 -1
  75. package/dist/utils/generate/component.js.map +0 -1
  76. package/dist/utils/generate/hook.d.ts.map +0 -1
  77. package/dist/utils/generate/hook.js +0 -12
  78. package/dist/utils/generate/hook.js.map +0 -1
  79. package/dist/utils/generateComponent.d.ts +0 -21
  80. package/dist/utils/generateComponent.d.ts.map +0 -1
  81. package/dist/utils/generateComponent.js +0 -42
  82. package/dist/utils/generateComponent.js.map +0 -1
  83. package/dist/utils/generateHook.d.ts +0 -7
  84. package/dist/utils/generateHook.d.ts.map +0 -1
  85. package/dist/utils/generateHook.js +0 -12
  86. package/dist/utils/generateHook.js.map +0 -1
  87. /package/dist/commands/{new.d.ts → new/new.d.ts} +0 -0
package/dist/bin/ct.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from "module";
3
3
  import { Command } from "commander";
4
- import { registerGenerateCommand } from "../commands/generate.js";
5
- import { registerNewCommand } from "../commands/new.js";
4
+ import { registerGenerateCommand } from "../commands/generate/generate.js";
5
+ import { registerNewCommand } from "../commands/new/new.js";
6
6
  const require = createRequire(import.meta.url);
7
7
  const { version } = require("../../package.json");
8
8
  const program = new Command();
@@ -1 +1 @@
1
- {"version":3,"file":"ct.js","sourceRoot":"","sources":["../../src/bin/ct.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEzE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhE,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAE5B,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"ct.js","sourceRoot":"","sources":["../../src/bin/ct.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEzE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhE,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAE5B,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const TYPES: readonly ["component", "hook"];
2
+ export declare const STYLES: readonly ["css", "scss"];
3
+ export declare const VALID_COMPONENT_NAME: RegExp;
4
+ export declare const VALID_HOOK_NAME: RegExp;
5
+ //# sourceMappingURL=generate.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.constants.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/generate.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,YAAI,WAAW,EAAE,MAAM,CAAU,CAAC;AACpD,eAAO,MAAM,MAAM,YAAI,KAAK,EAAE,MAAM,CAAU,CAAC;AAE/C,eAAO,MAAM,oBAAoB,QAAqB,CAAC;AACvD,eAAO,MAAM,eAAe,QAAwB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const TYPES = ["component", "hook"];
2
+ export const STYLES = ["css", "scss"];
3
+ export const VALID_COMPONENT_NAME = /^[A-Z][a-zA-Z]*$/;
4
+ export const VALID_HOOK_NAME = /^use[A-Z][a-zA-Z]*$/;
5
+ //# sourceMappingURL=generate.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.constants.js","sourceRoot":"","sources":["../../../src/commands/generate/generate.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,MAAM,CAAU,CAAC;AACpD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const registerGenerateCommand: (program: Command) => void;
3
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,uBAAuB,YAAa,OAAO,SAqCvD,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { Command } from "commander";
2
+ import { error } from "../../utils/console.js";
3
+ import { buildPreActionChecks } from "./utils/general.js";
4
+ import { runGenerateComponent } from "./utils/runGenerateComponent.js";
5
+ import { runGenerateHook } from "./utils/runGenerateHook.js";
6
+ export const registerGenerateCommand = (program) => {
7
+ program
8
+ .command("generate <type> <name>")
9
+ .alias("g")
10
+ .description("generate the given <type> content")
11
+ .option("-d, --dir <dir>", "target folder for the <type> folder", (value) => value.replace(/=/, ""))
12
+ .option("-f, --feature <feature>", "generate the given <type> inside a feature", (value) => value.replace(/=/, ""))
13
+ .option("-s, --style <style>", "use the specified stylesheet style", (value) => value.replace(/=/, ""))
14
+ .option("--ts", "Use typescript")
15
+ .option("--force", "skip safety checks and overwrite")
16
+ .action(async (type, name, options) => {
17
+ const checks = buildPreActionChecks(type, options);
18
+ for (const check of checks) {
19
+ if (check.condition) {
20
+ error(check.message);
21
+ process.exitCode = 1;
22
+ return;
23
+ }
24
+ }
25
+ const rootDir = options.feature
26
+ ? `src/features/${options.feature}`
27
+ : `src`;
28
+ if (type === "component")
29
+ runGenerateComponent(rootDir, name, options);
30
+ if (type === "hook")
31
+ runGenerateHook(rootDir, name, options);
32
+ });
33
+ };
34
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/generate/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC1D,OAAO;SACJ,OAAO,CAAC,wBAAwB,CAAC;SACjC,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,iBAAiB,EAAE,qCAAqC,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1E,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CACvB;SACA,MAAM,CACL,yBAAyB,EACzB,4CAA4C,EAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAClC;SACA,MAAM,CACL,qBAAqB,EACrB,oCAAoC,EACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAClC;SACA,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;SAChC,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAU,EAAE,IAAY,EAAE,OAAgB,EAAE,EAAE;QAC3D,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;YAC7B,CAAC,CAAC,gBAAgB,OAAO,CAAC,OAAO,EAAE;YACnC,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,IAAI,KAAK,WAAW;YAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,MAAM;YAAE,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { STYLES, TYPES } from "./generate.constants.js";
2
+ export type Check = {
3
+ condition: boolean | undefined;
4
+ message: string;
5
+ };
6
+ export type Type = (typeof TYPES)[number];
7
+ export type Style = (typeof STYLES)[number];
8
+ export interface Options {
9
+ dir?: string;
10
+ feature?: string;
11
+ style?: Style;
12
+ ts?: boolean;
13
+ force?: boolean;
14
+ }
15
+ export type ComponentFile = "JSX" | "stylesheet" | "hook" | "test";
16
+ export type Component = {
17
+ [K in ComponentFile]: {
18
+ path: string;
19
+ content: string;
20
+ };
21
+ };
22
+ //# sourceMappingURL=generate.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.types.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/generate.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,MAAM,KAAK,GAAG;IAAE,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1C,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5C,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnE,MAAM,MAAM,SAAS,GAAG;KACrB,CAAC,IAAI,aAAa,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CACxD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.types.js","sourceRoot":"","sources":["../../../src/commands/generate/generate.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { Check, Options, Type } from "../generate.types.js";
2
+ export declare const createDir: (pathToFolder: string) => string | undefined;
3
+ export declare const buildPreActionChecks: (type: Type, options: Options) => Check[];
4
+ //# sourceMappingURL=general.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/utils/general.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAIjE,eAAO,MAAM,SAAS,iBAAkB,MAAM,uBAK7C,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,IAAI,WAAW,OAAO,KAAG,KAAK,EAWxE,CAAC"}
@@ -0,0 +1,23 @@
1
+ import path from "path";
2
+ import fs from "fs";
3
+ import { isReactProject } from "../../../utils/validators.js";
4
+ import { STYLES, TYPES } from "../generate.constants.js";
5
+ export const createDir = (pathToFolder) => {
6
+ const folder = path.join(process.cwd(), pathToFolder);
7
+ if (fs.existsSync(folder))
8
+ return;
9
+ fs.mkdirSync(folder, { recursive: true });
10
+ return folder;
11
+ };
12
+ export const buildPreActionChecks = (type, options) => [
13
+ {
14
+ condition: !isReactProject() && !options.force,
15
+ message: "This is not a React project\ncreate one with 'ct new <name>' or use --force",
16
+ },
17
+ { condition: !TYPES.includes(type), message: `Invalid type: ${type}` },
18
+ {
19
+ condition: options.style && !STYLES.includes(options.style),
20
+ message: `Invalid style: ${options.style}`,
21
+ },
22
+ ];
23
+ //# sourceMappingURL=general.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../../src/commands/generate/utils/general.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,YAAoB,EAAE,EAAE;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO;IAClC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAU,EAAE,OAAgB,EAAW,EAAE,CAAC;IAC7E;QACE,SAAS,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;QAC9C,OAAO,EACL,6EAA6E;KAChF;IACD,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,IAAI,EAAE,EAAE;IACtE;QACE,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3D,OAAO,EAAE,kBAAkB,OAAO,CAAC,KAAK,EAAE;KAC3C;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Component, Options } from "../generate.types.js";
2
+ export declare const generateComponent: (folder: string, name: string, options: Options) => Promise<Component>;
3
+ //# sourceMappingURL=generateComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateComponent.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/utils/generateComponent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAiB/D,eAAO,MAAM,iBAAiB,WACpB,MAAM,QACR,MAAM,WACH,OAAO,KACf,OAAO,CAAC,SAAS,CAyBnB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import path from "path";
2
2
  import prompts from "prompts";
3
- import buildComponentTemplate from "../../templates/component.js";
4
- import buildStylesheetTemplate from "../../templates/stylesheet.js";
5
- import buildHookTemplate from "../../templates/hook.js";
6
- import { isTypescriptUsed } from "../validators.js";
3
+ import { loadConfig } from "../../../utils/loadConfig.js";
4
+ import { isTypescriptUsed } from "../../../utils/validators.js";
5
+ import buildComponentTemplate from "../../../templates/component.js";
6
+ import buildStylesheetTemplate from "../../../templates/stylesheet.js";
7
+ import buildHookTemplate from "../../../templates/hook.js";
7
8
  // Utilities
8
9
  const askForStyle = async () => {
9
10
  const answer = await prompts({
@@ -19,8 +20,9 @@ const askForStyle = async () => {
19
20
  return answer.style ?? "css";
20
21
  };
21
22
  export const generateComponent = async (folder, name, options) => {
22
- const stylesheetExt = options.style ?? (await askForStyle());
23
- const useTs = options.ts ?? isTypescriptUsed();
23
+ const config = loadConfig() ?? {};
24
+ const stylesheetExt = options.style ?? config.stylesheet ?? (await askForStyle());
25
+ const useTs = options.ts ?? config.typescript ?? isTypescriptUsed();
24
26
  const langExt = useTs ? "ts" : "js";
25
27
  return {
26
28
  JSX: {
@@ -41,4 +43,4 @@ export const generateComponent = async (folder, name, options) => {
41
43
  },
42
44
  };
43
45
  };
44
- //# sourceMappingURL=component.js.map
46
+ //# sourceMappingURL=generateComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateComponent.js","sourceRoot":"","sources":["../../../../src/commands/generate/utils/generateComponent.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AACrE,OAAO,uBAAuB,MAAM,kCAAkC,CAAC;AACvE,OAAO,iBAAiB,MAAM,4BAA4B,CAAC;AAG3D,YAAY;AACZ,MAAM,WAAW,GAAG,KAAK,IAAqB,EAAE;IAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;YAC9B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SACjC;QACD,OAAO,EAAE,CAAC;KACX,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,MAAc,EACd,IAAY,EACZ,OAAgB,EACI,EAAE;IACtB,MAAM,MAAM,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAClC,MAAM,aAAa,GACjB,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,IAAI,gBAAgB,EAAE,CAAC;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpC,OAAO;QACL,GAAG,EAAE;YACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,OAAO,GAAG,CAAC;YAC9C,OAAO,EAAE,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC;SAC9D;QACD,UAAU,EAAE;YACV,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,WAAW,aAAa,EAAE,CAAC;YAC1D,OAAO,EAAE,uBAAuB,CAAC,IAAI,CAAC;SACvC;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAChD,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC;SACjC;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,SAAS,OAAO,EAAE,CAAC;YAClD,OAAO,EAAE,EAAE;SACZ;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
- import type { Options } from "../../commands/generate.js";
1
+ import type { Options } from "../generate.types.js";
2
2
  export declare const generateHook: (folder: string, name: string, options: Options) => Promise<{
3
3
  path: string;
4
4
  content: string;
5
5
  }>;
6
- //# sourceMappingURL=hook.d.ts.map
6
+ //# sourceMappingURL=generateHook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateHook.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/utils/generateHook.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,eAAO,MAAM,YAAY,WACf,MAAM,QACR,MAAM,WACH,OAAO;;;EAUjB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import path from "path";
2
+ import { loadConfig } from "../../../utils/loadConfig.js";
3
+ import { isTypescriptUsed } from "../../../utils/validators.js";
4
+ import buildHookTemplate from "../../../templates/hook.js";
5
+ export const generateHook = async (folder, name, options) => {
6
+ const config = loadConfig() ?? {};
7
+ const useTs = options.ts ?? config.typescript ?? isTypescriptUsed();
8
+ const langExt = useTs ? "ts" : "js";
9
+ return {
10
+ path: path.join(folder, `${name}.${langExt}`),
11
+ content: buildHookTemplate(name),
12
+ };
13
+ };
14
+ //# sourceMappingURL=generateHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateHook.js","sourceRoot":"","sources":["../../../../src/commands/generate/utils/generateHook.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,iBAAiB,MAAM,4BAA4B,CAAC;AAG3D,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAc,EACd,IAAY,EACZ,OAAgB,EAChB,EAAE;IACF,MAAM,MAAM,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,IAAI,gBAAgB,EAAE,CAAC;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;QAC7C,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Options } from "../generate.types.js";
2
+ export declare const runGenerateComponent: (rootDir: string, name: string, options: Options) => Promise<void>;
3
+ //# sourceMappingURL=runGenerateComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runGenerateComponent.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/utils/runGenerateComponent.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,eAAO,MAAM,oBAAoB,YACtB,MAAM,QACT,MAAM,WACH,OAAO,kBAkBjB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import fs from "fs";
2
+ import chalk from "chalk";
3
+ import { info, warning } from "../../../utils/console.js";
4
+ import { createDir } from "./general.js";
5
+ import { generateComponent } from "./generateComponent.js";
6
+ import { VALID_COMPONENT_NAME } from "../generate.constants.js";
7
+ export const runGenerateComponent = async (rootDir, name, options) => {
8
+ if (!VALID_COMPONENT_NAME.test(name)) {
9
+ warning(`Invalid component name ${name}`);
10
+ process.exitCode = 1;
11
+ return;
12
+ }
13
+ const folder = createDir(`${rootDir}/${options.dir ?? "component"}/${name}`);
14
+ if (!folder) {
15
+ warning(`Folder ${name} already exists!`);
16
+ process.exitCode = 1;
17
+ return;
18
+ }
19
+ const component = await generateComponent(folder, name, options);
20
+ for (const file of Object.values(component)) {
21
+ fs.writeFileSync(file.path, file.content);
22
+ }
23
+ info(`${name} created at ${chalk.gray(folder)}`);
24
+ };
25
+ //# sourceMappingURL=runGenerateComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runGenerateComponent.js","sourceRoot":"","sources":["../../../../src/commands/generate/utils/runGenerateComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,OAAe,EACf,IAAY,EACZ,OAAgB,EAChB,EAAE;IACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC;QAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Options } from "../generate.types.js";
2
+ export declare const runGenerateHook: (rootDir: string, name: string, options: Options) => Promise<void>;
3
+ //# sourceMappingURL=runGenerateHook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runGenerateHook.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/utils/runGenerateHook.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,eAAO,MAAM,eAAe,YACjB,MAAM,QACT,MAAM,WACH,OAAO,kBAgBjB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import fs from "fs";
2
+ import chalk from "chalk";
3
+ import { VALID_HOOK_NAME } from "../generate.constants.js";
4
+ import { info, warning } from "../../../utils/console.js";
5
+ import { createDir } from "./general.js";
6
+ import { generateHook } from "./generateHook.js";
7
+ export const runGenerateHook = async (rootDir, name, options) => {
8
+ if (!VALID_HOOK_NAME.test(name)) {
9
+ warning(`Invalid hook name ${name}`);
10
+ process.exitCode = 1;
11
+ return;
12
+ }
13
+ const folder = createDir(`${rootDir}/${options.dir ?? "hook"}/${name}`);
14
+ if (!folder) {
15
+ warning(`Folder ${name} already exists!`);
16
+ process.exitCode = 1;
17
+ return;
18
+ }
19
+ const hook = await generateHook(folder, name, options);
20
+ fs.writeFileSync(hook.path, hook.content);
21
+ info(`${name} created at ${chalk.gray(folder)}`);
22
+ };
23
+ //# sourceMappingURL=runGenerateHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runGenerateHook.js","sourceRoot":"","sources":["../../../../src/commands/generate/utils/runGenerateHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,OAAe,EACf,IAAY,EACZ,OAAgB,EAChB,EAAE;IACF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC;QAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,IAAI,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const VALID_REACT_NAME: RegExp;
2
+ //# sourceMappingURL=new.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new.constants.d.ts","sourceRoot":"","sources":["../../../src/commands/new/new.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,QAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const VALID_REACT_NAME = /^[a-z0-9][a-z0-9-_]*$/i;
2
+ //# sourceMappingURL=new.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new.constants.js","sourceRoot":"","sources":["../../../src/commands/new/new.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/commands/new/new.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,eAAO,MAAM,kBAAkB,YAAa,OAAO,SAsDlD,CAAC"}
@@ -1,53 +1,50 @@
1
1
  import path from "path";
2
2
  import fs from "fs";
3
- import chalk from "chalk";
4
3
  import { spawnSync } from "child_process";
5
- import { DEFAULT_CONFIG } from "../constants/ct.config.js";
4
+ import { error, info, warning } from "../../utils/console.js";
5
+ import { VALID_REACT_NAME } from "./new.constants.js";
6
6
  export const registerNewCommand = (program) => {
7
7
  program
8
8
  .command("new <name>")
9
9
  .description("Create a new React project with Vite")
10
10
  .action((name) => {
11
- if (!/^[a-z0-9][a-z0-9-_]*$/i.test(name)) {
12
- console.log(chalk.red(`Invalid name ${name}`));
11
+ if (!VALID_REACT_NAME.test(name)) {
12
+ error(`Invalid name ${name}`);
13
13
  process.exitCode = 1;
14
14
  return;
15
15
  }
16
16
  const target = path.join(process.cwd(), name);
17
17
  if (fs.existsSync(target)) {
18
- console.log(chalk.yellow(`Folder ${name} already exists!`));
18
+ warning(`Folder ${name} already exists!`);
19
19
  process.exitCode = 1;
20
20
  return;
21
21
  }
22
- const result = spawnSync(`npm create vite@latest ${name} -- --no-install`, {
22
+ const result = spawnSync(`npm create vite@latest ${name}`, {
23
23
  stdio: "inherit",
24
24
  shell: true,
25
25
  });
26
26
  const vitePassed = result.status === 0;
27
27
  if (!vitePassed && !fs.existsSync(target)) {
28
- console.log(chalk.red("Vite failed before creating the project."));
28
+ error("Vite failed before creating the project.");
29
29
  process.exitCode = 1;
30
30
  return;
31
31
  }
32
- fs.writeFileSync(path.join(target, "ct.config.json"), JSON.stringify(DEFAULT_CONFIG, null, 2));
32
+ fs.writeFileSync(path.join(target, "ct.config.json"), "{}");
33
33
  if (!vitePassed) {
34
- console.log(chalk.yellow("Install failed (dependency conflict). Retrying with --legacy-peer-deps..."));
34
+ warning("Install failed (dependency conflict). Retrying with --legacy-peer-deps...");
35
35
  const retry = spawnSync("npm install --legacy-peer-deps", {
36
36
  cwd: target,
37
37
  stdio: "inherit",
38
38
  shell: true,
39
39
  });
40
40
  if (retry.status !== 0) {
41
- console.log(chalk.red("Install failed again. Finish it manually:"));
42
- console.log(chalk.green(`cd ${name}`));
43
- console.log(chalk.green("npm install --legacy-peer-deps"));
41
+ error("Install failed again. Finish it manually:");
42
+ info(`cd ${name}\nnpm install --legacy-peer-deps`);
44
43
  process.exitCode = 1;
45
44
  return;
46
45
  }
47
46
  }
48
- console.log(`\nDone! Next steps:\n`);
49
- console.log(chalk.green(`cd ${name}`));
50
- console.log(chalk.green("npm run dev"));
47
+ info(`\nDone! Next steps:\n\ncd ${name}\nnpm run dev`);
51
48
  });
52
49
  };
53
50
  //# sourceMappingURL=new.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/commands/new/new.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,EAAE;IACrD,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;YAC9B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC;YAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,0BAA0B,IAAI,EAAE,EAAE;YACzD,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAEvC,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CACL,2EAA2E,CAC5E,CAAC;YAEF,MAAM,KAAK,GAAG,SAAS,CAAC,gCAAgC,EAAE;gBACxD,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,IAAI,kCAAkC,CAAC,CAAC;gBACnD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,6BAA6B,IAAI,eAAe,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ConfigPropertyTypes } from "../types/config.types.js";
2
+ export declare const CONFIG_PROPERTY_TYPES: ConfigPropertyTypes;
3
+ //# sourceMappingURL=config.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.constants.d.ts","sourceRoot":"","sources":["../../src/constants/config.constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,eAAO,MAAM,qBAAqB,EAAE,mBAGnC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const CONFIG_PROPERTY_TYPES = {
2
+ typescript: "boolean",
3
+ stylesheet: "string",
4
+ };
5
+ //# sourceMappingURL=config.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.constants.js","sourceRoot":"","sources":["../../src/constants/config.constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACxD,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,QAAQ;CACrB,CAAC"}
@@ -0,0 +1,11 @@
1
+ type AllowedTypes = "string" | "number" | "boolean" | "bigint" | "symbol" | "object" | "null";
2
+ export type Config = {
3
+ typescript?: boolean;
4
+ stylesheet?: string;
5
+ };
6
+ export type ConfigKeys = keyof Config;
7
+ export type ConfigPropertyTypes = {
8
+ [K in ConfigKeys]: AllowedTypes;
9
+ };
10
+ export {};
11
+ //# sourceMappingURL=config.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GACb,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,MAAM,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC;AACtC,MAAM,MAAM,mBAAmB,GAAG;KAAG,CAAC,IAAI,UAAU,GAAG,YAAY;CAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":""}
@@ -1,10 +1,3 @@
1
- export interface CtConfig {
2
- dir?: {
3
- component: "components";
4
- hook: "hooks";
5
- };
6
- typescript?: boolean;
7
- stylesheet?: string;
8
- }
9
- export declare const loadConfig: () => CtConfig | undefined;
1
+ import type { Config } from "../types/config.types.js";
2
+ export declare const loadConfig: () => Config | undefined;
10
3
  //# sourceMappingURL=loadConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../../src/utils/loadConfig.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE;QACJ,SAAS,EAAE,YAAY,CAAC;QACxB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,QAAO,QAAQ,GAAG,SAUxC,CAAC"}
1
+ {"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../../src/utils/loadConfig.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,0BAA0B,CAAC;AAanE,eAAO,MAAM,UAAU,QAAO,MAAM,GAAG,SAetC,CAAC"}
@@ -1,15 +1,30 @@
1
1
  import path from "path";
2
2
  import fs from "fs";
3
- import chalk from "chalk";
3
+ import { error, warning } from "./console.js";
4
+ import { CONFIG_PROPERTY_TYPES } from "../constants/config.constants.js";
5
+ // Utility
6
+ const warnMissingProperties = (config) => {
7
+ const configKeys = Object.keys(CONFIG_PROPERTY_TYPES);
8
+ for (const property of configKeys) {
9
+ const type = CONFIG_PROPERTY_TYPES[property];
10
+ if (!config[property]) {
11
+ warning(`Missing '${property}' of type ${type}, using fallback`);
12
+ }
13
+ }
14
+ };
4
15
  export const loadConfig = () => {
5
16
  const configPath = path.join(process.cwd(), "ct.config.json");
6
- if (!fs.existsSync(configPath))
17
+ if (!fs.existsSync(configPath)) {
18
+ error("ts.config.json is missing!");
7
19
  return;
20
+ }
8
21
  try {
9
- return JSON.parse(fs.readFileSync(configPath, "utf-8"));
22
+ const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
23
+ warnMissingProperties(config);
24
+ return config;
10
25
  }
11
26
  catch {
12
- console.log(chalk.yellow("ct.config.json is not valid JSON, ignoring it."));
27
+ warning("ct.config.json is not valid JSON, ignoring it.");
13
28
  return;
14
29
  }
15
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../src/utils/loadConfig.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAyB,EAAE;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO;IAEvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../src/utils/loadConfig.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,UAAU;AACV,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAiB,CAAC;IACtE,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,YAAY,QAAQ,aAAa,IAAI,kBAAkB,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAuB,EAAE;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAW,CAAC;QAC1E,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,gDAAgD,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;AACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pavlos-samaras/react-cli",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "author": "sammern-stack",
5
5
  "description": "A CLI to generate React code",
6
6
  "keywords": [
@@ -1,12 +0,0 @@
1
- import { Command } from "commander";
2
- declare const STYLES: readonly ["css", "scss"];
3
- export type Style = (typeof STYLES)[number];
4
- export interface Options {
5
- feature?: string;
6
- style?: Style;
7
- ts?: boolean;
8
- force?: boolean;
9
- }
10
- export declare const registerGenerateCommand: (program: Command) => void;
11
- export {};
12
- //# sourceMappingURL=generate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,QAAA,MAAM,MAAM,YAAI,KAAK,EAAE,MAAM,CAAU,CAAC;AAGxC,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5C,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAkBD,eAAO,MAAM,uBAAuB,YAAa,OAAO,SA0EvD,CAAC"}
@@ -1,88 +0,0 @@
1
- import path from "path";
2
- import fs from "fs";
3
- import { Command } from "commander";
4
- import { error, info, warning } from "../utils/console.js";
5
- import { generateComponent, } from "../utils/generate/component.js";
6
- import chalk from "chalk";
7
- import { isReactProject } from "../utils/validators.js";
8
- import { generateHook } from "../utils/generate/hook.js";
9
- const TYPES = ["component", "hook"];
10
- const STYLES = ["css", "scss"];
11
- // Utilities
12
- const createDir = (pathToFolder) => {
13
- const folder = path.join(process.cwd(), pathToFolder);
14
- if (fs.existsSync(folder))
15
- return;
16
- fs.mkdirSync(folder, { recursive: true });
17
- return folder;
18
- };
19
- const createComponentFiles = (component) => {
20
- const { JSX, stylesheet, hook, test } = component;
21
- fs.writeFileSync(JSX.path, JSX.content);
22
- fs.writeFileSync(stylesheet.path, stylesheet.content);
23
- fs.writeFileSync(hook.path, hook.content);
24
- fs.writeFileSync(test.path, test.content);
25
- };
26
- export const registerGenerateCommand = (program) => {
27
- program
28
- .command("generate <type> <name>")
29
- .alias("g")
30
- .description("generate the given <type> content")
31
- .option("-f, --feature <feature>", "generate the given <type> inside a feature", (value) => value.replace(/=/, ""))
32
- .option("-s, --style <style>", "use the specified stylesheet style", (value) => value.replace(/=/, ""))
33
- .option("--ts", "Use typescript")
34
- .option("--force", "skip safety checks and overwrite")
35
- .action(async (type, name, options) => {
36
- if (!isReactProject() && !options.force) {
37
- error("This is not a React project\ncreate one or use 'ct new <name>'");
38
- process.exitCode = 1;
39
- return;
40
- }
41
- if (!TYPES.includes(type)) {
42
- error(`Invalid type: ${type}`);
43
- process.exitCode = 1;
44
- return;
45
- }
46
- if (options.style && !STYLES.includes(options.style)) {
47
- error(`Invalid style: ${options.style}`);
48
- process.exitCode = 1;
49
- return;
50
- }
51
- const rootDir = options.feature
52
- ? `src/features/${options.feature}`
53
- : "src";
54
- if (type === "component") {
55
- if (!/^[A-Z][a-zA-Z]*$/.test(name)) {
56
- warning(`Invalid component name ${name}`);
57
- process.exitCode = 1;
58
- return;
59
- }
60
- const folder = createDir(`${rootDir}/components/${name}`);
61
- if (!folder) {
62
- warning(`Folder ${name} already exists!`);
63
- process.exitCode = 1;
64
- return;
65
- }
66
- const component = await generateComponent(folder, name, options);
67
- createComponentFiles(component);
68
- info(`${name} created at ${chalk.gray(folder)}`);
69
- }
70
- if (type === "hook") {
71
- if (!/^use[A-Z][a-zA-Z]*$/.test(name)) {
72
- warning(`Invalid hook name ${name}`);
73
- process.exitCode = 1;
74
- return;
75
- }
76
- const folder = createDir(`${rootDir}/hooks/${name}`);
77
- if (!folder) {
78
- warning(`Folder ${name} already exists!`);
79
- process.exitCode = 1;
80
- return;
81
- }
82
- const hook = await generateHook(folder, name, options);
83
- fs.writeFileSync(hook.path, hook.content);
84
- info(`${name} created at ${chalk.gray(folder)}`);
85
- }
86
- });
87
- };
88
- //# sourceMappingURL=generate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,iBAAiB,GAElB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,MAAM,CAAU,CAAC;AAC7C,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;AAWxC,YAAY;AACZ,MAAM,SAAS,GAAG,CAAC,YAAoB,EAAE,EAAE;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO;IAClC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,SAAoB,EAAE,EAAE;IACpD,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAClD,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACtD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC1D,OAAO;SACJ,OAAO,CAAC,wBAAwB,CAAC;SACjC,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CACL,yBAAyB,EACzB,4CAA4C,EAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAClC;SACA,MAAM,CACL,qBAAqB,EACrB,oCAAoC,EACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAClC;SACA,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;SAChC,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAU,EAAE,IAAY,EAAE,OAAgB,EAAE,EAAE;QAC3D,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,KAAK,CAAC,gEAAgE,CAAC,CAAC;YACxE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;YAC/B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,kBAAkB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;YAC7B,CAAC,CAAC,gBAAgB,OAAO,CAAC,OAAO,EAAE;YACnC,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,eAAe,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC;gBAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACjE,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,IAAI,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,UAAU,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC;gBAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACvD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,IAAI,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,eAAO,MAAM,kBAAkB,YAAa,OAAO,SAiElD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export declare const DEFAULT_CONFIG: {
2
- dir: {
3
- component: string;
4
- hook: string;
5
- };
6
- typescript: boolean;
7
- stylesheet: string;
8
- };
9
- //# sourceMappingURL=ct.config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ct.config.d.ts","sourceRoot":"","sources":["../../src/constants/ct.config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;IACzB,GAAG;QACD,SAAS;QACT,IAAI;;IAEN,UAAU;IACV,UAAU;CACX,CAAC"}
@@ -1,9 +0,0 @@
1
- export const DEFAULT_CONFIG = {
2
- dir: {
3
- component: "components",
4
- hook: "hooks",
5
- },
6
- typescript: false,
7
- stylesheet: "css",
8
- };
9
- //# sourceMappingURL=ct.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ct.config.js","sourceRoot":"","sources":["../../src/constants/ct.config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE;QACH,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,OAAO;KACd;IACD,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;CAClB,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare const TYPES: string[];
2
- export declare const DEFAULT_DIRS: Record<string, string>;
3
- //# sourceMappingURL=generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/constants/generator.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,UAAwB,CAAC;AAE3C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG/C,CAAC"}
@@ -1,6 +0,0 @@
1
- export const TYPES = ["component", "hook"];
2
- export const DEFAULT_DIRS = {
3
- component: "components",
4
- hook: "hooks",
5
- };
6
- //# sourceMappingURL=generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/constants/generator.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,SAAS,EAAE,YAAY;IACvB,IAAI,EAAE,OAAO;CACd,CAAC"}
@@ -1,7 +0,0 @@
1
- export type GeneratorOptions = {
2
- dir?: string;
3
- feature?: string;
4
- ts?: boolean;
5
- force?: boolean;
6
- };
7
- //# sourceMappingURL=generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/types/generator.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/types/generator.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- import type { Options } from "../../commands/generate.js";
2
- type ComponentFile = "JSX" | "stylesheet" | "hook" | "test";
3
- export type Component = {
4
- [K in ComponentFile]: {
5
- path: string;
6
- content: string;
7
- };
8
- };
9
- export declare const generateComponent: (folder: string, name: string, options: Options) => Promise<Component>;
10
- export {};
11
- //# sourceMappingURL=component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/utils/generate/component.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,KAAK,aAAa,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,MAAM,MAAM,SAAS,GAAG;KACrB,CAAC,IAAI,aAAa,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CACxD,CAAC;AAiBF,eAAO,MAAM,iBAAiB,WACpB,MAAM,QACR,MAAM,WACH,OAAO,KACf,OAAO,CAAC,SAAS,CAuBnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/utils/generate/component.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,sBAAsB,MAAM,8BAA8B,CAAC;AAClE,OAAO,uBAAuB,MAAM,+BAA+B,CAAC;AACpE,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AASpD,YAAY;AACZ,MAAM,WAAW,GAAG,KAAK,IAAqB,EAAE;IAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;YAC9B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SACjC;QACD,OAAO,EAAE,CAAC;KACX,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,MAAc,EACd,IAAY,EACZ,OAAgB,EACI,EAAE;IACtB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,gBAAgB,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpC,OAAO;QACL,GAAG,EAAE;YACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,OAAO,GAAG,CAAC;YAC9C,OAAO,EAAE,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC;SAC9D;QACD,UAAU,EAAE;YACV,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,WAAW,aAAa,EAAE,CAAC;YAC1D,OAAO,EAAE,uBAAuB,CAAC,IAAI,CAAC;SACvC;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAChD,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC;SACjC;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,SAAS,OAAO,EAAE,CAAC;YAClD,OAAO,EAAE,EAAE;SACZ;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/utils/generate/hook.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,eAAO,MAAM,YAAY,WACf,MAAM,QACR,MAAM,WACH,OAAO;;;EASjB,CAAC"}
@@ -1,12 +0,0 @@
1
- import path from "path";
2
- import { isTypescriptUsed } from "../validators.js";
3
- import buildHookTemplate from "../../templates/hook.js";
4
- export const generateHook = async (folder, name, options) => {
5
- const useTs = options.ts ?? isTypescriptUsed();
6
- const langExt = useTs ? "ts" : "js";
7
- return {
8
- path: path.join(folder, `${name}.${langExt}`),
9
- content: buildHookTemplate(name),
10
- };
11
- };
12
- //# sourceMappingURL=hook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/utils/generate/hook.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAGxD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAc,EACd,IAAY,EACZ,OAAgB,EAChB,EAAE;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,gBAAgB,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;QAC7C,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,21 +0,0 @@
1
- import type { GeneratorOptions } from "../types/generator.js";
2
- import type { CtConfig } from "./loadConfig.js";
3
- export declare const generateComponent: (folder: string, name: string, options: GeneratorOptions, config: CtConfig) => Promise<{
4
- JSX: {
5
- pathToFile: string;
6
- content: string;
7
- };
8
- stylesheet: {
9
- pathToFile: string;
10
- content: string;
11
- };
12
- hook: {
13
- pathToFile: string;
14
- content: string;
15
- };
16
- test: {
17
- pathToFile: string;
18
- content: string;
19
- };
20
- }>;
21
- //# sourceMappingURL=generateComponent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateComponent.d.ts","sourceRoot":"","sources":["../../src/utils/generateComponent.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,iBAAiB,WACpB,MAAM,QACR,MAAM,WACH,gBAAgB,UACjB,QAAQ;;QAqBZ,UAAU;QACV,OAAO;;;QAGP,UAAU;QACV,OAAO;;;QAGP,UAAU;QACV,OAAO;;;QAGP,UAAU;QACV,OAAO;;EAGZ,CAAC"}
@@ -1,42 +0,0 @@
1
- import path from "path";
2
- import prompts from "prompts";
3
- import buildComponentTemplate from "../templates/component.js";
4
- import buildStylesheetTemplate from "../templates/stylesheet.js";
5
- import buildHookTemplate from "../templates/hook.js";
6
- import { isTypescriptUsed } from "./validators.js";
7
- export const generateComponent = async (folder, name, options, config) => {
8
- const stylesheetExt = config.stylesheet
9
- ? { style: config.stylesheet }
10
- : await prompts({
11
- type: "select",
12
- name: "style",
13
- message: "What stylesheet to use",
14
- choices: [
15
- { title: "CSS", value: "css" },
16
- { title: "SCSS", value: "scss" },
17
- ],
18
- initial: 1,
19
- });
20
- const useTs = options.ts ?? config.typescript ?? isTypescriptUsed();
21
- const JsxExt = useTs ? "tsx" : "jsx";
22
- const languageExt = useTs ? "ts" : "js";
23
- return {
24
- JSX: {
25
- pathToFile: path.join(folder, `${name}.${JsxExt}`),
26
- content: buildComponentTemplate(name, stylesheetExt.style, languageExt),
27
- },
28
- stylesheet: {
29
- pathToFile: path.join(folder, `${name}.module.${stylesheetExt.style}`),
30
- content: buildStylesheetTemplate(name),
31
- },
32
- hook: {
33
- pathToFile: path.join(folder, `use${name}.${languageExt}`),
34
- content: buildHookTemplate(name),
35
- },
36
- test: {
37
- pathToFile: path.join(folder, `${name}.test.${languageExt}`),
38
- content: "",
39
- },
40
- };
41
- };
42
- //# sourceMappingURL=generateComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateComponent.js","sourceRoot":"","sources":["../../src/utils/generateComponent.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,sBAAsB,MAAM,2BAA2B,CAAC;AAC/D,OAAO,uBAAuB,MAAM,4BAA4B,CAAC;AACjE,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,MAAc,EACd,IAAY,EACZ,OAAyB,EACzB,MAAgB,EAChB,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU;QACrC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE;QAC9B,CAAC,CAAC,MAAM,OAAO,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,wBAAwB;YACjC,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC9B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;aACjC;YACD,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,IAAI,gBAAgB,EAAE,CAAC;IACpE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACrC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAExC,OAAO;QACL,GAAG,EAAE;YACH,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;YAClD,OAAO,EAAE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC;SACxE;QACD,UAAU,EAAE;YACV,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,WAAW,aAAa,CAAC,KAAK,EAAE,CAAC;YACtE,OAAO,EAAE,uBAAuB,CAAC,IAAI,CAAC;SACvC;QACD,IAAI,EAAE;YACJ,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC1D,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC;SACjC;QACD,IAAI,EAAE;YACJ,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,SAAS,WAAW,EAAE,CAAC;YAC5D,OAAO,EAAE,EAAE;SACZ;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { GeneratorOptions } from "../types/generator.js";
2
- import type { CtConfig } from "./loadConfig.js";
3
- export declare const generateHook: (folder: string, name: string, options: GeneratorOptions, config: CtConfig) => Promise<{
4
- pathToFile: string;
5
- content: string;
6
- }>;
7
- //# sourceMappingURL=generateHook.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateHook.d.ts","sourceRoot":"","sources":["../../src/utils/generateHook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,YAAY,WACf,MAAM,QACR,MAAM,WACH,gBAAgB,UACjB,QAAQ;;;EASjB,CAAC"}
@@ -1,12 +0,0 @@
1
- import path from "path";
2
- import buildHookTemplate from "../templates/hook.js";
3
- import { isTypescriptUsed } from "./validators.js";
4
- export const generateHook = async (folder, name, options, config) => {
5
- const useTs = options.ts ?? config.typescript ?? isTypescriptUsed();
6
- const languageExt = useTs ? "ts" : "js";
7
- return {
8
- pathToFile: path.join(folder, `${name}.${languageExt}`),
9
- content: buildHookTemplate(name),
10
- };
11
- };
12
- //# sourceMappingURL=generateHook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateHook.js","sourceRoot":"","sources":["../../src/utils/generateHook.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAc,EACd,IAAY,EACZ,OAAyB,EACzB,MAAgB,EAChB,EAAE;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,IAAI,gBAAgB,EAAE,CAAC;IACpE,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAExC,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,WAAW,EAAE,CAAC;QACvD,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC,CAAC"}
File without changes