skir-internal 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +2 -0
  2. package/dist/casing.d.ts +8 -0
  3. package/dist/casing.d.ts.map +1 -0
  4. package/dist/casing.js +43 -0
  5. package/dist/casing.js.map +1 -0
  6. package/dist/casing.test.d.ts.map +1 -0
  7. package/dist/casing.test.js +136 -0
  8. package/dist/casing.test.js.map +1 -0
  9. package/dist/command_line_parser.d.ts +33 -0
  10. package/dist/command_line_parser.d.ts.map +1 -0
  11. package/dist/command_line_parser.js +168 -0
  12. package/dist/command_line_parser.js.map +1 -0
  13. package/dist/command_line_parser.test.d.ts +2 -0
  14. package/dist/command_line_parser.test.d.ts.map +1 -0
  15. package/dist/command_line_parser.test.js +297 -0
  16. package/dist/command_line_parser.test.js.map +1 -0
  17. package/dist/compatibility_checker.d.ts +74 -0
  18. package/dist/compatibility_checker.d.ts.map +1 -0
  19. package/dist/compatibility_checker.js +341 -0
  20. package/dist/compatibility_checker.js.map +1 -0
  21. package/dist/compatibility_checker.test.d.ts +2 -0
  22. package/dist/compatibility_checker.test.d.ts.map +1 -0
  23. package/dist/compatibility_checker.test.js +582 -0
  24. package/dist/compatibility_checker.test.js.map +1 -0
  25. package/dist/compiler.d.ts.map +1 -0
  26. package/dist/compiler.js +375 -0
  27. package/dist/compiler.js.map +1 -0
  28. package/dist/config.d.ts +47 -0
  29. package/dist/config.d.ts.map +1 -0
  30. package/dist/config.js +23 -0
  31. package/dist/config.js.map +1 -0
  32. package/dist/definition_finder.d.ts +12 -0
  33. package/dist/definition_finder.d.ts.map +1 -0
  34. package/dist/definition_finder.js +180 -0
  35. package/dist/definition_finder.js.map +1 -0
  36. package/dist/definition_finder.test.d.ts +2 -0
  37. package/dist/definition_finder.test.d.ts.map +1 -0
  38. package/dist/definition_finder.test.js +164 -0
  39. package/dist/definition_finder.test.js.map +1 -0
  40. package/dist/doc_comment_parser.d.ts +3 -0
  41. package/dist/doc_comment_parser.d.ts.map +1 -0
  42. package/dist/doc_comment_parser.js +219 -0
  43. package/dist/doc_comment_parser.js.map +1 -0
  44. package/dist/doc_comment_parser.test.d.ts +2 -0
  45. package/dist/doc_comment_parser.test.d.ts.map +1 -0
  46. package/dist/doc_comment_parser.test.js +494 -0
  47. package/dist/doc_comment_parser.test.js.map +1 -0
  48. package/dist/encoding.d.ts +2 -0
  49. package/dist/encoding.d.ts.map +1 -0
  50. package/dist/encoding.js +38 -0
  51. package/dist/encoding.js.map +1 -0
  52. package/dist/encoding.test.d.ts +2 -0
  53. package/dist/encoding.test.d.ts.map +1 -0
  54. package/dist/encoding.test.js +23 -0
  55. package/dist/encoding.test.js.map +1 -0
  56. package/dist/error_renderer.d.ts +10 -0
  57. package/dist/error_renderer.d.ts.map +1 -0
  58. package/dist/error_renderer.js +266 -0
  59. package/dist/error_renderer.js.map +1 -0
  60. package/dist/formatter.d.ts +16 -0
  61. package/dist/formatter.d.ts.map +1 -0
  62. package/dist/formatter.js +220 -0
  63. package/dist/formatter.js.map +1 -0
  64. package/dist/formatter.test.d.ts +2 -0
  65. package/dist/formatter.test.d.ts.map +1 -0
  66. package/dist/formatter.test.js +390 -0
  67. package/dist/formatter.test.js.map +1 -0
  68. package/dist/formatter2.d.ts +3 -0
  69. package/dist/formatter2.d.ts.map +1 -0
  70. package/dist/formatter2.js +67 -0
  71. package/dist/formatter2.js.map +1 -0
  72. package/dist/index.d.ts +6 -0
  73. package/dist/index.d.ts.map +1 -0
  74. package/dist/index.js +5 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/index.test.d.ts.map +1 -0
  77. package/dist/index.test.js +14 -0
  78. package/dist/index.test.js.map +1 -0
  79. package/dist/io.d.ts.map +1 -0
  80. package/dist/io.js +22 -0
  81. package/dist/io.js.map +1 -0
  82. package/dist/language_server.d.ts +15 -0
  83. package/dist/language_server.d.ts.map +1 -0
  84. package/dist/language_server.js +248 -0
  85. package/dist/language_server.js.map +1 -0
  86. package/dist/literals.d.ts +13 -0
  87. package/dist/literals.d.ts.map +1 -0
  88. package/dist/literals.js +100 -0
  89. package/dist/literals.js.map +1 -0
  90. package/dist/literals.test.d.ts.map +1 -0
  91. package/dist/literals.test.js +149 -0
  92. package/dist/literals.test.js.map +1 -0
  93. package/dist/module_collector.d.ts +3 -0
  94. package/dist/module_collector.d.ts.map +1 -0
  95. package/dist/module_collector.js +22 -0
  96. package/dist/module_collector.js.map +1 -0
  97. package/dist/module_set.d.ts +40 -0
  98. package/dist/module_set.d.ts.map +1 -0
  99. package/dist/module_set.js +1178 -0
  100. package/dist/module_set.js.map +1 -0
  101. package/dist/module_set.test.d.ts.map +1 -0
  102. package/dist/module_set.test.js +1897 -0
  103. package/dist/module_set.test.js.map +1 -0
  104. package/dist/parser.d.ts +7 -0
  105. package/dist/parser.d.ts.map +1 -0
  106. package/dist/parser.js +1075 -0
  107. package/dist/parser.js.map +1 -0
  108. package/dist/parser.test.d.ts.map +1 -0
  109. package/dist/parser.test.js +1594 -0
  110. package/dist/parser.test.js.map +1 -0
  111. package/dist/project_initializer.d.ts +2 -0
  112. package/dist/project_initializer.d.ts.map +1 -0
  113. package/dist/project_initializer.js +30 -0
  114. package/dist/project_initializer.js.map +1 -0
  115. package/dist/snapshotter.d.ts +9 -0
  116. package/dist/snapshotter.d.ts.map +1 -0
  117. package/dist/snapshotter.js +144 -0
  118. package/dist/snapshotter.js.map +1 -0
  119. package/dist/tokenizer.d.ts +10 -0
  120. package/dist/tokenizer.d.ts.map +1 -0
  121. package/dist/tokenizer.js +198 -0
  122. package/dist/tokenizer.js.map +1 -0
  123. package/dist/tokenizer.test.d.ts.map +1 -0
  124. package/dist/tokenizer.test.js +441 -0
  125. package/dist/tokenizer.test.js.map +1 -0
  126. package/dist/types.d.ts +439 -0
  127. package/dist/types.d.ts.map +1 -0
  128. package/dist/types.js +2 -0
  129. package/dist/types.js.map +1 -0
  130. package/package.json +58 -0
  131. package/src/casing.ts +53 -0
  132. package/src/types.ts +585 -0
