{"version":3,"file":"sort.mjs","sources":["../../../src/predicates/sort.ts"],"sourcesContent":["export class ModelSortPredicateCreator {\n    static createPredicateBuilder(modelDefinition) {\n        const { name: modelName } = modelDefinition;\n        const fieldNames = new Set(Object.keys(modelDefinition.fields));\n        const predicate = new Proxy({}, {\n            get(_target, propertyKey, receiver) {\n                const field = propertyKey;\n                if (!fieldNames.has(field)) {\n                    throw new Error(`Invalid field for model. field: ${String(field)}, model: ${modelName}`);\n                }\n                const result = (sortDirection) => {\n                    ModelSortPredicateCreator.sortPredicateGroupsMap\n                        .get(receiver)\n                        ?.push({ field, sortDirection });\n                    return receiver;\n                };\n                return result;\n            },\n        });\n        ModelSortPredicateCreator.sortPredicateGroupsMap.set(predicate, []);\n        return predicate;\n    }\n    static isValidPredicate(predicate) {\n        return ModelSortPredicateCreator.sortPredicateGroupsMap.has(predicate);\n    }\n    static getPredicates(predicate, throwOnInvalid = true) {\n        if (throwOnInvalid &&\n            !ModelSortPredicateCreator.isValidPredicate(predicate)) {\n            throw new Error('The predicate is not valid');\n        }\n        const predicateGroup = ModelSortPredicateCreator.sortPredicateGroupsMap.get(predicate);\n        if (predicateGroup) {\n            return predicateGroup;\n        }\n        else {\n            throw new Error('Predicate group not found');\n        }\n    }\n    // transforms cb-style predicate into Proxy\n    static createFromExisting(modelDefinition, existing) {\n        if (!existing || !modelDefinition) {\n            return undefined;\n        }\n        return existing(ModelSortPredicateCreator.createPredicateBuilder(modelDefinition));\n    }\n}\nModelSortPredicateCreator.sortPredicateGroupsMap = new WeakMap();\n"],"names":[],"mappings":"AAAO,MAAM,yBAAyB,CAAC;AACvC,IAAI,OAAO,sBAAsB,CAAC,eAAe,EAAE;AACnD,QAAQ,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,eAAe;AACnD,QAAQ,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACvE,QAAQ,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE;AACxC,YAAY,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE;AAChD,gBAAgB,MAAM,KAAK,GAAG,WAAW;AACzC,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC5C,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5G,gBAAgB;AAChB,gBAAgB,MAAM,MAAM,GAAG,CAAC,aAAa,KAAK;AAClD,oBAAoB,yBAAyB,CAAC;AAC9C,yBAAyB,GAAG,CAAC,QAAQ;AACrC,0BAA0B,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AACxD,oBAAoB,OAAO,QAAQ;AACnC,gBAAgB,CAAC;AACjB,gBAAgB,OAAO,MAAM;AAC7B,YAAY,CAAC;AACb,SAAS,CAAC;AACV,QAAQ,yBAAyB,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;AAC3E,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,OAAO,gBAAgB,CAAC,SAAS,EAAE;AACvC,QAAQ,OAAO,yBAAyB,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC9E,IAAI;AACJ,IAAI,OAAO,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,EAAE;AAC3D,QAAQ,IAAI,cAAc;AAC1B,YAAY,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;AACpE,YAAY,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AACzD,QAAQ;AACR,QAAQ,MAAM,cAAc,GAAG,yBAAyB,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC9F,QAAQ,IAAI,cAAc,EAAE;AAC5B,YAAY,OAAO,cAAc;AACjC,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;AACxD,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,OAAO,kBAAkB,CAAC,eAAe,EAAE,QAAQ,EAAE;AACzD,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC3C,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,OAAO,QAAQ,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;AAC1F,IAAI;AACJ;AACA,yBAAyB,CAAC,sBAAsB,GAAG,IAAI,OAAO,EAAE;;;;"}