@tsofist/schema-forge 2.2.0 → 2.3.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/lib/generator.spec.js +23 -0
- package/lib/validator.js +17 -1
- package/package.json +1 -1
package/lib/generator.spec.js
CHANGED
|
@@ -253,6 +253,27 @@ describe('generator for a5', () => {
|
|
|
253
253
|
dbIndex: true,
|
|
254
254
|
type: 'number',
|
|
255
255
|
},
|
|
256
|
+
indexedField3: {
|
|
257
|
+
dbIndex: {
|
|
258
|
+
name: 'ix_some_indexed_field3WithExtra',
|
|
259
|
+
type: 'gin',
|
|
260
|
+
unique: true,
|
|
261
|
+
},
|
|
262
|
+
type: 'number',
|
|
263
|
+
},
|
|
264
|
+
indexedField4: {
|
|
265
|
+
dbIndex: [
|
|
266
|
+
{
|
|
267
|
+
name: 'ix_some_indexed_field4',
|
|
268
|
+
type: 'gin',
|
|
269
|
+
unique: true,
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
type: 'btree',
|
|
273
|
+
},
|
|
274
|
+
],
|
|
275
|
+
type: 'number',
|
|
276
|
+
},
|
|
256
277
|
},
|
|
257
278
|
required: [
|
|
258
279
|
'vals',
|
|
@@ -267,6 +288,8 @@ describe('generator for a5', () => {
|
|
|
267
288
|
'abnormalNames',
|
|
268
289
|
'indexedField1',
|
|
269
290
|
'indexedField2',
|
|
291
|
+
'indexedField3',
|
|
292
|
+
'indexedField4',
|
|
270
293
|
],
|
|
271
294
|
additionalProperties: false,
|
|
272
295
|
dbEntity: 'cmn.some',
|
package/lib/validator.js
CHANGED
|
@@ -329,11 +329,27 @@ function addJSDocKeywords(engine) {
|
|
|
329
329
|
],
|
|
330
330
|
},
|
|
331
331
|
});
|
|
332
|
+
const DBIndexSettingsSchema = {
|
|
333
|
+
type: 'object',
|
|
334
|
+
additionalProperties: false,
|
|
335
|
+
properties: {
|
|
336
|
+
name: { type: 'string' },
|
|
337
|
+
unique: { type: 'boolean' },
|
|
338
|
+
type: {
|
|
339
|
+
type: 'string',
|
|
340
|
+
enum: ['btree', 'gin', 'gist'],
|
|
341
|
+
},
|
|
342
|
+
},
|
|
343
|
+
};
|
|
332
344
|
engine.addKeyword({
|
|
333
345
|
keyword: 'dbIndex',
|
|
334
346
|
metaSchema: {
|
|
335
|
-
type: ['string', 'boolean'],
|
|
347
|
+
type: ['string', 'boolean', 'object', 'array'],
|
|
336
348
|
pattern: IXNamePattern,
|
|
349
|
+
additionalProperties: false,
|
|
350
|
+
properties: DBIndexSettingsSchema.properties,
|
|
351
|
+
items: DBIndexSettingsSchema,
|
|
352
|
+
minItems: 1,
|
|
337
353
|
},
|
|
338
354
|
});
|
|
339
355
|
engine.addKeyword({
|