@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.
@@ -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({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsofist/schema-forge",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Generate JSON schema from TypeScript types",
5
5
  "author": "Andrew Berdnikov <tsofistgudmen@gmail.com>",
6
6
  "license": "LGPL-3.0",