{"version":3,"file":"angular-extensions-decorators.mjs","sources":["../../../projects/angular-extensions/decorators/src/pure.decorator.ts","../../../projects/angular-extensions/decorators/src/angular-extensions-decorators.ts"],"sourcesContent":["import { memoize } from \"lodash-es\";\r\n\r\n/**\r\n * Caches result of the pure function based on provided input parameters.\r\n *\r\n * @param keySelector Cache key selector for complex objects.\r\n * @example (user: User) => user.id\r\n * @returns Function with cache middleware\r\n */\r\nexport function Pure(keySelector?: (...args: any[]) => any) {\r\n  return (target: any, key: string, descriptor: PropertyDescriptor) => {\r\n    if (typeof descriptor.value !== \"function\") {\r\n      throw new Error(\"Pure decorator can be applied only to pure methods\");\r\n    }\r\n\r\n    descriptor.value = memoize(descriptor.value, keySelector);\r\n\r\n    return descriptor;\r\n  };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;AAEA;;;;;;AAMG;AACG,SAAU,IAAI,CAAC,WAAqC,EAAA;AACxD,IAAA,OAAO,CAAC,MAAW,EAAE,GAAW,EAAE,UAA8B,KAAI;AAClE,QAAA,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE;AAC1C,YAAA,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;AACvE,SAAA;QAED,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAE1D,QAAA,OAAO,UAAU,CAAC;AACpB,KAAC,CAAC;AACJ;;ACnBA;;AAEG;;;;"}