@cluesurf/form 0.1.0

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.
@@ -0,0 +1,396 @@
1
+ import { toPascalCase } from '../code/tool.js';
2
+ import snakeCase from 'lodash/snakeCase.js';
3
+ const TYPE = {
4
+ boolean: 'z.boolean()',
5
+ decimal: 'z.number()',
6
+ integer: 'z.number().int()',
7
+ json: 'z.object({}).passthrough()',
8
+ string: 'z.string()',
9
+ timestamp: 'z.coerce.date()',
10
+ date: 'z.coerce.date()',
11
+ uuid: 'z.string().uuid()',
12
+ natural_number: 'z.number().int().gte(0)',
13
+ };
14
+ /**
15
+ * Make parsers in the `~/code/type/parser/index.ts` file.
16
+ */
17
+ export default function make(base, hold) {
18
+ var _a;
19
+ const hash = {};
20
+ for (const name in base.link) {
21
+ const site = base.link[name];
22
+ if (!site) {
23
+ continue;
24
+ }
25
+ const file = `${site.save}/parsers`;
26
+ (_a = hash[file]) !== null && _a !== void 0 ? _a : (hash[file] = []);
27
+ const list = hash[file];
28
+ switch (site.form) {
29
+ case 'form':
30
+ list.push(``);
31
+ make_form({
32
+ form: site,
33
+ base,
34
+ name,
35
+ file,
36
+ hold,
37
+ }).forEach(line => {
38
+ list.push(line);
39
+ });
40
+ break;
41
+ case 'hash':
42
+ make_hash({
43
+ hash: site,
44
+ base,
45
+ name,
46
+ file,
47
+ hold,
48
+ }).forEach(line => {
49
+ list.push(line);
50
+ });
51
+ break;
52
+ case 'list':
53
+ list.push(``);
54
+ make_list({
55
+ list: site,
56
+ base,
57
+ name,
58
+ file,
59
+ hold,
60
+ }).forEach(line => {
61
+ list.push(line);
62
+ });
63
+ break;
64
+ }
65
+ }
66
+ return hash;
67
+ }
68
+ export function make_hash({ name, hash, base, file, hold, }) {
69
+ var _a, _b;
70
+ var _c, _d;
71
+ const list = [];
72
+ const typeName = toPascalCase(name);
73
+ const TYPE_NAME = snakeCase(name).toUpperCase();
74
+ if (hash.link) {
75
+ //
76
+ }
77
+ else {
78
+ const load = ((_a = (_c = hold.load)[file]) !== null && _a !== void 0 ? _a : (_c[file] = {}));
79
+ const typeNameKey = `${typeName}Key`;
80
+ const typeNameKeyModel = `${typeName}KeyParser`;
81
+ const TYPE_NAME_KEY = `${TYPE_NAME}_KEY`;
82
+ load[typeNameKey] = true;
83
+ load[TYPE_NAME_KEY] = true;
84
+ (_b = (_d = hold.save)[typeNameKeyModel]) !== null && _b !== void 0 ? _b : (_d[typeNameKeyModel] = { file });
85
+ list.push(``);
86
+ list.push(`export const ${typeNameKeyModel}: z.ZodType<${typeNameKey}> = z.enum(${TYPE_NAME_KEY})`);
87
+ }
88
+ return list;
89
+ }
90
+ export function make_list({ name, list, base, file, hold, }) {
91
+ var _a, _b;
92
+ var _c, _d, _e;
93
+ const text = [];
94
+ const typeName = toPascalCase(name);
95
+ const TYPE_NAME = snakeCase(name);
96
+ const load = ((_a = (_c = hold.load)[file]) !== null && _a !== void 0 ? _a : (_c[file] = {}));
97
+ const typeNameModel = `${typeName}`;
98
+ load[typeName] = true;
99
+ (_b = (_d = hold.save)[_e = `${typeNameModel}Parser`]) !== null && _b !== void 0 ? _b : (_d[_e] = { file });
100
+ text.push(`let ${typeNameModel}Model: z.ZodType<${typeName}>`);
101
+ text.push(``);
102
+ text.push(`export const ${typeNameModel}Parser = () => {`, ` if (!${typeNameModel}Model) {`, ` ${typeNameModel}Model = z.enum(LOAD('${TYPE_NAME}') as readonly [string, ...string[]]) as z.ZodType<${typeName}>`, ` }`, ` return ${typeNameModel}Model!`, `}`);
103
+ return text;
104
+ }
105
+ export function make_form({ name, form, base, file, hold, }) {
106
+ var _a, _b, _c;
107
+ var _d, _e, _f;
108
+ const list = [];
109
+ const typeName = toPascalCase(name);
110
+ const leak = 'leak' in form && form.leak;
111
+ const load = ((_a = (_d = hold.load)[file]) !== null && _a !== void 0 ? _a : (_d[file] = {}));
112
+ load[typeName] = true;
113
+ const typeParserName = `${typeName}Parser`;
114
+ const typeModelName = `${typeName}Model`;
115
+ if ('link' in form) {
116
+ let base;
117
+ if (form.base) {
118
+ const baseParserName = `${toPascalCase(form.base)}Parser`;
119
+ load[baseParserName] = true;
120
+ // base = `(${baseParserName} as z.ZodObject<z.ZodRawShape>).extend(`
121
+ base = `(${baseParserName}() as any).extend(`;
122
+ }
123
+ else {
124
+ base = 'z.object(';
125
+ }
126
+ (_b = (_e = hold.save)[typeParserName]) !== null && _b !== void 0 ? _b : (_e[typeParserName] = { file });
127
+ list.push(`let ${typeModelName}: z.ZodType<${typeName}>`);
128
+ list.push(``);
129
+ list.push(`export const ${typeParserName} = (): z.ZodType<${typeName}> => {`, ` if (!${typeModelName}) {`, ` ${typeModelName} = (${base}{`);
130
+ }
131
+ else {
132
+ (_c = (_f = hold.save)[typeParserName]) !== null && _c !== void 0 ? _c : (_f[typeParserName] = { file });
133
+ list.push(`let ${typeModelName}: z.ZodType<${typeName}>`);
134
+ list.push(``);
135
+ list.push(`export const ${typeParserName} = (): z.ZodType<${typeName}> => {`, ` if (!${typeModelName}) {`, ` ${typeModelName} =`);
136
+ }
137
+ make_link_list({
138
+ name,
139
+ form,
140
+ base,
141
+ leak,
142
+ file,
143
+ hold,
144
+ }).forEach(line => {
145
+ list.push(` ${line}`);
146
+ });
147
+ if ('link' in form) {
148
+ list.push(` })`);
149
+ if (form.make) {
150
+ list.push(` .transform(MAKE('${name}', code.${form.make}.make))`);
151
+ }
152
+ if (leak) {
153
+ list.push(` .passthrough()`);
154
+ }
155
+ list.push(`) as z.ZodType<${typeName}>`);
156
+ }
157
+ list.push(`}`);
158
+ list.push(` return ${typeModelName}!`, `}`);
159
+ // const link: Array<string> = []
160
+ // if (load) {
161
+ // load.forEach(l => {
162
+ // link.push(toPascalCase(l))
163
+ // })
164
+ // }
165
+ // list.push(``)
166
+ // list.push(
167
+ // `export function load${typeName}(source: any): ${typeName} {`,
168
+ // )
169
+ // list.push(` let x = source`)
170
+ // link.forEach(l => {
171
+ // list.push(` x = ${l}Model.parse(x)`)
172
+ // })
173
+ // list.push(` return x as ${typeName}`)
174
+ // list.push(`}`)
175
+ return list;
176
+ }
177
+ export function make_link_list({ form, base, leak, name, file, hold, }) {
178
+ var _a;
179
+ var _b;
180
+ const list = [];
181
+ const load = ((_a = (_b = hold.load)[file]) !== null && _a !== void 0 ? _a : (_b[file] = {}));
182
+ if ('link' in form) {
183
+ for (const name in form.link) {
184
+ const link = form.link[name];
185
+ if (!link) {
186
+ continue;
187
+ }
188
+ const oS = link.need === false ? 'z.optional(' : '';
189
+ const oE = link.need === false ? ')' : '';
190
+ const aS = link.list === true ? 'z.array(' : '';
191
+ const aE = link.list === true ? ')' : '';
192
+ const r = link.test
193
+ ? `.refine(TEST('${name}', code.${link.test}.test))`
194
+ : '';
195
+ const f = link.fall != null
196
+ ? `.default(${JSON.stringify(link.fall)})`
197
+ : '';
198
+ const l = leak ? `.passthrough()` : '';
199
+ if (typeof link.like === 'string') {
200
+ let type = TYPE[link.like];
201
+ if (type) {
202
+ list.push(` ${name}: ${oS}${aS}${type}${r}${aE}${oE}${f},`);
203
+ }
204
+ else {
205
+ const linkLikeModelName = `${toPascalCase(link.like)}Parser`;
206
+ if (base.mesh[link.like]) {
207
+ const meshForm = base.mesh[link.like];
208
+ if ((meshForm === null || meshForm === void 0 ? void 0 : meshForm.form) === 'list') {
209
+ type = `${linkLikeModelName}()`;
210
+ }
211
+ else {
212
+ type = `${linkLikeModelName}()${l}`;
213
+ }
214
+ load[linkLikeModelName] = true;
215
+ list.push(` ${name}: ${oS}${aS}z.lazy(() => ${type})${r}${aE}${oE}${f},`);
216
+ }
217
+ else {
218
+ type = `z.instanceof(${findAndLinkName({
219
+ like: link.like,
220
+ base,
221
+ file,
222
+ hold,
223
+ })})`;
224
+ list.push(` ${name}: ${oS}${aS}${type}${r}${aE}${oE}${f},`);
225
+ }
226
+ }
227
+ }
228
+ else if (link.case) {
229
+ if (Array.isArray(link.case)) {
230
+ const like_case = [];
231
+ link.case.forEach((c, i) => {
232
+ if (c.like) {
233
+ let type = TYPE[c.like];
234
+ const r = c.test
235
+ ? `.refine(TEST('${name}', code.${c.test}.test))`
236
+ : '';
237
+ if (type) {
238
+ like_case.push(`${type}${r}`);
239
+ }
240
+ else {
241
+ type = `${toPascalCase(c.like)}Parser`;
242
+ if (base.mesh[c.like]) {
243
+ load[type] = true;
244
+ like_case.push(`z.lazy(() => ${type}())${r}`);
245
+ }
246
+ else {
247
+ type = `z.instanceof(${findAndLinkName({
248
+ like: c.like,
249
+ base,
250
+ file,
251
+ hold,
252
+ })})`;
253
+ like_case.push(`${type}${r}`);
254
+ }
255
+ }
256
+ }
257
+ });
258
+ list.push(` ${name}: ${oS}${aS}z.union([${like_case.join(', ')}])${aE}${oE},`);
259
+ }
260
+ else {
261
+ const like_case = [];
262
+ for (const name in link.case) {
263
+ like_case.push(`'${name}'`);
264
+ }
265
+ list.push(` ${name}: ${oS}${aS}z.enum([${like_case.join(', ')}])${aE}${oE},`);
266
+ }
267
+ }
268
+ else if (link.fuse) {
269
+ const like_fuse = [];
270
+ link.fuse.forEach((c, i) => {
271
+ if (c.like) {
272
+ let type = TYPE[c.like];
273
+ const r = c.test
274
+ ? `.refine(TEST('${name}', code.${c.test}.test))`
275
+ : '';
276
+ if (type) {
277
+ like_fuse.push(`${type}${r}`);
278
+ }
279
+ else {
280
+ type = `${toPascalCase(c.like)}Parser`;
281
+ if (base.mesh[c.like]) {
282
+ load[type] = true;
283
+ like_fuse.push(`z.lazy(() => ${type}())${r}`);
284
+ }
285
+ else {
286
+ type = `z.instanceof(${findAndLinkName({
287
+ like: c.like,
288
+ base,
289
+ file,
290
+ hold,
291
+ })})`;
292
+ like_fuse.push(`${type}${r}`);
293
+ }
294
+ }
295
+ }
296
+ });
297
+ list.push(` ${name}: ${oS}${aS}z.intersection([${like_fuse.join(', ')}])${aE}${oE},`);
298
+ }
299
+ else if (link.link) {
300
+ list.push(` ${name}: ${oS}${aS}z.object({`);
301
+ make_link_list({
302
+ name,
303
+ form: link,
304
+ base,
305
+ leak,
306
+ file,
307
+ hold,
308
+ }).forEach(line => {
309
+ list.push(` ${line}`);
310
+ });
311
+ list.push(`})${l}${aE}${oE},`);
312
+ }
313
+ else if (link.take) {
314
+ if (link.take.length === 1) {
315
+ list.push(` ${name}: ${oS}${aS}z.literal(`);
316
+ list.push(` ${JSON.stringify(link.take[0])}`);
317
+ list.push(`)${l}${aE}${oE},`);
318
+ }
319
+ else {
320
+ list.push(` ${name}: ${oS}${aS}z.enum(`);
321
+ list.push(` ${JSON.stringify(link.take)}`);
322
+ list.push(`)${l}${aE}${oE},`);
323
+ }
324
+ }
325
+ }
326
+ }
327
+ else if ('case' in form) {
328
+ const formList = [];
329
+ const baseList = [];
330
+ const formCase = form.case;
331
+ formCase.forEach(item => {
332
+ let type = TYPE[item.like];
333
+ const r = item.test
334
+ ? `.refine(TEST('${name}', code.${item.test}.test))`
335
+ : '';
336
+ if (type) {
337
+ formList.push(`${type}${r}`);
338
+ }
339
+ else {
340
+ type = `${toPascalCase(item.like)}Parser`;
341
+ if (base.mesh[item.like]) {
342
+ load[type] = true;
343
+ formList.push(`z.lazy(() => ${type}())${r}`);
344
+ }
345
+ else {
346
+ type = `z.instanceof(${findAndLinkName({
347
+ like: item.like,
348
+ base,
349
+ file,
350
+ hold,
351
+ })})`;
352
+ formList.push(`${type}${r}`);
353
+ }
354
+ }
355
+ });
356
+ let baseSite = baseList.length > 0
357
+ ? `z.enum([${baseList.join(', ')}])`
358
+ : undefined;
359
+ if (baseSite) {
360
+ formList.push(baseSite);
361
+ }
362
+ let formSite = formList.length === 1 && baseSite
363
+ ? baseSite
364
+ : `z.union([${formList.join(', ')}])`;
365
+ list.push(formSite);
366
+ }
367
+ else if ('fuse' in form) {
368
+ const formList = [];
369
+ const fuse = form.fuse;
370
+ fuse.forEach(item => {
371
+ const itemModelName = `${item.like}Parser`;
372
+ load[itemModelName] = true;
373
+ formList.push(`z.lazy(() => ${itemModelName}())`);
374
+ });
375
+ let formSite = `z.intersection([${formList.join(', ')}])`;
376
+ list.push(formSite);
377
+ }
378
+ return list;
379
+ }
380
+ function findAndLinkName({ like, base, file, hold, }) {
381
+ var _a;
382
+ var _b;
383
+ const type = TYPE[like];
384
+ if (typeof type === 'string') {
385
+ return type;
386
+ }
387
+ const name = base.name[like];
388
+ if (typeof name === 'string') {
389
+ return name;
390
+ }
391
+ const headName = toPascalCase(like);
392
+ const load = ((_a = (_b = hold.load)[file]) !== null && _a !== void 0 ? _a : (_b[file] = {}));
393
+ load[headName] = true;
394
+ return headName;
395
+ }
396
+ //# sourceMappingURL=parsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../make/parsers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { Form, FormLinkMesh, Hash, List, Base } from '../code/type.js';
2
+ export type HoldFile = {
3
+ file: FileName;
4
+ form?: 'form' | 'hash' | 'list' | 'test';
5
+ };
6
+ export type Hold = {
7
+ save: Record<TypeName, HoldFile>;
8
+ load: Load;
9
+ };
10
+ export type FileName = string;
11
+ export type TypeName = string;
12
+ export type Load = Record<FileName, Record<TypeName, boolean>>;
13
+ /**
14
+ * Make types in the `~/code/type/index.ts` file.
15
+ */
16
+ export default function make(base: Base, hold: Hold, need?: boolean): Record<string, string[]>;
17
+ export declare function make_form({ name, form, base, hold, file, need, }: {
18
+ name: string;
19
+ form: Form;
20
+ base: Base;
21
+ hold: Hold;
22
+ file: string;
23
+ need?: boolean;
24
+ }): string[];
25
+ export declare function make_hash({ name, hash, base, file, hold, need, }: {
26
+ name: string;
27
+ hash: Hash;
28
+ base: Base;
29
+ file: string;
30
+ hold: Hold;
31
+ need?: boolean;
32
+ }): string[];
33
+ export declare function make_list({ name, list, base, file, hold, need, }: {
34
+ name: string;
35
+ list: List;
36
+ base: Base;
37
+ file: string;
38
+ hold: Hold;
39
+ need?: boolean;
40
+ }): string[];
41
+ export declare function make_link_list({ form, base, hold, file, need, }: {
42
+ form: Form | FormLinkMesh;
43
+ base: Base;
44
+ hold: Hold;
45
+ file: string;
46
+ need?: boolean;
47
+ }): string[];