@based/schema 2.0.0 → 2.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.
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +17 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/src/error.ts +0 -19
- package/src/index.ts +0 -7
- package/src/languages.ts +0 -188
- package/src/set/fields/array.ts +0 -155
- package/src/set/fields/index.ts +0 -70
- package/src/set/fields/number.ts +0 -144
- package/src/set/fields/object.ts +0 -31
- package/src/set/fields/references.ts +0 -140
- package/src/set/fields/set.ts +0 -63
- package/src/set/fields/string.ts +0 -291
- package/src/set/index.ts +0 -186
- package/src/set/isValidId.ts +0 -23
- package/src/set/types.ts +0 -0
- package/src/types.ts +0 -365
- package/src/updateSchema.ts +0 -18
- package/src/validateSchema.ts +0 -64
- package/src/walker/args.ts +0 -209
- package/src/walker/index.ts +0 -48
- package/src/walker/parse.ts +0 -233
- package/src/walker/types.ts +0 -81
- package/test/array.ts +0 -388
- package/test/number.ts +0 -435
- package/test/reference.ts +0 -219
- package/test/rest.ts +0 -185
- package/test/set.ts +0 -104
- package/test/string.ts +0 -118
- package/test/text.ts +0 -348
- package/test/utils/index.ts +0 -23
- package/test/validateSchema.ts +0 -41
- package/test/walker.ts +0 -319
- package/tsconfig.json +0 -9
package/dist/types.d.ts
CHANGED
|
@@ -6,7 +6,8 @@ export type AllowedTypes = (string | {
|
|
|
6
6
|
type?: string;
|
|
7
7
|
$filter: any | any[];
|
|
8
8
|
})[];
|
|
9
|
-
export
|
|
9
|
+
export declare const basedSchemaFieldTypes: readonly ["array", "object", "record", "set", "string", "boolean", "number", "json", "integer", "timestamp", "reference", "references", "text", "cardinality"];
|
|
10
|
+
export type BasedSchemaFieldType = (typeof basedSchemaFieldTypes)[number];
|
|
10
11
|
export declare const isCollection: (type: string) => boolean;
|
|
11
12
|
export type BasedSchemaPattern = string;
|
|
12
13
|
export type BasedSchemaLanguage = Language;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,WAAW,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAmB1C,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA;CAAE,CAAC,EAAE,CAAA;AAE/E,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isCollection = void 0;
|
|
3
|
+
exports.isCollection = exports.basedSchemaFieldTypes = void 0;
|
|
4
|
+
exports.basedSchemaFieldTypes = [
|
|
5
|
+
'array',
|
|
6
|
+
'object',
|
|
7
|
+
'record',
|
|
8
|
+
'set',
|
|
9
|
+
'string',
|
|
10
|
+
'boolean',
|
|
11
|
+
'number',
|
|
12
|
+
'json',
|
|
13
|
+
'integer',
|
|
14
|
+
'timestamp',
|
|
15
|
+
'reference',
|
|
16
|
+
'references',
|
|
17
|
+
'text',
|
|
18
|
+
'cardinality',
|
|
19
|
+
];
|
|
4
20
|
const isCollection = (type) => {
|
|
5
21
|
return type === 'array' || type === 'object' || type === 'record';
|
|
6
22
|
};
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAwBa,QAAA,qBAAqB,GAAG;IACnC,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,MAAM;IACN,SAAS;IACT,WAAW;IACX,WAAW;IACX,YAAY;IACZ,MAAM;IACN,aAAa;CACL,CAAA;AAGH,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE;IACpD,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAA;AACnE,CAAC,CAAA;AAFY,QAAA,YAAY,gBAExB"}
|
package/package.json
CHANGED
package/src/error.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export enum ParseError {
|
|
2
|
-
'incorrectFieldType',
|
|
3
|
-
'incorrectNodeType',
|
|
4
|
-
'exceedsMaximum',
|
|
5
|
-
'subceedsMinimum',
|
|
6
|
-
'fieldDoesNotExist',
|
|
7
|
-
'incorrectFormat',
|
|
8
|
-
'referenceIsIncorrectType',
|
|
9
|
-
'valueAndDefault',
|
|
10
|
-
'defaultNotSupported',
|
|
11
|
-
'multipleOperationsNotAllowed',
|
|
12
|
-
'requiredFieldNotDefined',
|
|
13
|
-
'languageNotSupported',
|
|
14
|
-
'invalidJSON',
|
|
15
|
-
'noLanguageFound',
|
|
16
|
-
'cannotDeleteNodeFromModify',
|
|
17
|
-
'nestedModifyObjectNotAllowed',
|
|
18
|
-
'infinityNotSupported',
|
|
19
|
-
}
|
package/src/index.ts
DELETED
package/src/languages.ts
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
export const languages = {
|
|
2
|
-
ab: 'Abkhazian',
|
|
3
|
-
aa: 'Afar',
|
|
4
|
-
af: 'Afrikaans',
|
|
5
|
-
ak: 'Akan',
|
|
6
|
-
sq: 'Albanian',
|
|
7
|
-
am: 'Amharic',
|
|
8
|
-
ar: 'Arabic',
|
|
9
|
-
an: 'Aragonese',
|
|
10
|
-
hy: 'Armenian',
|
|
11
|
-
as: 'Assamese',
|
|
12
|
-
av: 'Avaric',
|
|
13
|
-
ae: 'Avestan',
|
|
14
|
-
ay: 'Aymara',
|
|
15
|
-
az: 'Azerbaijani',
|
|
16
|
-
bm: 'Bambara',
|
|
17
|
-
ba: 'Bashkir',
|
|
18
|
-
eu: 'Basque',
|
|
19
|
-
be: 'Belarusian',
|
|
20
|
-
bn: 'Bengali',
|
|
21
|
-
bh: 'Bihari languages',
|
|
22
|
-
bi: 'Bislama',
|
|
23
|
-
bs: 'Bosnian',
|
|
24
|
-
br: 'Breton',
|
|
25
|
-
bg: 'Bulgarian',
|
|
26
|
-
my: 'Burmese',
|
|
27
|
-
ca: 'Catalan, Valencian',
|
|
28
|
-
km: 'Central Khmer',
|
|
29
|
-
ch: 'Chamorro',
|
|
30
|
-
ce: 'Chechen',
|
|
31
|
-
ny: 'Chichewa, Chewa, Nyanja',
|
|
32
|
-
zh: 'Chinese',
|
|
33
|
-
cu: 'Church Slavonic, Old Bulgarian, Old Church Slavonic',
|
|
34
|
-
cv: 'Chuvash',
|
|
35
|
-
kw: 'Cornish',
|
|
36
|
-
co: 'Corsican',
|
|
37
|
-
cr: 'Cree',
|
|
38
|
-
hr: 'Croatian',
|
|
39
|
-
cs: 'Czech',
|
|
40
|
-
da: 'Danish',
|
|
41
|
-
dv: 'Divehi, Dhivehi, Maldivian',
|
|
42
|
-
nl: 'Dutch, Flemish',
|
|
43
|
-
dz: 'Dzongkha',
|
|
44
|
-
en: 'English',
|
|
45
|
-
eo: 'Esperanto',
|
|
46
|
-
et: 'Estonian',
|
|
47
|
-
ee: 'Ewe',
|
|
48
|
-
fo: 'Faroese',
|
|
49
|
-
fj: 'Fijian',
|
|
50
|
-
fi: 'Finnish',
|
|
51
|
-
fr: 'French',
|
|
52
|
-
ff: 'Fulah',
|
|
53
|
-
gd: 'Gaelic, Scottish Gaelic',
|
|
54
|
-
gl: 'Galician',
|
|
55
|
-
lg: 'Ganda',
|
|
56
|
-
ka: 'Georgian',
|
|
57
|
-
de: 'German',
|
|
58
|
-
ki: 'Gikuyu, Kikuyu',
|
|
59
|
-
el: 'Greek (Modern)',
|
|
60
|
-
kl: 'Greenlandic, Kalaallisut',
|
|
61
|
-
gn: 'Guarani',
|
|
62
|
-
gu: 'Gujarati',
|
|
63
|
-
ht: 'Haitian, Haitian Creole',
|
|
64
|
-
ha: 'Hausa',
|
|
65
|
-
he: 'Hebrew',
|
|
66
|
-
hz: 'Herero',
|
|
67
|
-
hi: 'Hindi',
|
|
68
|
-
ho: 'Hiri Motu',
|
|
69
|
-
hu: 'Hungarian',
|
|
70
|
-
is: 'Icelandic',
|
|
71
|
-
io: 'Ido',
|
|
72
|
-
ig: 'Igbo',
|
|
73
|
-
id: 'Indonesian',
|
|
74
|
-
ia: 'Interlingua (International Auxiliary Language Association)',
|
|
75
|
-
ie: 'Interlingue',
|
|
76
|
-
iu: 'Inuktitut',
|
|
77
|
-
ik: 'Inupiaq',
|
|
78
|
-
ga: 'Irish',
|
|
79
|
-
it: 'Italian',
|
|
80
|
-
ja: 'Japanese',
|
|
81
|
-
jv: 'Javanese',
|
|
82
|
-
kn: 'Kannada',
|
|
83
|
-
kr: 'Kanuri',
|
|
84
|
-
ks: 'Kashmiri',
|
|
85
|
-
kk: 'Kazakh',
|
|
86
|
-
rw: 'Kinyarwanda',
|
|
87
|
-
kv: 'Komi',
|
|
88
|
-
kg: 'Kongo',
|
|
89
|
-
ko: 'Korean',
|
|
90
|
-
kj: 'Kwanyama, Kuanyama',
|
|
91
|
-
ku: 'Kurdish',
|
|
92
|
-
ky: 'Kyrgyz',
|
|
93
|
-
lo: 'Lao',
|
|
94
|
-
la: 'Latin',
|
|
95
|
-
lv: 'Latvian',
|
|
96
|
-
lb: 'Letzeburgesch, Luxembourgish',
|
|
97
|
-
li: 'Limburgish, Limburgan, Limburger',
|
|
98
|
-
ln: 'Lingala',
|
|
99
|
-
lt: 'Lithuanian',
|
|
100
|
-
lu: 'Luba-Katanga',
|
|
101
|
-
mk: 'Macedonian',
|
|
102
|
-
mg: 'Malagasy',
|
|
103
|
-
ms: 'Malay',
|
|
104
|
-
ml: 'Malayalam',
|
|
105
|
-
mt: 'Maltese',
|
|
106
|
-
gv: 'Manx',
|
|
107
|
-
mi: 'Maori',
|
|
108
|
-
mr: 'Marathi',
|
|
109
|
-
mh: 'Marshallese',
|
|
110
|
-
ro: 'Moldovan, Moldavian, Romanian',
|
|
111
|
-
mn: 'Mongolian',
|
|
112
|
-
na: 'Nauru',
|
|
113
|
-
nv: 'Navajo, Navaho',
|
|
114
|
-
nd: 'Northern Ndebele',
|
|
115
|
-
ng: 'Ndonga',
|
|
116
|
-
ne: 'Nepali',
|
|
117
|
-
se: 'Northern Sami',
|
|
118
|
-
no: 'Norwegian',
|
|
119
|
-
nb: 'Norwegian Bokmål',
|
|
120
|
-
nn: 'Norwegian Nynorsk',
|
|
121
|
-
ii: 'Nuosu, Sichuan Yi',
|
|
122
|
-
oc: 'Occitan (post 1500)',
|
|
123
|
-
oj: 'Ojibwa',
|
|
124
|
-
or: 'Oriya',
|
|
125
|
-
om: 'Oromo',
|
|
126
|
-
os: 'Ossetian, Ossetic',
|
|
127
|
-
pi: 'Pali',
|
|
128
|
-
pa: 'Panjabi, Punjabi',
|
|
129
|
-
ps: 'Pashto, Pushto',
|
|
130
|
-
fa: 'Persian',
|
|
131
|
-
pl: 'Polish',
|
|
132
|
-
pt: 'Portuguese',
|
|
133
|
-
qu: 'Quechua',
|
|
134
|
-
rm: 'Romansh',
|
|
135
|
-
rn: 'Rundi',
|
|
136
|
-
ru: 'Russian',
|
|
137
|
-
sm: 'Samoan',
|
|
138
|
-
sg: 'Sango',
|
|
139
|
-
sa: 'Sanskrit',
|
|
140
|
-
sc: 'Sardinian',
|
|
141
|
-
sr: 'Serbian',
|
|
142
|
-
sn: 'Shona',
|
|
143
|
-
sd: 'Sindhi',
|
|
144
|
-
si: 'Sinhala, Sinhalese',
|
|
145
|
-
sk: 'Slovak',
|
|
146
|
-
sl: 'Slovenian',
|
|
147
|
-
so: 'Somali',
|
|
148
|
-
st: 'Sotho, Southern',
|
|
149
|
-
nr: 'South Ndebele',
|
|
150
|
-
es: 'Spanish, Castilian',
|
|
151
|
-
su: 'Sundanese',
|
|
152
|
-
sw: 'Swahili',
|
|
153
|
-
ss: 'Swati',
|
|
154
|
-
sv: 'Swedish',
|
|
155
|
-
tl: 'Tagalog',
|
|
156
|
-
ty: 'Tahitian',
|
|
157
|
-
tg: 'Tajik',
|
|
158
|
-
ta: 'Tamil',
|
|
159
|
-
tt: 'Tatar',
|
|
160
|
-
te: 'Telugu',
|
|
161
|
-
th: 'Thai',
|
|
162
|
-
bo: 'Tibetan',
|
|
163
|
-
ti: 'Tigrinya',
|
|
164
|
-
to: 'Tonga (Tonga Islands)',
|
|
165
|
-
ts: 'Tsonga',
|
|
166
|
-
tn: 'Tswana',
|
|
167
|
-
tr: 'Turkish',
|
|
168
|
-
tk: 'Turkmen',
|
|
169
|
-
tw: 'Twi',
|
|
170
|
-
ug: 'Uighur, Uyghur',
|
|
171
|
-
uk: 'Ukrainian',
|
|
172
|
-
ur: 'Urdu',
|
|
173
|
-
uz: 'Uzbek',
|
|
174
|
-
ve: 'Venda',
|
|
175
|
-
vi: 'Vietnamese',
|
|
176
|
-
vo: 'Volap_k',
|
|
177
|
-
wa: 'Walloon',
|
|
178
|
-
cy: 'Welsh',
|
|
179
|
-
fy: 'Western Frisian',
|
|
180
|
-
wo: 'Wolof',
|
|
181
|
-
xh: 'Xhosa',
|
|
182
|
-
yi: 'Yiddish',
|
|
183
|
-
yo: 'Yoruba',
|
|
184
|
-
za: 'Zhuang, Chuang',
|
|
185
|
-
zu: 'Zulu',
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
export type Language = keyof typeof languages
|
package/src/set/fields/array.ts
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { setByPath } from '@saulx/utils'
|
|
2
|
-
import { ParseError } from '../../error'
|
|
3
|
-
import { FieldParser, ArgsClass } from '../../walker'
|
|
4
|
-
import { BasedSetTarget } from '../../types'
|
|
5
|
-
|
|
6
|
-
const collectOperation = (
|
|
7
|
-
fromArgs: ArgsClass<BasedSetTarget, 'array'>,
|
|
8
|
-
collected: any[],
|
|
9
|
-
value: any,
|
|
10
|
-
makeNegative?: number
|
|
11
|
-
) => {
|
|
12
|
-
fromArgs.collect(value)
|
|
13
|
-
if (collected.length) {
|
|
14
|
-
const collect = fromArgs.root._opts.collect
|
|
15
|
-
for (const args of collected) {
|
|
16
|
-
if (makeNegative) {
|
|
17
|
-
args.path[fromArgs.path.length] =
|
|
18
|
-
args.path[fromArgs.path.length] - makeNegative
|
|
19
|
-
|
|
20
|
-
collect(args)
|
|
21
|
-
} else {
|
|
22
|
-
collect(args)
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const parseArray = async (
|
|
29
|
-
args: ArgsClass<BasedSetTarget, 'array'>,
|
|
30
|
-
value: any,
|
|
31
|
-
idx: number = 0
|
|
32
|
-
): Promise<{ collected: ArgsClass<BasedSetTarget>[]; arr: any[] }> => {
|
|
33
|
-
const fromValue = Array.isArray(value) ? value : [value]
|
|
34
|
-
const q: Promise<any>[] = []
|
|
35
|
-
const arr = new Array(fromValue.length)
|
|
36
|
-
const collectNested = ['object', 'record', 'text'].includes(
|
|
37
|
-
args.fieldSchema.values.type
|
|
38
|
-
)
|
|
39
|
-
const collected: ArgsClass<BasedSetTarget>[] = []
|
|
40
|
-
for (let i = 0; i < fromValue.length; i++) {
|
|
41
|
-
q.push(
|
|
42
|
-
args.parse({
|
|
43
|
-
key: i + idx,
|
|
44
|
-
value: fromValue[i],
|
|
45
|
-
fieldSchema: args.fieldSchema.values,
|
|
46
|
-
collect: (nArgs) => {
|
|
47
|
-
const p = nArgs.path.slice(args.path.length)
|
|
48
|
-
// @ts-ignore
|
|
49
|
-
p[0] = p[0] - idx
|
|
50
|
-
setByPath(arr, p, nArgs.value)
|
|
51
|
-
if (collectNested) {
|
|
52
|
-
collected.push(nArgs)
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
})
|
|
56
|
-
)
|
|
57
|
-
}
|
|
58
|
-
await Promise.all(q)
|
|
59
|
-
return { arr, collected }
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const operations: {
|
|
63
|
-
[key: string]: (
|
|
64
|
-
args: ArgsClass<BasedSetTarget, 'array'>,
|
|
65
|
-
value: any
|
|
66
|
-
) => Promise<void>
|
|
67
|
-
} = {
|
|
68
|
-
$insert: async (args, value) => {
|
|
69
|
-
if (typeof value.$insert.$idx !== 'number') {
|
|
70
|
-
args.error(ParseError.incorrectFormat)
|
|
71
|
-
return
|
|
72
|
-
}
|
|
73
|
-
const { collected, arr } = await parseArray(
|
|
74
|
-
args,
|
|
75
|
-
value.$insert.$value,
|
|
76
|
-
value.$insert.$idx
|
|
77
|
-
)
|
|
78
|
-
value.$insert.$value = arr
|
|
79
|
-
collectOperation(args, collected, value)
|
|
80
|
-
},
|
|
81
|
-
$push: async (args, value) => {
|
|
82
|
-
const { collected, arr } = await parseArray(
|
|
83
|
-
args,
|
|
84
|
-
value.$push.$value ?? value.$push
|
|
85
|
-
)
|
|
86
|
-
value.$push = arr
|
|
87
|
-
collectOperation(args, collected, value, arr.length)
|
|
88
|
-
},
|
|
89
|
-
$unshift: async (args, value) => {
|
|
90
|
-
const { collected, arr } = await parseArray(
|
|
91
|
-
args,
|
|
92
|
-
value.$unshift.$value ?? value.$unshift
|
|
93
|
-
)
|
|
94
|
-
value.$unshift = arr
|
|
95
|
-
collectOperation(args, collected, value)
|
|
96
|
-
},
|
|
97
|
-
$remove: async (args, value) => {
|
|
98
|
-
if (typeof value.$remove.$idx !== 'number') {
|
|
99
|
-
args.error(ParseError.incorrectFormat)
|
|
100
|
-
return
|
|
101
|
-
}
|
|
102
|
-
args.collect(value)
|
|
103
|
-
},
|
|
104
|
-
$assign: async (args, value) => {
|
|
105
|
-
if (
|
|
106
|
-
typeof value.$assign !== 'object' ||
|
|
107
|
-
typeof value.$assign.$idx !== 'number'
|
|
108
|
-
) {
|
|
109
|
-
args.error(ParseError.incorrectFormat)
|
|
110
|
-
return
|
|
111
|
-
}
|
|
112
|
-
await args.parse({
|
|
113
|
-
key: value.$assign.$idx,
|
|
114
|
-
value: value.$assign.$value,
|
|
115
|
-
fieldSchema: args.fieldSchema.values,
|
|
116
|
-
})
|
|
117
|
-
},
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
export const array: FieldParser<'array'> = async (args) => {
|
|
121
|
-
args.stop()
|
|
122
|
-
if (typeof args.value !== 'object') {
|
|
123
|
-
args.error(ParseError.incorrectFormat)
|
|
124
|
-
return
|
|
125
|
-
}
|
|
126
|
-
let value = '$value' in args.value ? args.value.$value : args.value
|
|
127
|
-
if (Array.isArray(value)) {
|
|
128
|
-
const q: Promise<any>[] = []
|
|
129
|
-
args.collect({ $delete: true })
|
|
130
|
-
for (let i = 0; i < value.length; i++) {
|
|
131
|
-
q.push(
|
|
132
|
-
args.parse({
|
|
133
|
-
key: i,
|
|
134
|
-
value: args.value[i],
|
|
135
|
-
fieldSchema: args.fieldSchema.values,
|
|
136
|
-
})
|
|
137
|
-
)
|
|
138
|
-
}
|
|
139
|
-
await Promise.all(q)
|
|
140
|
-
return
|
|
141
|
-
}
|
|
142
|
-
let hasOperation = false
|
|
143
|
-
for (const key in value) {
|
|
144
|
-
if (operations[key]) {
|
|
145
|
-
if (hasOperation) {
|
|
146
|
-
args.error(ParseError.multipleOperationsNotAllowed)
|
|
147
|
-
return
|
|
148
|
-
}
|
|
149
|
-
await operations[key](args, value)
|
|
150
|
-
hasOperation = true
|
|
151
|
-
} else {
|
|
152
|
-
args.error(ParseError.fieldDoesNotExist)
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
package/src/set/fields/index.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { FieldParsers } from '../../walker'
|
|
2
|
-
import { ParseError } from '../../error'
|
|
3
|
-
import { BasedSetTarget } from '../../types'
|
|
4
|
-
import { array } from './array'
|
|
5
|
-
import { object, record } from './object'
|
|
6
|
-
import { number, integer, timestamp } from './number'
|
|
7
|
-
import { string, text } from './string'
|
|
8
|
-
import { reference, references } from './references'
|
|
9
|
-
import { set } from './set'
|
|
10
|
-
import { hashObjectIgnoreKeyOrder, hash } from '@saulx/hash'
|
|
11
|
-
import { deepEqual } from '@saulx/utils'
|
|
12
|
-
|
|
13
|
-
export const fields: Partial<FieldParsers<BasedSetTarget>> = {
|
|
14
|
-
array,
|
|
15
|
-
object,
|
|
16
|
-
record,
|
|
17
|
-
number,
|
|
18
|
-
integer,
|
|
19
|
-
timestamp,
|
|
20
|
-
string,
|
|
21
|
-
set,
|
|
22
|
-
text,
|
|
23
|
-
reference,
|
|
24
|
-
references,
|
|
25
|
-
cardinality: async (args) => {
|
|
26
|
-
let hashedValue: string
|
|
27
|
-
if (args.value && typeof args.value === 'object') {
|
|
28
|
-
args.stop()
|
|
29
|
-
if (args.value.$default !== undefined) {
|
|
30
|
-
args.error(ParseError.defaultNotSupported)
|
|
31
|
-
return
|
|
32
|
-
}
|
|
33
|
-
if (args.value.$value !== undefined) {
|
|
34
|
-
hashedValue = hashObjectIgnoreKeyOrder(args.value.$value).toString(16)
|
|
35
|
-
} else {
|
|
36
|
-
hashedValue = hashObjectIgnoreKeyOrder(args.value).toString(16)
|
|
37
|
-
}
|
|
38
|
-
} else {
|
|
39
|
-
hashedValue = hash(args.value).toString(16)
|
|
40
|
-
}
|
|
41
|
-
args.collect(hashedValue)
|
|
42
|
-
},
|
|
43
|
-
boolean: async (args) => {
|
|
44
|
-
if (typeof args.value !== 'boolean') {
|
|
45
|
-
args.error(ParseError.incorrectFormat)
|
|
46
|
-
return
|
|
47
|
-
}
|
|
48
|
-
args.collect()
|
|
49
|
-
},
|
|
50
|
-
json: async (args) => {
|
|
51
|
-
args.stop()
|
|
52
|
-
try {
|
|
53
|
-
const parsedValue = JSON.stringify(args.value)
|
|
54
|
-
args.collect(parsedValue)
|
|
55
|
-
} catch (err) {
|
|
56
|
-
args.error(ParseError.invalidJSON)
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
enum: async (args) => {
|
|
60
|
-
// args.stop()
|
|
61
|
-
const enumValues = args.fieldSchema.enum
|
|
62
|
-
for (let i = 0; i < enumValues.length; i++) {
|
|
63
|
-
if (deepEqual(enumValues[i], args.value)) {
|
|
64
|
-
args.collect(i)
|
|
65
|
-
return
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
args.error(ParseError.incorrectFormat)
|
|
69
|
-
},
|
|
70
|
-
}
|
package/src/set/fields/number.ts
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { ParseError } from '../../error'
|
|
2
|
-
import { FieldParser, ArgsClass } from '../../walker'
|
|
3
|
-
import { BasedSetTarget } from '../../types'
|
|
4
|
-
|
|
5
|
-
type NumberTypes = 'number' | 'timestamp' | 'integer'
|
|
6
|
-
|
|
7
|
-
const validateNumber = (
|
|
8
|
-
args: ArgsClass<BasedSetTarget, NumberTypes>,
|
|
9
|
-
value: number,
|
|
10
|
-
ignoreMinMax?: boolean
|
|
11
|
-
): boolean => {
|
|
12
|
-
const { fieldSchema } = args
|
|
13
|
-
if (typeof value !== 'number') {
|
|
14
|
-
args.error(ParseError.incorrectFormat)
|
|
15
|
-
return false
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
if (isNaN(value)) {
|
|
19
|
-
args.error(ParseError.incorrectFormat)
|
|
20
|
-
return false
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (value === Infinity || value === -Infinity) {
|
|
24
|
-
args.error(ParseError.infinityNotSupported)
|
|
25
|
-
return false
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (fieldSchema.type === 'integer' && value - Math.floor(value) !== 0) {
|
|
29
|
-
args.error(ParseError.incorrectFormat)
|
|
30
|
-
return false
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (
|
|
34
|
-
fieldSchema.multipleOf &&
|
|
35
|
-
value / fieldSchema.multipleOf -
|
|
36
|
-
Math.floor(value / fieldSchema.multipleOf) !==
|
|
37
|
-
0
|
|
38
|
-
) {
|
|
39
|
-
args.error(ParseError.incorrectFormat)
|
|
40
|
-
return false
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (ignoreMinMax) {
|
|
44
|
-
// TODO: will be handled in the actual modify command
|
|
45
|
-
return true
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (fieldSchema.maximum) {
|
|
49
|
-
if (fieldSchema.exclusiveMaximum) {
|
|
50
|
-
if (value >= fieldSchema.maximum) {
|
|
51
|
-
args.error(ParseError.exceedsMaximum)
|
|
52
|
-
return false
|
|
53
|
-
}
|
|
54
|
-
} else if (value > fieldSchema.maximum) {
|
|
55
|
-
args.error(ParseError.exceedsMaximum)
|
|
56
|
-
return false
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
if (fieldSchema.minimum) {
|
|
61
|
-
if (fieldSchema.exclusiveMinimum) {
|
|
62
|
-
if (value <= fieldSchema.minimum) {
|
|
63
|
-
args.error(ParseError.subceedsMinimum)
|
|
64
|
-
return false
|
|
65
|
-
}
|
|
66
|
-
} else if (value < fieldSchema.minimum) {
|
|
67
|
-
args.error(ParseError.subceedsMinimum)
|
|
68
|
-
return false
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return true
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const validate = (
|
|
76
|
-
args: ArgsClass<BasedSetTarget, NumberTypes>,
|
|
77
|
-
value: any
|
|
78
|
-
): boolean => {
|
|
79
|
-
if (value === null) {
|
|
80
|
-
return false
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (typeof value !== 'object') {
|
|
84
|
-
return validateNumber(args, value)
|
|
85
|
-
}
|
|
86
|
-
if ('$value' in value) {
|
|
87
|
-
return
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
args.stop()
|
|
91
|
-
for (const key in value) {
|
|
92
|
-
if (key === '$default') {
|
|
93
|
-
if (!validateNumber(args, value.$default)) {
|
|
94
|
-
return false
|
|
95
|
-
}
|
|
96
|
-
} else if (key === '$increment') {
|
|
97
|
-
if (!validateNumber(args, value.$increment, true)) {
|
|
98
|
-
return false
|
|
99
|
-
}
|
|
100
|
-
} else if (key === '$decrement') {
|
|
101
|
-
if (!validateNumber(args, value.$decrement, true)) {
|
|
102
|
-
return false
|
|
103
|
-
}
|
|
104
|
-
} else {
|
|
105
|
-
args.create({ key }).error(ParseError.fieldDoesNotExist)
|
|
106
|
-
return false
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return true
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export const number: FieldParser<'number'> = async (args) => {
|
|
113
|
-
if (!validate(args, args.value)) {
|
|
114
|
-
return
|
|
115
|
-
}
|
|
116
|
-
args.collect()
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export const integer: FieldParser<'integer'> = async (args) => {
|
|
120
|
-
if (!validate(args, args.value)) {
|
|
121
|
-
return
|
|
122
|
-
}
|
|
123
|
-
args.collect()
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
export const timestamp: FieldParser<'timestamp'> = async (args) => {
|
|
127
|
-
if (typeof args.value === 'string') {
|
|
128
|
-
if (args.value === 'now') {
|
|
129
|
-
// TODO: + 1s + 10s etc
|
|
130
|
-
args.value = Date.now()
|
|
131
|
-
} else {
|
|
132
|
-
const d = new Date(args.value)
|
|
133
|
-
args.value = d.valueOf()
|
|
134
|
-
if (isNaN(args.value)) {
|
|
135
|
-
args.error(ParseError.incorrectFormat)
|
|
136
|
-
return
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
if (!validateNumber(args, args.value)) {
|
|
141
|
-
return
|
|
142
|
-
}
|
|
143
|
-
args.collect()
|
|
144
|
-
}
|