@naturalcycles/db-lib
Version:
Lowest Common Denominator API to supported Databases
61 lines (60 loc) • 2.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.testItemBMJsonSchema = exports.testItemTMSchema = exports.testItemBMSchema = exports.TEST_TABLE = void 0;
exports.createTestItemDBM = createTestItemDBM;
exports.createTestItemBM = createTestItemBM;
exports.createTestItemsDBM = createTestItemsDBM;
exports.createTestItemsBM = createTestItemsBM;
const js_lib_1 = require("@naturalcycles/js-lib");
const nodejs_lib_1 = require("@naturalcycles/nodejs-lib");
const MOCK_TS_2018_06_21 = 1529539200;
exports.TEST_TABLE = 'TEST_TABLE';
exports.testItemBMSchema = (0, nodejs_lib_1.objectSchema)({
k1: nodejs_lib_1.stringSchema,
k2: nodejs_lib_1.stringSchema.allow(null).optional(),
k3: nodejs_lib_1.numberSchema.optional(),
even: nodejs_lib_1.booleanSchema.optional(),
b1: nodejs_lib_1.binarySchema.optional(),
nested: (0, nodejs_lib_1.objectSchema)({
foo: nodejs_lib_1.numberSchema,
}).optional(),
}).concat(nodejs_lib_1.baseDBEntitySchema);
exports.testItemTMSchema = (0, nodejs_lib_1.objectSchema)({
k1: nodejs_lib_1.stringSchema,
even: nodejs_lib_1.booleanSchema.optional(),
});
exports.testItemBMJsonSchema = js_lib_1.jsonSchema
.rootObject({
// todo: figure out how to not copy-paste these 3 fields
id: js_lib_1.jsonSchema.string(), // todo: not strictly needed here
created: js_lib_1.jsonSchema.unixTimestamp(),
updated: js_lib_1.jsonSchema.unixTimestamp(),
k1: js_lib_1.jsonSchema.string(),
k2: js_lib_1.jsonSchema.oneOf([js_lib_1.jsonSchema.string(), js_lib_1.jsonSchema.null()]).optional(),
k3: js_lib_1.jsonSchema.number().optional(),
even: js_lib_1.jsonSchema.boolean().optional(),
b1: js_lib_1.jsonSchema.buffer().optional(),
})
.baseDBEntity()
.build();
function createTestItemDBM(num = 1) {
return {
id: `id${num}`,
k1: `v${num}`,
k2: `v${num * 2}`,
k3: num,
even: num % 2 === 0,
nested: { foo: num },
created: MOCK_TS_2018_06_21,
updated: MOCK_TS_2018_06_21,
};
}
function createTestItemBM(num = 1) {
return createTestItemDBM(num);
}
function createTestItemsDBM(count = 1) {
return (0, js_lib_1._range)(1, count + 1).map(num => createTestItemDBM(num));
}
function createTestItemsBM(count = 1) {
return (0, js_lib_1._range)(1, count + 1).map(num => createTestItemBM(num));
}