@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,337 @@
1
+ import { toPascalCase } from '../code/tool.js';
2
+ const TYPE = {
3
+ boolean: 'boolean',
4
+ number: 'number',
5
+ decimal: 'number',
6
+ integer: 'number',
7
+ natural_number: 'number',
8
+ array_buffer: 'ArrayBuffer',
9
+ blob: 'Blob',
10
+ json: 'object',
11
+ string: 'string',
12
+ timestamp: 'Date',
13
+ date: 'Date',
14
+ uuid: 'string',
15
+ };
16
+ /**
17
+ * Make types in the `~/code/type/index.ts` file.
18
+ */
19
+ export default function make(base, hold, need = true) {
20
+ var _a, _b;
21
+ var _c;
22
+ const hash = {};
23
+ for (const name in base.link) {
24
+ const site = base.link[name];
25
+ const file = `${site.save}/index`;
26
+ (_a = (_c = hold.load)[file]) !== null && _a !== void 0 ? _a : (_c[file] = {});
27
+ (_b = hash[file]) !== null && _b !== void 0 ? _b : (hash[file] = []);
28
+ }
29
+ for (const name in base.link) {
30
+ const site = base.link[name];
31
+ const file = `${site.save}/index`;
32
+ const list = hash[file];
33
+ switch (site.form) {
34
+ case 'form':
35
+ make_form({ form: site, base, name, hold, file, need }).forEach(line => {
36
+ list.push(line);
37
+ });
38
+ break;
39
+ case 'hash':
40
+ make_hash({ hash: site, base, name, hold, file, need }).forEach(line => {
41
+ list.push(line);
42
+ });
43
+ break;
44
+ case 'list':
45
+ make_list({ list: site, base, name, hold, file, need }).forEach(line => {
46
+ list.push(line);
47
+ });
48
+ break;
49
+ }
50
+ }
51
+ return hash;
52
+ }
53
+ export function make_form({ name, form, base, hold, file, need = false, }) {
54
+ var _a, _b, _c;
55
+ var _d, _e, _f;
56
+ const list = [];
57
+ const load = ((_a = (_d = hold.load)[file]) !== null && _a !== void 0 ? _a : (_d[file] = {}));
58
+ const formName = makePascalName(name, need);
59
+ if ('link' in form) {
60
+ let base;
61
+ if (form.base) {
62
+ const name = makePascalName(form.base, need);
63
+ base = `${name} & `;
64
+ load[name] = true;
65
+ }
66
+ else {
67
+ base = ``;
68
+ }
69
+ (_b = (_e = hold.save)[formName]) !== null && _b !== void 0 ? _b : (_e[formName] = { file, form: 'form' });
70
+ list.push(`export type ${formName} = ${base}{`);
71
+ }
72
+ else if ('case' in form || 'fuse' in form) {
73
+ (_c = (_f = hold.save)[formName]) !== null && _c !== void 0 ? _c : (_f[formName] = { file, form: 'form' });
74
+ list.push(`export type ${formName} =`);
75
+ }
76
+ make_link_list({
77
+ form,
78
+ base,
79
+ hold,
80
+ file,
81
+ need,
82
+ }).forEach(line => {
83
+ list.push(` ${line}`);
84
+ });
85
+ if ('link' in form) {
86
+ list.push(`}`);
87
+ }
88
+ return list;
89
+ }
90
+ export function make_hash({ name, hash, base, file, hold, need = false, }) {
91
+ var _a, _b, _c, _d;
92
+ var _e, _f, _g, _h;
93
+ if (!need) {
94
+ return [];
95
+ }
96
+ const list = [];
97
+ const typeValueName = makePascalName(`${name}_value`, need);
98
+ list.push(`export type ${typeValueName} = `);
99
+ if ('case' in hash.bond) {
100
+ make_form_case({
101
+ form: hash.bond,
102
+ base,
103
+ file,
104
+ hold,
105
+ need,
106
+ }).forEach(line => {
107
+ list.push(line);
108
+ });
109
+ }
110
+ else {
111
+ make_form_like({
112
+ form: hash.bond,
113
+ base,
114
+ hold,
115
+ file,
116
+ need,
117
+ }).forEach(line => {
118
+ list.push(line);
119
+ });
120
+ }
121
+ list.push(``);
122
+ const load = ((_a = (_e = hold.load)[file]) !== null && _a !== void 0 ? _a : (_e[file] = {}));
123
+ const typeName = makePascalName(name, need);
124
+ (_b = (_f = hold.save)[typeName]) !== null && _b !== void 0 ? _b : (_f[typeName] = { file, form: 'form' });
125
+ (_c = (_g = hold.save)[typeValueName]) !== null && _c !== void 0 ? _c : (_g[typeValueName] = { file, form: 'form' });
126
+ if (hash.link) {
127
+ const linkTypeName = findAndLinkName({
128
+ like: hash.link,
129
+ base,
130
+ file,
131
+ hold,
132
+ need,
133
+ });
134
+ load[linkTypeName] = true;
135
+ list.push(`export type ${typeName} = Record<${linkTypeName}, ${typeValueName}>`);
136
+ }
137
+ else {
138
+ const keyList = Object.keys(hash.hash);
139
+ const typeKeyName = makePascalName(`${name}_key`, need);
140
+ (_d = (_h = hold.save)[typeKeyName]) !== null && _d !== void 0 ? _d : (_h[typeKeyName] = { file, form: 'list' });
141
+ list.push(``);
142
+ list.push(`export type ${typeKeyName} =
143
+ ${keyList.map(key => ` | '${key}'`).join('\n')}`);
144
+ list.push(``);
145
+ list.push(`export type ${typeName} = Record<${typeKeyName}, ${typeValueName}>`);
146
+ }
147
+ return list;
148
+ }
149
+ export function make_list({ name, list, base, file, hold, need = false, }) {
150
+ var _a;
151
+ var _b;
152
+ if (!need) {
153
+ return [];
154
+ }
155
+ const text = [];
156
+ const typeName = makePascalName(name, need);
157
+ (_a = (_b = hold.save)[typeName]) !== null && _a !== void 0 ? _a : (_b[typeName] = { file, form: 'list' });
158
+ text.push(``);
159
+ text.push(`export type ${typeName} =
160
+ ${list.list.map(key => ` | '${key}'`).join('\n')}`);
161
+ return text;
162
+ }
163
+ export function make_link_list({ form, base, hold, file, need = false, }) {
164
+ const list = [];
165
+ if ('link' in form) {
166
+ for (const name in form.link) {
167
+ const link = form.link[name];
168
+ if (!link) {
169
+ continue;
170
+ }
171
+ const optional = link.need === false ? '?' : need ? '' : '?';
172
+ const aS = link.list === true ? 'Array<' : '';
173
+ const aE = link.list === true ? '>' : '';
174
+ if (typeof link.like === 'string') {
175
+ const type = findAndLinkName({
176
+ like: link.like,
177
+ base,
178
+ file,
179
+ hold,
180
+ need,
181
+ });
182
+ list.push(` ${name}${optional}: ${aS}${type}${aE}`);
183
+ }
184
+ else if (link.case) {
185
+ if (Array.isArray(link.case)) {
186
+ const like_case = [];
187
+ link.case.forEach(c => {
188
+ if (c.like) {
189
+ const type = findAndLinkName({
190
+ like: c.like,
191
+ base,
192
+ file,
193
+ hold,
194
+ need,
195
+ });
196
+ like_case.push(type);
197
+ }
198
+ });
199
+ list.push(` ${name}${optional}: ${aS}${like_case.join(' | ')}${aE}`);
200
+ }
201
+ else {
202
+ const like_case = [];
203
+ for (const name in link.case) {
204
+ like_case.push(`'${name}'`);
205
+ }
206
+ list.push(` ${name}${optional}: ${aS}${like_case.join(' | ')}${aE}`);
207
+ }
208
+ }
209
+ else if (link.fuse) {
210
+ const like_fuse = [];
211
+ link.fuse.forEach(c => {
212
+ if (c.like) {
213
+ const type = findAndLinkName({
214
+ like: c.like,
215
+ base,
216
+ file,
217
+ hold,
218
+ need,
219
+ });
220
+ like_fuse.push(type);
221
+ }
222
+ });
223
+ list.push(` ${name}${optional}: ${aS}${like_fuse.join(' & ')}${aE}`);
224
+ }
225
+ else if (link.link) {
226
+ list.push(` ${name}${optional}: ${aS}{`);
227
+ make_link_list({
228
+ form: link,
229
+ base,
230
+ hold,
231
+ file,
232
+ need,
233
+ }).forEach(line => {
234
+ list.push(` ${line}`);
235
+ });
236
+ list.push(`}${aE}`);
237
+ }
238
+ else if (link.take) {
239
+ list.push(` ${name}${optional}: ${aS}${link.take
240
+ .map(x => `'${x}'`)
241
+ .join(' | ')}${aE}`);
242
+ }
243
+ }
244
+ }
245
+ else if ('case' in form) {
246
+ make_form_case({
247
+ form: form,
248
+ base,
249
+ file,
250
+ hold,
251
+ need,
252
+ }).forEach(line => {
253
+ list.push(line);
254
+ });
255
+ }
256
+ else if ('fuse' in form) {
257
+ const formList = [];
258
+ const fuse = form.fuse;
259
+ fuse.forEach(item => {
260
+ const type = findAndLinkName({
261
+ like: item.like,
262
+ base,
263
+ file,
264
+ hold,
265
+ need,
266
+ });
267
+ formList.push(type);
268
+ });
269
+ let formSite = `${formList.join(' & ')}`;
270
+ list.push(formSite);
271
+ }
272
+ return list;
273
+ }
274
+ function make_form_case({ form, base, hold, file, need = false, }) {
275
+ const formList = [];
276
+ const baseList = [];
277
+ const formCase = form.case;
278
+ formCase.forEach(item => {
279
+ if (typeof item === 'object' && 'like' in item) {
280
+ const type = findAndLinkName({
281
+ like: item.like,
282
+ base,
283
+ file,
284
+ hold,
285
+ need,
286
+ });
287
+ formList.push(type);
288
+ }
289
+ });
290
+ let baseSite = baseList.length > 0 ? `${baseList.join(' | ')}` : undefined;
291
+ if (baseSite) {
292
+ formList.push(baseSite);
293
+ }
294
+ let formSite = `${formList.join(' | ')}`;
295
+ return [formSite];
296
+ }
297
+ function make_form_like({ form, base, hold, file, need = false, }) {
298
+ const formList = [];
299
+ const baseList = [];
300
+ const type = findAndLinkName({
301
+ like: form.like,
302
+ base,
303
+ file,
304
+ hold,
305
+ need,
306
+ });
307
+ formList.push(type);
308
+ return formList;
309
+ }
310
+ function findAndLinkName({ like, base, file, hold, need = false, }) {
311
+ var _a;
312
+ var _b;
313
+ const type = TYPE[like];
314
+ if (typeof type === 'string') {
315
+ return type;
316
+ }
317
+ const name = base.name[like];
318
+ if (typeof name === 'string') {
319
+ return name;
320
+ }
321
+ const holdName = toPascalCase(like);
322
+ const holdFile = hold.save[holdName];
323
+ const load = ((_a = (_b = hold.load)[file]) !== null && _a !== void 0 ? _a : (_b[file] = {}));
324
+ if (holdFile) {
325
+ if (holdFile.form === 'list' || holdFile.form === 'hash') {
326
+ load[holdName] = true;
327
+ return holdName;
328
+ }
329
+ }
330
+ const headName = makePascalName(like, need);
331
+ load[headName] = true;
332
+ return headName;
333
+ }
334
+ function makePascalName(base, need = false) {
335
+ return `${toPascalCase(base)}${need ? '' : 'Optional'}`;
336
+ }
337
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../make/types.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@cluesurf/form",
3
+ "version": "0.1.0",
4
+ "license": "MIT",
5
+ "main": "./host/index.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "make": "rm -rf host && tsc && tsc-alias",
9
+ "scan": "rm -rf host && concurrently --kill-others \"tsc -w\" \"tsc-alias -w\"",
10
+ "lint": "eslint --ext .ts ./make",
11
+ "lint:fix": "npm run lint -- --fix",
12
+ "test:make": "npx tsx test/make.ts",
13
+ "test": "npx tsx --no-warnings=ExperimentalWarning test/index.ts",
14
+ "host": "pnpm make && npm publish --access=public"
15
+ },
16
+ "devDependencies": {
17
+ "@trivago/prettier-plugin-sort-imports": "^4.0.0",
18
+ "@types/lodash": "^4.14.194",
19
+ "@types/node": "^18.11.17",
20
+ "@types/prettier": "^2.7.2",
21
+ "@typescript-eslint/eslint-plugin": "^5.46.1",
22
+ "@typescript-eslint/parser": "^5.46.1",
23
+ "concurrently": "^7.6.0",
24
+ "eslint": "^8.31.0",
25
+ "eslint-config-prettier": "^8.5.0",
26
+ "eslint-config-standard-with-typescript": "^24.0.0",
27
+ "eslint-import-resolver-typescript": "^3.5.2",
28
+ "eslint-plugin-import": "^2.26.0",
29
+ "eslint-plugin-n": "^15.6.0",
30
+ "eslint-plugin-prettier": "^4.2.1",
31
+ "eslint-plugin-promise": "^6.1.1",
32
+ "eslint-plugin-simple-import-sort": "^8.0.0",
33
+ "eslint-plugin-sort-exports": "^0.8.0",
34
+ "eslint-plugin-sort-keys": "^2.3.5",
35
+ "eslint-plugin-typescript-sort-keys": "^2.1.0",
36
+ "prettier": "^2.8.1",
37
+ "prettier-eslint": "^15.0.1",
38
+ "ts-node": "^10.9.1",
39
+ "tsc-alias": "^1.8.2",
40
+ "tsx": "^3.12.7",
41
+ "typescript": "^4.9.4"
42
+ },
43
+ "dependencies": {
44
+ "@cluesurf/have": "^0.2.0",
45
+ "@cluesurf/kink": "^0.1.2",
46
+ "@cluesurf/love-code": "^0.1.10",
47
+ "dayjs": "^1.11.8",
48
+ "lodash": "^4.17.21"
49
+ },
50
+ "peerDependencies": {
51
+ "zod": "^3.22.4"
52
+ }
53
+ }
package/readme.md ADDED
@@ -0,0 +1,37 @@
1
+ <br/>
2
+ <br/>
3
+ <br/>
4
+ <br/>
5
+ <br/>
6
+ <br/>
7
+ <br/>
8
+
9
+ <h3 align='center'>@cluesurf/form</h3>
10
+ <p align='center'>
11
+ JSON Model Specification Tool
12
+ </p>
13
+
14
+ <br/>
15
+ <br/>
16
+ <br/>
17
+
18
+ ## Installation
19
+
20
+ ```
21
+ pnpm add @cluesurf/form
22
+ yarn add @cluesurf/form
23
+ npm i @cluesurf/form
24
+ ```
25
+
26
+ ## License
27
+
28
+ MIT
29
+
30
+ ## ClueSurf
31
+
32
+ This is being developed by the folks at [ClueSurf](https://clue.surf), a
33
+ California-based project for helping humanity master information and
34
+ computation. Find us on [Twitter](https://twitter.com/cluesurf),
35
+ [LinkedIn](https://www.linkedin.com/company/cluesurf), and
36
+ [Facebook](https://www.facebook.com/cluesurf). Check out our other
37
+ [GitHub projects](https://github.com/cluesurf) as well!