UNPKG

functional-google-cloud

Version:

Google Cloud Utilities functions in Functional Programming Style

40 lines 2.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.table = exports.models = exports.modelAndConditions = exports.condition = exports.operation = exports.modelAndUpdate = exports.model = exports.modelData = exports.modelBase = exports.nonModelObject = exports.id = exports.nonEmptyString = void 0; const fast_check_1 = __importDefault(require("fast-check")); const ramda_1 = require("ramda"); exports.nonEmptyString = () => fast_check_1.default.hexaString(1, 128); exports.id = () => fast_check_1.default.hexaString(16, 16); exports.nonModelObject = () => fast_check_1.default.anything().filter((object) => !object || !object.id); exports.modelBase = () => fast_check_1.default.record({ id: exports.id(), }); exports.modelData = () => fast_check_1.default.object({ maxDepth: 1, key: fast_check_1.default.hexaString(1, 16), values: [fast_check_1.default.string(), fast_check_1.default.integer()], }); exports.model = () => fast_check_1.default .tuple(exports.modelBase(), exports.modelData()) .map(([base, content]) => (Object.assign(Object.assign({}, base), content))); exports.modelAndUpdate = () => fast_check_1.default.tuple(exports.model(), exports.model()).map(([model, update]) => [ model, Object.assign(Object.assign({}, update), { id: model.id }), ]); exports.operation = () => fast_check_1.default.constantFrom('=='); exports.condition = () => fast_check_1.default.tuple(exports.nonEmptyString(), exports.operation(), exports.nonEmptyString()); exports.modelAndConditions = () => exports.model() .chain((model) => { const modelKeys = ramda_1.keys(model); return fast_check_1.default.tuple(fast_check_1.default.constant(model), fast_check_1.default.subarray(modelKeys, 1, modelKeys.length)); }) .map(([model, keys]) => [ model, keys.map((key) => [key, '==', model[key]]), ]); exports.models = () => fast_check_1.default.array(exports.model(), 2, 16); exports.table = () => exports.id(); //# sourceMappingURL=Arbitraries.js.map