@stndrds/schema 1.0.0-alpha.188 → 1.0.0-alpha.190
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/chunk-FQ2ZYOVS.js +688 -0
- package/dist/chunk-LTHSU4NF.mjs +639 -0
- package/dist/{helpers-BjuFhbQQ.d.mts → helpers-HrKmSkLi.d.mts} +7 -1
- package/dist/{helpers-CSuoa3kj.d.ts → helpers-Y9rNQ6sz.d.ts} +7 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +160 -475
- package/dist/index.mjs +3 -426
- package/dist/validation/all.d.mts +1 -1
- package/dist/validation/all.d.ts +1 -1
- package/dist/validation/all.js +7 -7
- package/dist/validation/all.mjs +1 -1
- package/dist/validation/object/index.d.mts +1 -1
- package/dist/validation/object/index.d.ts +1 -1
- package/dist/validation/object/index.js +13 -13
- package/dist/validation/object/index.mjs +1 -1
- package/package.json +2 -2
- package/dist/chunk-64R5X3DF.js +0 -221
- package/dist/chunk-6JEQE4IP.mjs +0 -208
package/dist/chunk-64R5X3DF.js
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkMAKSIK3P_js = require('./chunk-MAKSIK3P.js');
|
|
4
|
-
var chunkJ5HRK3WD_js = require('./chunk-J5HRK3WD.js');
|
|
5
|
-
var chunkTKN73433_js = require('./chunk-TKN73433.js');
|
|
6
|
-
var chunkD7WFIGXW_js = require('./chunk-D7WFIGXW.js');
|
|
7
|
-
var chunk3JINFUN3_js = require('./chunk-3JINFUN3.js');
|
|
8
|
-
var chunkQWZHR2OO_js = require('./chunk-QWZHR2OO.js');
|
|
9
|
-
var chunkEZHMVZQ4_js = require('./chunk-EZHMVZQ4.js');
|
|
10
|
-
var chunkVXOTYFEW_js = require('./chunk-VXOTYFEW.js');
|
|
11
|
-
var chunkOAQWRMTP_js = require('./chunk-OAQWRMTP.js');
|
|
12
|
-
var chunkACQ3TUFK_js = require('./chunk-ACQ3TUFK.js');
|
|
13
|
-
var chunkDC7YYE3U_js = require('./chunk-DC7YYE3U.js');
|
|
14
|
-
var chunkROAZLZA2_js = require('./chunk-ROAZLZA2.js');
|
|
15
|
-
var chunkCCB4OY2O_js = require('./chunk-CCB4OY2O.js');
|
|
16
|
-
var chunk7A3Y6O32_js = require('./chunk-7A3Y6O32.js');
|
|
17
|
-
var chunkP2BE2A2G_js = require('./chunk-P2BE2A2G.js');
|
|
18
|
-
var chunkT225DB55_js = require('./chunk-T225DB55.js');
|
|
19
|
-
var zod = require('zod');
|
|
20
|
-
|
|
21
|
-
function isEmptyValue(value) {
|
|
22
|
-
if (value === null || value === void 0) return true;
|
|
23
|
-
if (typeof value === "string" && value.trim() === "") return true;
|
|
24
|
-
if (value instanceof Date) return false;
|
|
25
|
-
if (typeof value === "object" && !Array.isArray(value)) {
|
|
26
|
-
return Object.values(value).every(
|
|
27
|
-
(v) => v === null || v === void 0 || typeof v === "string" && v.trim() === ""
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
function withEmptyToNull(validator) {
|
|
33
|
-
return zod.z.preprocess((val) => isEmptyValue(val) ? null : val, validator.nullish());
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// src/validation/object/attribute-factory.ts
|
|
37
|
-
function createAttributeValidator(attr, messages = chunkT225DB55_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
38
|
-
switch (attr.type) {
|
|
39
|
-
case "text":
|
|
40
|
-
return chunk3JINFUN3_js.createTextValidator(attr, messages);
|
|
41
|
-
case "textarea":
|
|
42
|
-
return chunk3JINFUN3_js.createTextAreaValidator(attr, messages);
|
|
43
|
-
case "richtext":
|
|
44
|
-
return chunkQWZHR2OO_js.createRichtextValidator(attr, messages);
|
|
45
|
-
case "number":
|
|
46
|
-
return chunkTKN73433_js.createNumberValidator(attr, messages);
|
|
47
|
-
case "checkbox":
|
|
48
|
-
return chunkMAKSIK3P_js.createCheckboxValidator(attr, messages);
|
|
49
|
-
case "date":
|
|
50
|
-
return chunkJ5HRK3WD_js.createDateValidator(attr, messages);
|
|
51
|
-
case "phone":
|
|
52
|
-
return chunk7A3Y6O32_js.createPhoneValidator(attr, messages);
|
|
53
|
-
case "currency":
|
|
54
|
-
return chunkDC7YYE3U_js.createCurrencyValidator(attr, messages);
|
|
55
|
-
case "status":
|
|
56
|
-
return chunkEZHMVZQ4_js.createStatusValidator(attr, messages);
|
|
57
|
-
case "location":
|
|
58
|
-
return chunkCCB4OY2O_js.createLocationValidator(attr, messages);
|
|
59
|
-
case "select":
|
|
60
|
-
return chunkEZHMVZQ4_js.createSelectValidator(attr, messages);
|
|
61
|
-
case "multiselect":
|
|
62
|
-
return chunkEZHMVZQ4_js.createMultiselectValidator(attr, messages);
|
|
63
|
-
case "file":
|
|
64
|
-
return chunkROAZLZA2_js.createFileValidator(attr, messages);
|
|
65
|
-
case "user":
|
|
66
|
-
return chunkVXOTYFEW_js.createUserValidator(attr, messages);
|
|
67
|
-
case "relation":
|
|
68
|
-
return chunkP2BE2A2G_js.createRelationValidator(attr, messages);
|
|
69
|
-
case "rating":
|
|
70
|
-
return chunkD7WFIGXW_js.createRatingValidator(attr, messages);
|
|
71
|
-
case "formula":
|
|
72
|
-
return chunkOAQWRMTP_js.createFormulaValidator(attr, messages);
|
|
73
|
-
case "rollup":
|
|
74
|
-
return chunkACQ3TUFK_js.createRollupValidator(attr, messages);
|
|
75
|
-
default:
|
|
76
|
-
return zod.z.unknown();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function createFormAttributeValidator(attr, messages = chunkT225DB55_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
80
|
-
const validator = createAttributeValidator(attr, messages);
|
|
81
|
-
if (!attr.required) {
|
|
82
|
-
return withEmptyToNull(validator);
|
|
83
|
-
}
|
|
84
|
-
return validator;
|
|
85
|
-
}
|
|
86
|
-
var objectValidatorCache = /* @__PURE__ */ new WeakMap();
|
|
87
|
-
var draftValidatorCache = /* @__PURE__ */ new WeakMap();
|
|
88
|
-
function createObjectValidator(objectDef) {
|
|
89
|
-
const cached = objectValidatorCache.get(objectDef);
|
|
90
|
-
if (cached) return cached;
|
|
91
|
-
const shape = {};
|
|
92
|
-
for (const attr of objectDef.attributes) {
|
|
93
|
-
const validator = createAttributeValidator(attr);
|
|
94
|
-
shape[attr.name] = attr.required ? validator : withEmptyToNull(validator);
|
|
95
|
-
}
|
|
96
|
-
const schema = zod.z.object(shape).passthrough();
|
|
97
|
-
objectValidatorCache.set(objectDef, schema);
|
|
98
|
-
return schema;
|
|
99
|
-
}
|
|
100
|
-
function createDraftValidator(objectDef) {
|
|
101
|
-
const cached = draftValidatorCache.get(objectDef);
|
|
102
|
-
if (cached) return cached;
|
|
103
|
-
const shape = {};
|
|
104
|
-
for (const attr of objectDef.attributes) {
|
|
105
|
-
const validator = createAttributeValidator(attr);
|
|
106
|
-
shape[attr.name] = withEmptyToNull(validator);
|
|
107
|
-
}
|
|
108
|
-
const schema = zod.z.object(shape).passthrough();
|
|
109
|
-
draftValidatorCache.set(objectDef, schema);
|
|
110
|
-
return schema;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// src/validation/object/helpers.ts
|
|
114
|
-
function validateAttribute(attr, value) {
|
|
115
|
-
const validator = createAttributeValidator(attr);
|
|
116
|
-
if (!attr.required && (value === void 0 || value === null)) {
|
|
117
|
-
return { success: true, data: { [attr.name]: value } };
|
|
118
|
-
}
|
|
119
|
-
const result = validator.safeParse(value);
|
|
120
|
-
if (result.success) {
|
|
121
|
-
return {
|
|
122
|
-
success: true,
|
|
123
|
-
data: { [attr.name]: result.data }
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
success: false,
|
|
128
|
-
errors: chunkT225DB55_js.formatZodErrors(result.error).map((err) => ({
|
|
129
|
-
path: [attr.name, ...err.path],
|
|
130
|
-
message: err.message
|
|
131
|
-
}))
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
function validateObject(objectDef, data) {
|
|
135
|
-
const validator = createObjectValidator(objectDef);
|
|
136
|
-
const result = validator.safeParse(data);
|
|
137
|
-
if (result.success) {
|
|
138
|
-
return {
|
|
139
|
-
success: true,
|
|
140
|
-
data: result.data
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
return {
|
|
144
|
-
success: false,
|
|
145
|
-
errors: chunkT225DB55_js.formatZodErrors(result.error)
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
function validateObjectOrThrow(objectDef, data) {
|
|
149
|
-
const result = validateObject(objectDef, data);
|
|
150
|
-
if (!result.success) {
|
|
151
|
-
const errorMessages = result.errors?.map((err) => `${err.path.join(".")}: ${err.message}`).join("\n") || "Unknown validation error";
|
|
152
|
-
throw new Error(`Validation failed for ${objectDef.label}:
|
|
153
|
-
${errorMessages}`);
|
|
154
|
-
}
|
|
155
|
-
return result.data;
|
|
156
|
-
}
|
|
157
|
-
function validateDraft(objectDef, data) {
|
|
158
|
-
const validator = createDraftValidator(objectDef);
|
|
159
|
-
const result = validator.safeParse(data);
|
|
160
|
-
if (result.success) {
|
|
161
|
-
return {
|
|
162
|
-
success: true,
|
|
163
|
-
data: result.data
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
return {
|
|
167
|
-
success: false,
|
|
168
|
-
errors: chunkT225DB55_js.formatZodErrors(result.error)
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
function validateDraftOrThrow(objectDef, data) {
|
|
172
|
-
const result = validateDraft(objectDef, data);
|
|
173
|
-
if (!result.success) {
|
|
174
|
-
const errorMessages = result.errors?.map((err) => `${err.path.join(".")}: ${err.message}`).join("\n") || "Unknown validation error";
|
|
175
|
-
throw new Error(`Draft validation failed for ${objectDef.label}:
|
|
176
|
-
${errorMessages}`);
|
|
177
|
-
}
|
|
178
|
-
return result.data;
|
|
179
|
-
}
|
|
180
|
-
function isValuePresent(value) {
|
|
181
|
-
if (value === void 0 || value === null) {
|
|
182
|
-
return false;
|
|
183
|
-
}
|
|
184
|
-
if (typeof value === "string" && value.trim() === "") {
|
|
185
|
-
return false;
|
|
186
|
-
}
|
|
187
|
-
return true;
|
|
188
|
-
}
|
|
189
|
-
function getMissingRequiredAttributes(objectDef, data) {
|
|
190
|
-
const missing = [];
|
|
191
|
-
for (const attr of objectDef.attributes) {
|
|
192
|
-
if (attr.required && !isValuePresent(data[attr.name])) {
|
|
193
|
-
missing.push(attr);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
return missing;
|
|
197
|
-
}
|
|
198
|
-
function isRecordComplete(objectDef, data) {
|
|
199
|
-
const missing = getMissingRequiredAttributes(objectDef, data);
|
|
200
|
-
if (missing.length > 0) {
|
|
201
|
-
return false;
|
|
202
|
-
}
|
|
203
|
-
const validation = validateObject(objectDef, data);
|
|
204
|
-
return validation.success;
|
|
205
|
-
}
|
|
206
|
-
function computeRecordStatus(objectDef, data) {
|
|
207
|
-
return isRecordComplete(objectDef, data) ? "complete" : "draft";
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
exports.computeRecordStatus = computeRecordStatus;
|
|
211
|
-
exports.createAttributeValidator = createAttributeValidator;
|
|
212
|
-
exports.createDraftValidator = createDraftValidator;
|
|
213
|
-
exports.createFormAttributeValidator = createFormAttributeValidator;
|
|
214
|
-
exports.createObjectValidator = createObjectValidator;
|
|
215
|
-
exports.getMissingRequiredAttributes = getMissingRequiredAttributes;
|
|
216
|
-
exports.isRecordComplete = isRecordComplete;
|
|
217
|
-
exports.validateAttribute = validateAttribute;
|
|
218
|
-
exports.validateDraft = validateDraft;
|
|
219
|
-
exports.validateDraftOrThrow = validateDraftOrThrow;
|
|
220
|
-
exports.validateObject = validateObject;
|
|
221
|
-
exports.validateObjectOrThrow = validateObjectOrThrow;
|
package/dist/chunk-6JEQE4IP.mjs
DELETED
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { createCheckboxValidator } from './chunk-TMYBEXBT.mjs';
|
|
2
|
-
import { createDateValidator } from './chunk-4KRLCWJM.mjs';
|
|
3
|
-
import { createNumberValidator } from './chunk-KNYZH2WD.mjs';
|
|
4
|
-
import { createRatingValidator } from './chunk-RUYUFXNW.mjs';
|
|
5
|
-
import { createTextAreaValidator, createTextValidator } from './chunk-KWVCGQ7N.mjs';
|
|
6
|
-
import { createRichtextValidator } from './chunk-BLXQGQLK.mjs';
|
|
7
|
-
import { createMultiselectValidator, createSelectValidator, createStatusValidator } from './chunk-SMOHDR6M.mjs';
|
|
8
|
-
import { createUserValidator } from './chunk-ITTQ4FGR.mjs';
|
|
9
|
-
import { createFormulaValidator } from './chunk-IRTRJH37.mjs';
|
|
10
|
-
import { createRollupValidator } from './chunk-OLJLCVNY.mjs';
|
|
11
|
-
import { createCurrencyValidator } from './chunk-TEQNVO7W.mjs';
|
|
12
|
-
import { createFileValidator } from './chunk-4TC27SMF.mjs';
|
|
13
|
-
import { createLocationValidator } from './chunk-TBYXYSGA.mjs';
|
|
14
|
-
import { createPhoneValidator } from './chunk-Z75P63VF.mjs';
|
|
15
|
-
import { createRelationValidator } from './chunk-R4CJHCC4.mjs';
|
|
16
|
-
import { DEFAULT_VALIDATION_MESSAGES, formatZodErrors } from './chunk-UQVW4KPP.mjs';
|
|
17
|
-
import { z } from 'zod';
|
|
18
|
-
|
|
19
|
-
function isEmptyValue(value) {
|
|
20
|
-
if (value === null || value === void 0) return true;
|
|
21
|
-
if (typeof value === "string" && value.trim() === "") return true;
|
|
22
|
-
if (value instanceof Date) return false;
|
|
23
|
-
if (typeof value === "object" && !Array.isArray(value)) {
|
|
24
|
-
return Object.values(value).every(
|
|
25
|
-
(v) => v === null || v === void 0 || typeof v === "string" && v.trim() === ""
|
|
26
|
-
);
|
|
27
|
-
}
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
function withEmptyToNull(validator) {
|
|
31
|
-
return z.preprocess((val) => isEmptyValue(val) ? null : val, validator.nullish());
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// src/validation/object/attribute-factory.ts
|
|
35
|
-
function createAttributeValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES) {
|
|
36
|
-
switch (attr.type) {
|
|
37
|
-
case "text":
|
|
38
|
-
return createTextValidator(attr, messages);
|
|
39
|
-
case "textarea":
|
|
40
|
-
return createTextAreaValidator(attr, messages);
|
|
41
|
-
case "richtext":
|
|
42
|
-
return createRichtextValidator(attr, messages);
|
|
43
|
-
case "number":
|
|
44
|
-
return createNumberValidator(attr, messages);
|
|
45
|
-
case "checkbox":
|
|
46
|
-
return createCheckboxValidator(attr, messages);
|
|
47
|
-
case "date":
|
|
48
|
-
return createDateValidator(attr, messages);
|
|
49
|
-
case "phone":
|
|
50
|
-
return createPhoneValidator(attr, messages);
|
|
51
|
-
case "currency":
|
|
52
|
-
return createCurrencyValidator(attr, messages);
|
|
53
|
-
case "status":
|
|
54
|
-
return createStatusValidator(attr, messages);
|
|
55
|
-
case "location":
|
|
56
|
-
return createLocationValidator(attr, messages);
|
|
57
|
-
case "select":
|
|
58
|
-
return createSelectValidator(attr, messages);
|
|
59
|
-
case "multiselect":
|
|
60
|
-
return createMultiselectValidator(attr, messages);
|
|
61
|
-
case "file":
|
|
62
|
-
return createFileValidator(attr, messages);
|
|
63
|
-
case "user":
|
|
64
|
-
return createUserValidator(attr, messages);
|
|
65
|
-
case "relation":
|
|
66
|
-
return createRelationValidator(attr, messages);
|
|
67
|
-
case "rating":
|
|
68
|
-
return createRatingValidator(attr, messages);
|
|
69
|
-
case "formula":
|
|
70
|
-
return createFormulaValidator(attr, messages);
|
|
71
|
-
case "rollup":
|
|
72
|
-
return createRollupValidator(attr, messages);
|
|
73
|
-
default:
|
|
74
|
-
return z.unknown();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
function createFormAttributeValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES) {
|
|
78
|
-
const validator = createAttributeValidator(attr, messages);
|
|
79
|
-
if (!attr.required) {
|
|
80
|
-
return withEmptyToNull(validator);
|
|
81
|
-
}
|
|
82
|
-
return validator;
|
|
83
|
-
}
|
|
84
|
-
var objectValidatorCache = /* @__PURE__ */ new WeakMap();
|
|
85
|
-
var draftValidatorCache = /* @__PURE__ */ new WeakMap();
|
|
86
|
-
function createObjectValidator(objectDef) {
|
|
87
|
-
const cached = objectValidatorCache.get(objectDef);
|
|
88
|
-
if (cached) return cached;
|
|
89
|
-
const shape = {};
|
|
90
|
-
for (const attr of objectDef.attributes) {
|
|
91
|
-
const validator = createAttributeValidator(attr);
|
|
92
|
-
shape[attr.name] = attr.required ? validator : withEmptyToNull(validator);
|
|
93
|
-
}
|
|
94
|
-
const schema = z.object(shape).passthrough();
|
|
95
|
-
objectValidatorCache.set(objectDef, schema);
|
|
96
|
-
return schema;
|
|
97
|
-
}
|
|
98
|
-
function createDraftValidator(objectDef) {
|
|
99
|
-
const cached = draftValidatorCache.get(objectDef);
|
|
100
|
-
if (cached) return cached;
|
|
101
|
-
const shape = {};
|
|
102
|
-
for (const attr of objectDef.attributes) {
|
|
103
|
-
const validator = createAttributeValidator(attr);
|
|
104
|
-
shape[attr.name] = withEmptyToNull(validator);
|
|
105
|
-
}
|
|
106
|
-
const schema = z.object(shape).passthrough();
|
|
107
|
-
draftValidatorCache.set(objectDef, schema);
|
|
108
|
-
return schema;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// src/validation/object/helpers.ts
|
|
112
|
-
function validateAttribute(attr, value) {
|
|
113
|
-
const validator = createAttributeValidator(attr);
|
|
114
|
-
if (!attr.required && (value === void 0 || value === null)) {
|
|
115
|
-
return { success: true, data: { [attr.name]: value } };
|
|
116
|
-
}
|
|
117
|
-
const result = validator.safeParse(value);
|
|
118
|
-
if (result.success) {
|
|
119
|
-
return {
|
|
120
|
-
success: true,
|
|
121
|
-
data: { [attr.name]: result.data }
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
return {
|
|
125
|
-
success: false,
|
|
126
|
-
errors: formatZodErrors(result.error).map((err) => ({
|
|
127
|
-
path: [attr.name, ...err.path],
|
|
128
|
-
message: err.message
|
|
129
|
-
}))
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
function validateObject(objectDef, data) {
|
|
133
|
-
const validator = createObjectValidator(objectDef);
|
|
134
|
-
const result = validator.safeParse(data);
|
|
135
|
-
if (result.success) {
|
|
136
|
-
return {
|
|
137
|
-
success: true,
|
|
138
|
-
data: result.data
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
success: false,
|
|
143
|
-
errors: formatZodErrors(result.error)
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
function validateObjectOrThrow(objectDef, data) {
|
|
147
|
-
const result = validateObject(objectDef, data);
|
|
148
|
-
if (!result.success) {
|
|
149
|
-
const errorMessages = result.errors?.map((err) => `${err.path.join(".")}: ${err.message}`).join("\n") || "Unknown validation error";
|
|
150
|
-
throw new Error(`Validation failed for ${objectDef.label}:
|
|
151
|
-
${errorMessages}`);
|
|
152
|
-
}
|
|
153
|
-
return result.data;
|
|
154
|
-
}
|
|
155
|
-
function validateDraft(objectDef, data) {
|
|
156
|
-
const validator = createDraftValidator(objectDef);
|
|
157
|
-
const result = validator.safeParse(data);
|
|
158
|
-
if (result.success) {
|
|
159
|
-
return {
|
|
160
|
-
success: true,
|
|
161
|
-
data: result.data
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
return {
|
|
165
|
-
success: false,
|
|
166
|
-
errors: formatZodErrors(result.error)
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
function validateDraftOrThrow(objectDef, data) {
|
|
170
|
-
const result = validateDraft(objectDef, data);
|
|
171
|
-
if (!result.success) {
|
|
172
|
-
const errorMessages = result.errors?.map((err) => `${err.path.join(".")}: ${err.message}`).join("\n") || "Unknown validation error";
|
|
173
|
-
throw new Error(`Draft validation failed for ${objectDef.label}:
|
|
174
|
-
${errorMessages}`);
|
|
175
|
-
}
|
|
176
|
-
return result.data;
|
|
177
|
-
}
|
|
178
|
-
function isValuePresent(value) {
|
|
179
|
-
if (value === void 0 || value === null) {
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
if (typeof value === "string" && value.trim() === "") {
|
|
183
|
-
return false;
|
|
184
|
-
}
|
|
185
|
-
return true;
|
|
186
|
-
}
|
|
187
|
-
function getMissingRequiredAttributes(objectDef, data) {
|
|
188
|
-
const missing = [];
|
|
189
|
-
for (const attr of objectDef.attributes) {
|
|
190
|
-
if (attr.required && !isValuePresent(data[attr.name])) {
|
|
191
|
-
missing.push(attr);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
return missing;
|
|
195
|
-
}
|
|
196
|
-
function isRecordComplete(objectDef, data) {
|
|
197
|
-
const missing = getMissingRequiredAttributes(objectDef, data);
|
|
198
|
-
if (missing.length > 0) {
|
|
199
|
-
return false;
|
|
200
|
-
}
|
|
201
|
-
const validation = validateObject(objectDef, data);
|
|
202
|
-
return validation.success;
|
|
203
|
-
}
|
|
204
|
-
function computeRecordStatus(objectDef, data) {
|
|
205
|
-
return isRecordComplete(objectDef, data) ? "complete" : "draft";
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export { computeRecordStatus, createAttributeValidator, createDraftValidator, createFormAttributeValidator, createObjectValidator, getMissingRequiredAttributes, isRecordComplete, validateAttribute, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow };
|