@contember/schema-utils 2.0.0 → 2.1.0-alpha.1
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/development/index.cjs +0 -1
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +1 -2
- package/dist/development/src/dataUtils.cjs +9 -9
- package/dist/development/src/dataUtils.cjs.map +1 -1
- package/dist/development/src/dataUtils.js +10 -10
- package/dist/development/src/dataUtils.js.map +1 -1
- package/dist/development/src/definition-generator/DefinitionCodeGenerator.cjs +1 -0
- package/dist/development/src/definition-generator/DefinitionCodeGenerator.cjs.map +1 -1
- package/dist/development/src/definition-generator/DefinitionCodeGenerator.js +1 -0
- package/dist/development/src/definition-generator/DefinitionCodeGenerator.js.map +1 -1
- package/dist/development/src/model/modelUtils.cjs +1 -1
- package/dist/development/src/model/modelUtils.cjs.map +1 -1
- package/dist/development/src/model/modelUtils.js +1 -1
- package/dist/development/src/model/modelUtils.js.map +1 -1
- package/dist/development/src/model/resolveDefaultColumnType.cjs +2 -0
- package/dist/development/src/model/resolveDefaultColumnType.cjs.map +1 -1
- package/dist/development/src/model/resolveDefaultColumnType.js +2 -0
- package/dist/development/src/model/resolveDefaultColumnType.js.map +1 -1
- package/dist/development/src/type-schema/condition.cjs +1 -0
- package/dist/development/src/type-schema/condition.cjs.map +1 -1
- package/dist/development/src/type-schema/condition.js +1 -0
- package/dist/development/src/type-schema/condition.js.map +1 -1
- package/dist/development/src/type-schema/model.cjs +2 -1
- package/dist/development/src/type-schema/model.cjs.map +1 -1
- package/dist/development/src/type-schema/model.js +2 -1
- package/dist/development/src/type-schema/model.js.map +1 -1
- package/dist/development/src/type-schema/settings.cjs +2 -1
- package/dist/development/src/type-schema/settings.cjs.map +1 -1
- package/dist/development/src/type-schema/settings.js +2 -1
- package/dist/development/src/type-schema/settings.js.map +1 -1
- package/dist/development/src/validation/ModelValidator.cjs +7 -5
- package/dist/development/src/validation/ModelValidator.cjs.map +1 -1
- package/dist/development/src/validation/ModelValidator.js +8 -6
- package/dist/development/src/validation/ModelValidator.js.map +1 -1
- package/dist/development/src/validation/errors.cjs.map +1 -1
- package/dist/development/src/validation/errors.js.map +1 -1
- package/dist/production/index.cjs +0 -1
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +1 -2
- package/dist/production/src/dataUtils.cjs +9 -9
- package/dist/production/src/dataUtils.cjs.map +1 -1
- package/dist/production/src/dataUtils.js +10 -10
- package/dist/production/src/dataUtils.js.map +1 -1
- package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs +1 -0
- package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs.map +1 -1
- package/dist/production/src/definition-generator/DefinitionCodeGenerator.js +1 -0
- package/dist/production/src/definition-generator/DefinitionCodeGenerator.js.map +1 -1
- package/dist/production/src/model/modelUtils.cjs +1 -1
- package/dist/production/src/model/modelUtils.cjs.map +1 -1
- package/dist/production/src/model/modelUtils.js +1 -1
- package/dist/production/src/model/modelUtils.js.map +1 -1
- package/dist/production/src/model/resolveDefaultColumnType.cjs +2 -0
- package/dist/production/src/model/resolveDefaultColumnType.cjs.map +1 -1
- package/dist/production/src/model/resolveDefaultColumnType.js +2 -0
- package/dist/production/src/model/resolveDefaultColumnType.js.map +1 -1
- package/dist/production/src/type-schema/condition.cjs +1 -0
- package/dist/production/src/type-schema/condition.cjs.map +1 -1
- package/dist/production/src/type-schema/condition.js +1 -0
- package/dist/production/src/type-schema/condition.js.map +1 -1
- package/dist/production/src/type-schema/model.cjs +2 -1
- package/dist/production/src/type-schema/model.cjs.map +1 -1
- package/dist/production/src/type-schema/model.js +2 -1
- package/dist/production/src/type-schema/model.js.map +1 -1
- package/dist/production/src/type-schema/settings.cjs +2 -1
- package/dist/production/src/type-schema/settings.cjs.map +1 -1
- package/dist/production/src/type-schema/settings.js +2 -1
- package/dist/production/src/type-schema/settings.js.map +1 -1
- package/dist/production/src/validation/ModelValidator.cjs +7 -5
- package/dist/production/src/validation/ModelValidator.cjs.map +1 -1
- package/dist/production/src/validation/ModelValidator.js +8 -6
- package/dist/production/src/validation/ModelValidator.js.map +1 -1
- package/dist/production/src/validation/errors.cjs.map +1 -1
- package/dist/production/src/validation/errors.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/dataUtils.d.ts +7 -4
- package/dist/types/dataUtils.d.ts.map +1 -1
- package/dist/types/model/resolveDefaultColumnType.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/type-schema/model.d.ts.map +1 -1
- package/dist/types/type-schema/settings.d.ts +3 -0
- package/dist/types/type-schema/settings.d.ts.map +1 -1
- package/dist/types/validation/ModelValidator.d.ts.map +1 -1
- package/dist/types/validation/errors.d.ts +1 -1
- package/dist/types/validation/errors.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/dataUtils.ts +12 -9
- package/src/definition-generator/DefinitionCodeGenerator.ts +1 -0
- package/src/model/modelUtils.ts +1 -1
- package/src/model/resolveDefaultColumnType.ts +2 -0
- package/src/type-schema/condition.ts +1 -0
- package/src/type-schema/model.ts +2 -1
- package/src/type-schema/settings.ts +1 -0
- package/src/validation/ModelValidator.ts +8 -6
- package/src/validation/errors.ts +1 -0
|
@@ -67,6 +67,7 @@ const resolveColumnTypeSchema = (type: Model.ColumnType) => {
|
|
|
67
67
|
// todo: validate format of string-like inputs uuid, date, enum
|
|
68
68
|
case Model.ColumnType.Date:
|
|
69
69
|
case Model.ColumnType.DateTime:
|
|
70
|
+
case Model.ColumnType.Time:
|
|
70
71
|
case Model.ColumnType.Uuid:
|
|
71
72
|
case Model.ColumnType.Enum:
|
|
72
73
|
case Model.ColumnType.String:
|
package/src/type-schema/model.ts
CHANGED
|
@@ -130,7 +130,8 @@ const columnSchema = Typesafe.intersection(
|
|
|
130
130
|
}),
|
|
131
131
|
Typesafe.partial({
|
|
132
132
|
typeAlias: Typesafe.string,
|
|
133
|
-
|
|
133
|
+
list: Typesafe.boolean,
|
|
134
|
+
default: Typesafe.anyJson,
|
|
134
135
|
sequence: intersectionSchema as Typesafe.Type<Model.AnyColumn['sequence']>,
|
|
135
136
|
}),
|
|
136
137
|
)
|
|
@@ -11,6 +11,7 @@ export const settingsSchema = Typesafe.partial({
|
|
|
11
11
|
useExistsInHasManyFilter: Typesafe.boolean,
|
|
12
12
|
fullDateTimeResponse: Typesafe.boolean,
|
|
13
13
|
shortDateResponse: Typesafe.boolean,
|
|
14
|
+
uuidVersion: Typesafe.union(Typesafe.literal(4), Typesafe.literal(7)),
|
|
14
15
|
}),
|
|
15
16
|
})
|
|
16
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Model } from '@contember/schema'
|
|
2
2
|
import { ErrorBuilder, ValidationError } from './errors'
|
|
3
|
-
import { acceptEveryFieldVisitor, getTargetEntity, isInverseRelation, isOwningRelation } from '../model'
|
|
3
|
+
import { acceptEveryFieldVisitor, getTargetEntity, isColumn, isInverseRelation, isOwningRelation } from '../model'
|
|
4
4
|
|
|
5
5
|
const IDENTIFIER_PATTERN = /^[_a-zA-Z][_a-zA-Z0-9]*$/
|
|
6
6
|
const RESERVED_WORDS = ['and', 'or', 'not']
|
|
@@ -52,18 +52,20 @@ export class ModelValidator {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
this.validateUniqueConstraints(
|
|
55
|
-
entity
|
|
56
|
-
new Set(Object.keys(entity.fields)),
|
|
55
|
+
entity,
|
|
57
56
|
errors.for('unique'),
|
|
58
57
|
)
|
|
59
58
|
this.validateColumnNamesCollision(entity, errors)
|
|
60
59
|
}
|
|
61
60
|
|
|
62
|
-
private validateUniqueConstraints(
|
|
63
|
-
for (const constraint of
|
|
61
|
+
private validateUniqueConstraints(entity: Model.Entity, errors: ErrorBuilder): void {
|
|
62
|
+
for (const constraint of entity.unique) {
|
|
64
63
|
for (const field of constraint.fields) {
|
|
65
|
-
|
|
64
|
+
const fieldDef = entity.fields[field]
|
|
65
|
+
if (!fieldDef) {
|
|
66
66
|
errors.add('MODEL_UNDEFINED_FIELD', `Referenced field ${field} in a constraint does not exists`)
|
|
67
|
+
} else if (isColumn(fieldDef) && fieldDef.list) {
|
|
68
|
+
errors.add('MODEL_INVALID_FIELD', `Field ${field} in a unique constraint cannot be an array`)
|
|
67
69
|
}
|
|
68
70
|
}
|
|
69
71
|
}
|