comment-variables 0.0.2 → 0.0.3
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/comments.config.js +4 -0
- package/index.js +0 -11
- package/package.json +1 -1
- package/run-with-config.js +51 -11
package/comments.config.js
CHANGED
|
@@ -11,6 +11,10 @@ const config = {
|
|
|
11
11
|
levelThreeAlso: "Also level three here.",
|
|
12
12
|
levelThreeToo: "This too is level three.",
|
|
13
13
|
// test: "LEVELONE#LEVELTWO#LEVELTHREE", // errors
|
|
14
|
+
[`level$Three#First
|
|
15
|
+
whitespace`]: `This is level three
|
|
16
|
+
with whitespaces. `,
|
|
17
|
+
testing: 2,
|
|
14
18
|
},
|
|
15
19
|
},
|
|
16
20
|
};
|
package/index.js
CHANGED
|
@@ -233,17 +233,6 @@ const makeReverseJsCommentsRule = (reversedFlattenedConfig) => {
|
|
|
233
233
|
resolvedValue,
|
|
234
234
|
commentKey,
|
|
235
235
|
] of sortedReversedFlattenedConfig) {
|
|
236
|
-
// if (fixedText.includes(resolvedValue)) {
|
|
237
|
-
// fixedText = fixedText.replaceAll(
|
|
238
|
-
// resolvedValue,
|
|
239
|
-
// `$COMMENT#${commentKey}`
|
|
240
|
-
// );
|
|
241
|
-
// modified = true;
|
|
242
|
-
// }
|
|
243
|
-
// }
|
|
244
|
-
|
|
245
|
-
// if (modified) {
|
|
246
|
-
|
|
247
236
|
const pattern = new RegExp(
|
|
248
237
|
`(?<=\\s|^)${escapeRegex(resolvedValue)}(?=\\s|$)`,
|
|
249
238
|
"g"
|
package/package.json
CHANGED
package/run-with-config.js
CHANGED
|
@@ -15,7 +15,7 @@ function flattenConfig(
|
|
|
15
15
|
normalizedPath = currentPath
|
|
16
16
|
.map((k) => k.toUpperCase())
|
|
17
17
|
.join("#")
|
|
18
|
-
.
|
|
18
|
+
.replace(/\s/g, "_"); // whitespaces are replaced by underscores
|
|
19
19
|
|
|
20
20
|
if (typeof value === "string") {
|
|
21
21
|
if (map[normalizedPath]) {
|
|
@@ -59,13 +59,7 @@ function flattenConfig(
|
|
|
59
59
|
return { flattenedConfig, reversedFlattenedConfig };
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
export async function runWithConfig(
|
|
63
|
-
// const __filename = fileURLToPath(import.meta.url);
|
|
64
|
-
// const __dirname = dirname(__filename);
|
|
65
|
-
|
|
66
|
-
// const configPath = join(__dirname, rawConfigPath);
|
|
67
|
-
const configPath = rawConfigPath;
|
|
68
|
-
|
|
62
|
+
export async function runWithConfig(configPath) {
|
|
69
63
|
// Step 1: Check if config file exists
|
|
70
64
|
if (!existsSync(configPath)) {
|
|
71
65
|
console.warn("No config file found. Exiting gracefully.");
|
|
@@ -82,13 +76,59 @@ export async function runWithConfig(rawConfigPath) {
|
|
|
82
76
|
return null;
|
|
83
77
|
}
|
|
84
78
|
|
|
85
|
-
const RecursiveObject = z
|
|
86
|
-
|
|
87
|
-
|
|
79
|
+
const RecursiveObject = z
|
|
80
|
+
.lazy(() =>
|
|
81
|
+
z.record(
|
|
82
|
+
z.any().superRefine((val, ctx) => {
|
|
83
|
+
if (typeof val === "string") {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (typeof val === "object" && val !== null && !Array.isArray(val)) {
|
|
88
|
+
const parsed = RecursiveObject.safeParse(val);
|
|
89
|
+
if (!parsed.success) {
|
|
90
|
+
for (const issue of parsed.error.issues) {
|
|
91
|
+
ctx.addIssue({
|
|
92
|
+
...issue,
|
|
93
|
+
path: [...ctx.path, ...issue.path], // proper path propagation
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
ctx.addIssue({
|
|
101
|
+
code: z.ZodIssueCode.custom,
|
|
102
|
+
message: `Value \`${val}\` of type "${typeof val}" should be a string or a nested object.`,
|
|
103
|
+
path: ctx.path,
|
|
104
|
+
});
|
|
105
|
+
})
|
|
106
|
+
)
|
|
107
|
+
)
|
|
108
|
+
.superRefine((obj, ctx) => {
|
|
109
|
+
for (const key of Object.keys(obj)) {
|
|
110
|
+
if (key.includes("$")) {
|
|
111
|
+
ctx.addIssue({
|
|
112
|
+
code: z.ZodIssueCode.custom,
|
|
113
|
+
message: `Key "${key}" should not include the "$" character.`,
|
|
114
|
+
path: [key],
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
if (key.includes("#")) {
|
|
118
|
+
ctx.addIssue({
|
|
119
|
+
code: z.ZodIssueCode.custom,
|
|
120
|
+
message: `Key "${key}" should not include the "#" character.`,
|
|
121
|
+
path: [key],
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
|
|
88
127
|
const result = RecursiveObject.safeParse(config);
|
|
89
128
|
|
|
90
129
|
if (!result.success) {
|
|
91
130
|
console.warn("Config could not pass validation from zod.");
|
|
131
|
+
result.error.errors.map((e) => console.log(e.message));
|
|
92
132
|
return null;
|
|
93
133
|
}
|
|
94
134
|
|