@forestadmin/datasource-toolkit
Version:
119 lines • 10.4 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const factory_1 = __importDefault(require("../factory"));
const branch_1 = __importDefault(require("../nodes/branch"));
const leaf_1 = __importDefault(require("../nodes/leaf"));
exports.default = () => ({
Blank: [
{
dependsOn: ['In'],
forTypes: ['String'],
replacer: leaf => leaf.override({ operator: 'In', value: [null, ''] }),
},
{
dependsOn: ['Missing'],
replacer: leaf => leaf.override({ operator: 'Missing' }),
},
],
Missing: [
{
dependsOn: ['Equal'],
replacer: leaf => leaf.override({ operator: 'Equal', value: null }),
},
],
Present: [
{
dependsOn: ['NotIn'],
forTypes: ['String'],
replacer: leaf => leaf.override({ operator: 'NotIn', value: [null, ''] }),
},
{
dependsOn: ['NotEqual'],
replacer: leaf => leaf.override({ operator: 'NotEqual', value: null }),
},
],
Equal: [
{
dependsOn: ['In'],
replacer: leaf => leaf.override({ operator: 'In', value: [leaf.value] }),
},
],
In: [
{
dependsOn: ['Equal', 'Match'],
forTypes: ['String'],
replacer: leaf => {
const values = leaf.value;
const conditions = [];
for (const value of [null, '']) {
if (values.includes(value)) {
conditions.push(new leaf_1.default(leaf.field, 'Equal', value));
}
}
if (values.some(v => v !== null && v !== '')) {
const escaped = values.filter(Boolean).map(str => str.replace(/[.|[\]]/g, m => `\\${m}`));
const regexp = new RegExp(`^${escaped.join('|')}$`, 'g');
conditions.push(new leaf_1.default(leaf.field, 'Match', regexp));
}
return factory_1.default.union(...conditions);
},
},
{
dependsOn: ['Equal'],
replacer: leaf => factory_1.default.union(...leaf.value.map(item => leaf.override({ operator: 'Equal', value: item }))),
},
],
NotEqual: [
{
dependsOn: ['NotIn'],
replacer: leaf => leaf.override({ operator: 'NotIn', value: [leaf.value] }),
},
],
NotIn: [
{
dependsOn: ['NotEqual', 'Match'],
forTypes: ['String'],
replacer: leaf => {
const values = leaf.value;
const conditions = [];
for (const value of [null, '']) {
if (values.includes(value)) {
conditions.push(new leaf_1.default(leaf.field, 'NotEqual', value));
}
}
if (values.some(v => v !== null && v !== '')) {
const escaped = values.filter(Boolean).map(str => str.replace(/[.|[\]]/g, m => `\\${m}`));
const regexp = new RegExp(`(?!${escaped.join('|')})`, 'g');
conditions.push(new leaf_1.default(leaf.field, 'Match', regexp));
}
return factory_1.default.intersect(...conditions);
},
},
{
dependsOn: ['NotEqual'],
replacer: leaf => factory_1.default.intersect(...leaf.value.map(item => leaf.override({ operator: 'NotEqual', value: item }))),
},
],
LessThanOrEqual: [
{
dependsOn: ['LessThan', 'Equal'],
replacer: leaf => new branch_1.default('Or', [
new leaf_1.default(leaf.field, 'LessThan', leaf.value),
new leaf_1.default(leaf.field, 'Equal', leaf.value),
]),
},
],
GreaterThanOrEqual: [
{
dependsOn: ['GreaterThan', 'Equal'],
replacer: leaf => new branch_1.default('Or', [
new leaf_1.default(leaf.field, 'GreaterThan', leaf.value),
new leaf_1.default(leaf.field, 'Equal', leaf.value),
]),
},
],
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyaXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlcmZhY2VzL3F1ZXJ5L2NvbmRpdGlvbi10cmVlL3RyYW5zZm9ybXMvY29tcGFyaXNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLHlEQUE4QztBQUU5Qyw2REFBa0Q7QUFDbEQseURBQThDO0FBRzlDLGtCQUFlLEdBQTZDLEVBQUUsQ0FBQyxDQUFDO0lBQzlELEtBQUssRUFBRTtRQUNMO1lBQ0UsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2pCLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN2RTtRQUNEO1lBQ0UsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3RCLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7U0FDekQ7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQO1lBQ0UsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNwRTtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1A7WUFDRSxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFDcEIsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxR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
;