@naturalcycles/db-lib
Version:
Lowest Common Denominator API to supported Databases
33 lines (32 loc) • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.dbQuerySchema = exports.dbQueryOrderSchema = exports.dbQueryFilterSchema = exports.dbQueryFilterOperatorSchema = exports.commonDBSaveOptionsSchema = exports.commonDBOptionsSchema = void 0;
const nodejs_lib_1 = require("@naturalcycles/nodejs-lib");
const dbQuery_1 = require("../query/dbQuery");
exports.commonDBOptionsSchema = (0, nodejs_lib_1.objectSchema)({
['onlyCache']: nodejs_lib_1.booleanSchema.optional(),
['skipCache']: nodejs_lib_1.booleanSchema.optional(),
});
exports.commonDBSaveOptionsSchema = (0, nodejs_lib_1.objectSchema)({
excludeFromIndexes: (0, nodejs_lib_1.arraySchema)(nodejs_lib_1.stringSchema).optional(),
}).concat(exports.commonDBOptionsSchema);
exports.dbQueryFilterOperatorSchema = nodejs_lib_1.Joi.string().valid(...dbQuery_1.dbQueryFilterOperatorValues);
exports.dbQueryFilterSchema = (0, nodejs_lib_1.objectSchema)({
name: nodejs_lib_1.stringSchema,
op: exports.dbQueryFilterOperatorSchema,
val: nodejs_lib_1.anySchema,
});
exports.dbQueryOrderSchema = (0, nodejs_lib_1.objectSchema)({
name: nodejs_lib_1.stringSchema,
descending: nodejs_lib_1.booleanSchema.optional(),
});
exports.dbQuerySchema = (0, nodejs_lib_1.objectSchema)({
table: nodejs_lib_1.stringSchema,
_filters: (0, nodejs_lib_1.arraySchema)(exports.dbQueryFilterSchema).optional(),
_limitValue: nodejs_lib_1.integerSchema.min(0).optional(),
_offsetValue: nodejs_lib_1.integerSchema.min(0).optional(),
_orders: (0, nodejs_lib_1.arraySchema)(exports.dbQueryOrderSchema).optional(),
_startCursor: nodejs_lib_1.stringSchema.optional(),
_endCursor: nodejs_lib_1.stringSchema.optional(),
_selectedFieldNames: (0, nodejs_lib_1.arraySchema)(nodejs_lib_1.stringSchema).optional(),
});