package/README.md ADDED
@@ -0,0 +1,2 @@
1
+ [![npm](https://img.shields.io/npm/v/skir)](https://www.npmjs.com/package/skir-internal)
2
+ [![build](https://github.com/gepheum/skir-internal/workflows/Build/badge.svg)](https://github.com/gepheum/skir-internal/actions)
@@ -0,0 +1,8 @@
1
+ import type { Casing, ErrorSink, Token } from "./types.js";
2
+ /** Registers an error if the given token does not match the expected casing. */
3
+ export declare function validate(name: Token, expected: "lower_underscore" | "UpperCamel" | "UPPER_UNDERSCORE", errors: ErrorSink): void;
4
+ export declare function convertCase(text: string, target: Casing): string;
5
+ /** Returns a new string with the first letter of `name` capitalized. */
6
+ export declare function capitalize(name: string): string;
7
+ export declare function caseMatches(name: string, expected: "lower_underscore" | "UpperCamel" | "UPPER_UNDERSCORE"): boolean;
8
+ //# sourceMappingURL=casing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casing.d.ts","sourceRoot":"","sources":["../src/casing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAE3D,gFAAgF;AAChF,wBAAgB,QAAQ,CACtB,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,kBAAkB,GAAG,YAAY,GAAG,kBAAkB,EAChE,MAAM,EAAE,SAAS,GAChB,IAAI,CAON;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAiBhE;AAED,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kBAAkB,GAAG,YAAY,GAAG,kBAAkB,GAC/D,OAAO,CAST"}
package/dist/casing.js ADDED
@@ -0,0 +1,43 @@
1
+ /** Registers an error if the given token does not match the expected casing. */
2
+ export function validate(name, expected, errors) {
3
+ if (!caseMatches(name.text, expected)) {
4
+ errors.push({
5
+ token: name,
6
+ expected: expected,
7
+ });
8
+ }
9
+ }
10
+ export function convertCase(text, target) {
11
+ let words;
12
+ if (text.includes("_")) {
13
+ words = text.split("_").map((w) => w.toLowerCase());
14
+ }
15
+ else {
16
+ words = text.split(/(?=[A-Z])/).map((w) => w.toLowerCase());
17
+ }
18
+ switch (target) {
19
+ case "lowerCamel":
20
+ return words.map((w, i) => (i ? capitalize(w) : w)).join("");
21
+ case "lower_underscore":
22
+ return words.join("_");
23
+ case "UpperCamel":
24
+ return words.map(capitalize).join("");
25
+ case "UPPER_UNDERSCORE":
26
+ return words.map((w) => w.toUpperCase()).join("_");
27
+ }
28
+ }
29
+ /** Returns a new string with the first letter of `name` capitalized. */
30
+ export function capitalize(name) {
31
+ return name[0].toUpperCase() + name.slice(1);
32
+ }
33
+ export function caseMatches(name, expected) {
34
+ switch (expected) {
35
+ case "lower_underscore":
36
+ return /^[a-z][0-9a-z]*(_[a-z][0-9a-z]*)*$/.test(name);
37
+ case "UpperCamel":
38
+ return /^[A-Z][0-9A-Za-z]*$/.test(name);
39
+ case "UPPER_UNDERSCORE":
40
+ return /^[A-Z][0-9A-Z]*(_[A-Z][0-9A-Z]*)*$/.test(name);
41
+ }
42
+ }
43
+ //# sourceMappingURL=casing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casing.js","sourceRoot":"","sources":["../src/casing.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,UAAU,QAAQ,CACtB,IAAW,EACX,QAAgE,EAChE,MAAiB;IAEjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,MAAc;IACtD,IAAI,KAAwB,CAAC;IAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY;YACf,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,KAAK,kBAAkB;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,KAAK,YAAY;YACf,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,KAAK,kBAAkB;YACrB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,QAAgE;IAEhE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,kBAAkB;YACrB,OAAO,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,KAAK,YAAY;YACf,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,kBAAkB;YACrB,OAAO,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casing.test.d.ts","sourceRoot":"","sources":["../src/casing.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,136 @@
1
+ import { expect } from "buckwheat";
2
+ import { describe, it } from "mocha";
3
+ import { capitalize, convertCase, validate } from "./casing.js";
4
+ function makeToken(text) {
5
+ return {
6
+ text: text,
7
+ originalText: text,
8
+ colNumber: 0,
9
+ line: {
10
+ line: "",
11
+ lineNumber: 0,
12
+ modulePath: "",
13
+ position: 0,
14
+ },
15
+ position: 0,
16
+ };
17
+ }
18
+ function doValidate(text, casing) {
19
+ const errors = [];
20
+ validate(makeToken(text), casing, errors);
21
+ return errors;
22
+ }
23
+ describe("casing", () => {
24
+ describe("validate", () => {
25
+ it("is lower_underscore", () => {
26
+ expect(doValidate("foo", "lower_underscore")).toMatch([]);
27
+ expect(doValidate("foo_bar", "lower_underscore")).toMatch([]);
28
+ expect(doValidate("f00", "lower_underscore")).toMatch([]);
29
+ expect(doValidate("f00_bar", "lower_underscore")).toMatch([]);
30
+ });
31
+ it("is not lower_underscore", () => {
32
+ expect(doValidate("Foo", "lower_underscore")).toMatch([
33
+ {
34
+ token: {
35
+ text: "Foo",
36
+ },
37
+ expected: "lower_underscore",
38
+ },
39
+ ]);
40
+ expect(doValidate("foo__bar", "lower_underscore")).toMatch([
41
+ {
42
+ token: {
43
+ text: "foo__bar",
44
+ },
45
+ expected: "lower_underscore",
46
+ },
47
+ ]);
48
+ expect(doValidate("foo_", "lower_underscore")).toMatch([
49
+ {
50
+ token: {
51
+ text: "foo_",
52
+ },
53
+ expected: "lower_underscore",
54
+ },
55
+ ]);
56
+ expect(doValidate("fOO", "lower_underscore")).toMatch([
57
+ {
58
+ token: {
59
+ text: "fOO",
60
+ },
61
+ expected: "lower_underscore",
62
+ },
63
+ ]);
64
+ expect(doValidate("foo_7", "lower_underscore")).toMatch([
65
+ {
66
+ token: {
67
+ text: "foo_7",
68
+ },
69
+ expected: "lower_underscore",
70
+ },
71
+ ]);
72
+ });
73
+ it("is UPPER_UNDERSCORE", () => {
74
+ expect(doValidate("FOO", "UPPER_UNDERSCORE")).toMatch([]);
75
+ expect(doValidate("FOO_BAR", "UPPER_UNDERSCORE")).toMatch([]);
76
+ expect(doValidate("F00", "UPPER_UNDERSCORE")).toMatch([]);
77
+ expect(doValidate("F00_BAR", "UPPER_UNDERSCORE")).toMatch([]);
78
+ });
79
+ it("is not UPPER_UNDERSCORE", () => {
80
+ expect(doValidate("fOO", "UPPER_UNDERSCORE")).toMatch([
81
+ {
82
+ token: {
83
+ text: "fOO",
84
+ },
85
+ expected: "UPPER_UNDERSCORE",
86
+ },
87
+ ]);
88
+ expect(doValidate("FOO__BAR", "UPPER_UNDERSCORE")).toMatch([
89
+ {
90
+ token: {
91
+ text: "FOO__BAR",
92
+ },
93
+ expected: "UPPER_UNDERSCORE",
94
+ },
95
+ ]);
96
+ expect(doValidate("FOO_", "UPPER_UNDERSCORE")).toMatch([
97
+ {
98
+ token: {
99
+ text: "FOO_",
100
+ },
101
+ expected: "UPPER_UNDERSCORE",
102
+ },
103
+ ]);
104
+ expect(doValidate("fOO", "UPPER_UNDERSCORE")).toMatch([
105
+ {
106
+ token: {
107
+ text: "fOO",
108
+ },
109
+ expected: "UPPER_UNDERSCORE",
110
+ },
111
+ ]);
112
+ expect(doValidate("FOO_7", "UPPER_UNDERSCORE")).toMatch([
113
+ {
114
+ token: {
115
+ text: "FOO_7",
116
+ },
117
+ expected: "UPPER_UNDERSCORE",
118
+ },
119
+ ]);
120
+ });
121
+ });
122
+ it("convert", () => {
123
+ expect(convertCase("FOO_BAR", "UPPER_UNDERSCORE")).toBe("FOO_BAR");
124
+ expect(convertCase("FOO_BAR", "UpperCamel")).toBe("FooBar");
125
+ expect(convertCase("FOO_BAR", "lowerCamel")).toBe("fooBar");
126
+ expect(convertCase("FOO_BAR", "lower_underscore")).toBe("foo_bar");
127
+ expect(convertCase("FooBar", "UPPER_UNDERSCORE")).toBe("FOO_BAR");
128
+ expect(convertCase("fooBar", "UPPER_UNDERSCORE")).toBe("FOO_BAR");
129
+ expect(convertCase("foo_bar", "UPPER_UNDERSCORE")).toBe("FOO_BAR");
130
+ expect(convertCase("fo6_b7r", "UpperCamel")).toBe("Fo6B7r");
131
+ });
132
+ it("capitalize", () => {
133
+ expect(capitalize("fooBar")).toBe("FooBar");
134
+ });
135
+ });
136
+ //# sourceMappingURL=casing.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casing.test.js","sourceRoot":"","sources":["../src/casing.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export type ParsedArgs = {
2
+ kind: "gen";
3
+ subcommand?: "watch";
4
+ root?: string;
5
+ } | {
6
+ kind: "format";
7
+ subcommand?: "check";
8
+ root?: string;
9
+ } | {
10
+ kind: "snapshot";
11
+ subcommand?: "check" | "view";
12
+ root?: string;
13
+ } | {
14
+ kind: "init";
15
+ root?: string;
16
+ } | {
17
+ kind: "help";
18
+ root?: undefined;
19
+ } | {
20
+ kind: "error";
21
+ root?: undefined;
22
+ };
23
+ /**
24
+ * Parse command-line arguments and return a structured representation.
25
+ *
26
+ * @param args - Array of command-line arguments (typically process.argv.slice(2))
27
+ * @returns ParsedCommandLine object representing the command and its options
28
+ */
29
+ export declare function parseCommandLine(args: string[]): ParsedArgs;
30
+ export declare class CommandLineParseError extends Error {
31
+ constructor(message: string);
32
+ }
33
+ //# sourceMappingURL=command_line_parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command_line_parser.d.ts","sourceRoot":"","sources":["../src/command_line_parser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEN;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA0C3D;AA+BD,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Parse command-line arguments and return a structured representation.
3
+ *
4
+ * @param args - Array of command-line arguments (typically process.argv.slice(2))
5
+ * @returns ParsedCommandLine object representing the command and its options
6
+ */
7
+ export function parseCommandLine(args) {
8
+ if (args.length === 0) {
9
+ printHelp();
10
+ return { kind: "help" };
11
+ }
12
+ const command = args[0];
13
+ if (command === "help" || command === "--help" || command === "-h") {
14
+ printHelp();
15
+ return { kind: "help" };
16
+ }
17
+ const validCommands = ["gen", "format", "snapshot", "init"];
18
+ if (!command || !validCommands.includes(command)) {
19
+ printError(`Unknown command: ${command}`);
20
+ printHelp();
21
+ return { kind: "error" };
22
+ }
23
+ try {
24
+ const options = parseOptions(args.slice(1));
25
+ switch (command) {
26
+ case "gen":
27
+ return buildGenCommand(options);
28
+ case "format":
29
+ return buildFormatCommand(options);
30
+ case "snapshot":
31
+ return buildSnapshotCommand(options);
32
+ case "init":
33
+ return buildInitCommand(options);
34
+ default:
35
+ throw new CommandLineParseError(`Unexpected command: ${command}`);
36
+ }
37
+ }
38
+ catch (error) {
39
+ if (error instanceof CommandLineParseError) {
40
+ printError(error.message);
41
+ return { kind: "error" };
42
+ }
43
+ throw error;
44
+ }
45
+ }
46
+ const COMMAND_BASE = "npx skir";
47
+ const HELP_TEXT = `
48
+ Usage: ${COMMAND_BASE} <command> [subcommand] [options]
49
+
50
+ Commands:
51
+ gen [watch] Generate code from Skir source files to target languages
52
+ watch: Automatically regenerate when .skir files change
53
+ format [check] Format all .skir files in the specified directory
54
+ check: Fail if code is not properly formatted
55
+ snapshot [check|view] Manage .skir file snapshots for compatibility checking
56
+ check: Fail if there are breaking changes since last snapshot
57
+ view: Display the last snapshot
58
+ init Initialize a new Skir project with a minimal skir.yml file
59
+ help Display this help message
60
+
61
+ Options:
62
+ --root, -r <path> Path to the directory containing the skir.yml configuration file
63
+
64
+ Examples:
65
+ ${COMMAND_BASE} gen
66
+ ${COMMAND_BASE} gen watch
67
+ ${COMMAND_BASE} format --root path/to/root/dir
68
+ ${COMMAND_BASE} format check -r path/to/root/dir
69
+ ${COMMAND_BASE} snapshot
70
+ ${COMMAND_BASE} snapshot check
71
+ ${COMMAND_BASE} snapshot view --root path/to/root/dir
72
+ `;
73
+ export class CommandLineParseError extends Error {
74
+ constructor(message) {
75
+ super(message);
76
+ this.name = "CommandLineParseError";
77
+ }
78
+ }
79
+ function parseOptions(args) {
80
+ const options = {
81
+ unknown: [],
82
+ };
83
+ for (let i = 0; i < args.length; i++) {
84
+ const arg = args[i];
85
+ if (!arg)
86
+ continue;
87
+ if (arg === "--root" || arg === "-r") {
88
+ if (i + 1 >= args.length) {
89
+ throw new CommandLineParseError(`Option ${arg} requires a value`);
90
+ }
91
+ if (options.root !== undefined) {
92
+ throw new CommandLineParseError(`Option ${arg} specified multiple times`);
93
+ }
94
+ options.root = args[i + 1];
95
+ i++; // Skip the next argument as it's the value
96
+ }
97
+ else if (arg.startsWith("-")) {
98
+ options.unknown.push(arg);
99
+ }
100
+ else {
101
+ // Positional argument - treat as subcommand
102
+ if (options.subcommand !== undefined) {
103
+ throw new CommandLineParseError(`Unexpected argument: ${arg}`);
104
+ }
105
+ options.subcommand = arg;
106
+ }
107
+ }
108
+ return options;
109
+ }
110
+ function buildGenCommand(options) {
111
+ validateNoUnknownOptions(options, "gen");
112
+ if (options.subcommand !== undefined && options.subcommand !== "watch") {
113
+ throw new CommandLineParseError(`Unknown subcommand for 'gen': ${options.subcommand}`);
114
+ }
115
+ return {
116
+ kind: "gen",
117
+ root: options.root,
118
+ subcommand: options.subcommand === "watch" ? "watch" : undefined,
119
+ };
120
+ }
121
+ function buildFormatCommand(options) {
122
+ validateNoUnknownOptions(options, "format");
123
+ if (options.subcommand !== undefined && options.subcommand !== "check") {
124
+ throw new CommandLineParseError(`Unknown subcommand for 'format': ${options.subcommand}`);
125
+ }
126
+ return {
127
+ kind: "format",
128
+ root: options.root,
129
+ subcommand: options.subcommand === "check" ? "check" : undefined,
130
+ };
131
+ }
132
+ function buildSnapshotCommand(options) {
133
+ validateNoUnknownOptions(options, "snapshot");
134
+ if (options.subcommand !== undefined &&
135
+ options.subcommand !== "check" &&
136
+ options.subcommand !== "view") {
137
+ throw new CommandLineParseError(`Unknown subcommand for 'snapshot': ${options.subcommand}`);
138
+ }
139
+ return {
140
+ kind: "snapshot",
141
+ root: options.root,
142
+ subcommand: options.subcommand === "check" || options.subcommand === "view"
143
+ ? options.subcommand
144
+ : undefined,
145
+ };
146
+ }
147
+ function buildInitCommand(options) {
148
+ validateNoUnknownOptions(options, "init");
149
+ if (options.subcommand !== undefined) {
150
+ throw new CommandLineParseError(`Unknown subcommand for 'init': ${options.subcommand}`);
151
+ }
152
+ return {
153
+ kind: "init",
154
+ root: options.root,
155
+ };
156
+ }
157
+ function validateNoUnknownOptions(options, command) {
158
+ if (options.unknown.length > 0) {
159
+ throw new CommandLineParseError(`Unknown option${options.unknown.length > 1 ? "s" : ""} for '${command}': ${options.unknown.join(", ")}`);
160
+ }
161
+ }
162
+ function printHelp() {
163
+ console.log(HELP_TEXT);
164
+ }
165
+ function printError(message) {
166
+ console.error(`Error: ${message}\n`);
167
+ }
168
+ //# sourceMappingURL=command_line_parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command_line_parser.js","sourceRoot":"","sources":["../src/command_line_parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=command_line_parser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command_line_parser.test.d.ts","sourceRoot":"","sources":["../src/command_line_parser.test.ts"],"names":[],"mappings":""}