222
schangxiang@126.com
2025-06-13 6a8393408d8cefcea02b7a598967de8dc1e565c2
1
{"version":3,"sources":["../../src/metadata-builder/MetadataUtils.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH;IAAA;IAqCA,CAAC;IAnCG;;;;;OAKG;IACI,gCAAkB,GAAzB,UAA0B,MAAgB;QACtC,IAAM,IAAI,GAAe,CAAC,MAAM,CAAC,CAAC;QAClC,IAAM,cAAc,GAAG,UAAC,MAAgB;YACpC,IAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjB,cAAc,CAAC,KAAK,CAAC,CAAC;aACzB;QACL,CAAC,CAAC;QACF,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,yBAAW,GAAlB,UAAmB,OAAiB,EAAE,OAAiB;QACnD,OAAO,OAAO,CAAC,SAAS,YAAY,OAAO,CAAC;IAChD,CAAC;IAED;;;OAGG;IACI,4BAAc,GAArB,UAAkD,KAAU,EAAE,OAAe;QACzE,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,OAAO,KAAK,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAlD,CAAkD,CAAC,CAAC;IACpF,CAAC;IAEL,oBAAC;AAAD,CArCA,AAqCC,IAAA;AArCY,sCAAa","file":"MetadataUtils.js","sourcesContent":["/**\n * Metadata args utility functions.\n */\nexport class MetadataUtils {\n\n    /**\n     * Gets given's entity all inherited classes.\n     * Gives in order from parents to children.\n     * For example Post extends ContentModel which extends Unit it will give\n     * [Unit, ContentModel, Post]\n     */\n    static getInheritanceTree(entity: Function): Function[] {\n        const tree: Function[] = [entity];\n        const getPrototypeOf = (object: Function): void => {\n            const proto = Object.getPrototypeOf(object);\n            if (proto && proto.name) {\n                tree.push(proto);\n                getPrototypeOf(proto);\n            }\n        };\n        getPrototypeOf(entity);\n        return tree;\n    }\n\n    /**\n     * Checks if this table is inherited from another table.\n     */\n    static isInherited(target1: Function, target2: Function) {\n        return target1.prototype instanceof target2;\n    }\n\n    /**\n     * Filters given array of targets by a given classes.\n     * If classes are not given, then it returns array itself.\n     */\n    static filterByTarget<T extends { target?: any }>(array: T[], classes?: any[]): T[] {\n        if (!classes) return array;\n        return array.filter(item => item.target && classes.indexOf(item.target) !== -1);\n    }\n\n}"],"sourceRoot":".."}