UNPKG

@overture-stack/sqon-builder

Version:
91 lines 4.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isScalarFilterValue = exports.isArrayFilterValue = exports.isScalarFilterKey = exports.isArrayFilterKey = exports.isScalarFilter = exports.isArrayFilter = exports.isFilter = exports.isCombination = exports.SQON = exports.Operator = exports.CombinationOperator = exports.FilterOperator = exports.FilterContent = exports.ScalarFilter = exports.ArrayFilter = exports.LesserThanFilter = exports.LesserThanFilterContent = exports.GreaterThanFilter = exports.GreaterThanFilterContent = exports.InFilter = exports.InFilterContent = exports.FilterValue = exports.ScalarFilterValue = exports.ArrayFilterValue = exports.Keys = exports.CombinationKeys = exports.FilterKeys = exports.ScalarFilterKeys = exports.ArrayFilterKeys = void 0; var zod_1 = require("zod"); exports.ArrayFilterKeys = { In: 'in', }; exports.ScalarFilterKeys = { GreaterThan: 'gt', LesserThan: 'lt', }; exports.FilterKeys = Object.assign({}, exports.ArrayFilterKeys, exports.ScalarFilterKeys); exports.CombinationKeys = { And: 'and', Or: 'or', Not: 'not', }; exports.Keys = Object.assign({}, exports.ArrayFilterKeys, exports.ScalarFilterKeys, exports.CombinationKeys); exports.ArrayFilterValue = zod_1.z.union([ zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).array(), zod_1.z.string(), zod_1.z.number(), ]); exports.ScalarFilterValue = zod_1.z.number(); exports.FilterValue = zod_1.z.union([exports.ArrayFilterValue, exports.ScalarFilterValue]); exports.InFilterContent = zod_1.z.object({ fieldName: zod_1.z.string(), value: exports.ArrayFilterValue, }); exports.InFilter = zod_1.z.object({ op: zod_1.z.literal(exports.ArrayFilterKeys.In), content: exports.InFilterContent, }); exports.GreaterThanFilterContent = zod_1.z.object({ fieldName: zod_1.z.string(), value: exports.ScalarFilterValue, }); exports.GreaterThanFilter = zod_1.z.object({ op: zod_1.z.literal(exports.ScalarFilterKeys.GreaterThan), content: exports.GreaterThanFilterContent, }); exports.LesserThanFilterContent = zod_1.z.object({ fieldName: zod_1.z.string(), value: exports.ScalarFilterValue, }); exports.LesserThanFilter = zod_1.z.object({ op: zod_1.z.literal(exports.ScalarFilterKeys.LesserThan), content: exports.LesserThanFilterContent, }); exports.ArrayFilter = exports.InFilter; exports.ScalarFilter = zod_1.z.union([exports.GreaterThanFilter, exports.LesserThanFilter]); exports.FilterContent = zod_1.z.union([exports.InFilterContent, exports.GreaterThanFilterContent, exports.LesserThanFilterContent]); exports.FilterOperator = zod_1.z.discriminatedUnion('op', [exports.InFilter, exports.GreaterThanFilter, exports.LesserThanFilter]); exports.CombinationOperator = zod_1.z.object({ op: zod_1.z.union([zod_1.z.literal(exports.CombinationKeys.And), zod_1.z.literal(exports.CombinationKeys.Not), zod_1.z.literal(exports.CombinationKeys.Or)]), content: zod_1.z.array(zod_1.z.union([exports.FilterOperator, zod_1.z.lazy(function () { return exports.CombinationOperator; })])), pivot: zod_1.z.string().optional(), }); exports.Operator = zod_1.z.union([exports.CombinationOperator, exports.FilterOperator]); exports.SQON = exports.Operator; var isCombination = function (operator) { return exports.CombinationOperator.safeParse(operator).success; }; exports.isCombination = isCombination; var isFilter = function (operator) { return exports.FilterOperator.safeParse(operator).success; }; exports.isFilter = isFilter; var isArrayFilter = function (operator) { return exports.ArrayFilter.safeParse(operator).success; }; exports.isArrayFilter = isArrayFilter; var isScalarFilter = function (operator) { return exports.ScalarFilter.safeParse(operator).success; }; exports.isScalarFilter = isScalarFilter; var arrayFilterKeys = Object.values(exports.ArrayFilterKeys); var isArrayFilterKey = function (input) { return typeof input === 'string' && arrayFilterKeys.includes(input); }; exports.isArrayFilterKey = isArrayFilterKey; var scalarFilterKeys = Object.values(exports.ScalarFilterKeys); var isScalarFilterKey = function (input) { return typeof input === 'string' && scalarFilterKeys.includes(input); }; exports.isScalarFilterKey = isScalarFilterKey; var isArrayFilterValue = function (value) { return exports.ArrayFilterValue.safeParse(value).success; }; exports.isArrayFilterValue = isArrayFilterValue; var isScalarFilterValue = function (value) { return exports.ScalarFilterValue.safeParse(value).success; }; exports.isScalarFilterValue = isScalarFilterValue; //# sourceMappingURL=sqon.js.map