UNPKG

@ng-doc/ui-kit

Version:

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>

1 lines 2.98 kB
{"version":3,"file":"ng-doc-ui-kit-decorators.mjs","sources":["../../../../libs/ui-kit/decorators/pure.ts","../../../../libs/ui-kit/decorators/ng-doc-ui-kit-decorators.ts"],"sourcesContent":["/* eslint-disable */\n\n/**\n * Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}.\n * Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned\n * value for function, skipping calculation when arguments are strictly the same.\n *\n * @throws error if used not on getter or function\n *\n * CAUTION: `this` is not available inside such functions/getters, they must be pure.\n */\nexport function ngDocMakePure<T>(\n\t_target: Object,\n\tpropertyKey: string,\n\t{ get, enumerable, value }: TypedPropertyDescriptor<T>,\n): TypedPropertyDescriptor<T> {\n\tif (get) {\n\t\treturn {\n\t\t\tenumerable,\n\t\t\tget(): T {\n\t\t\t\tconst value = get.call(this);\n\n\t\t\t\tObject.defineProperty(this, propertyKey, { enumerable, value });\n\n\t\t\t\treturn value;\n\t\t\t},\n\t\t};\n\t}\n\n\tif (typeof value !== 'function') {\n\t\tthrow new Error('ngDocMakePure can only be used with functions or getters');\n\t}\n\n\tconst original = value;\n\n\treturn {\n\t\tenumerable,\n\t\tget(): T {\n\t\t\tlet previousArgs: readonly unknown[] = [];\n\t\t\tlet previousResult: any;\n\n\t\t\tconst patched = (...args: unknown[]) => {\n\t\t\t\tif (\n\t\t\t\t\tpreviousArgs.length === args.length &&\n\t\t\t\t\targs.every((arg, index) => arg === previousArgs[index])\n\t\t\t\t) {\n\t\t\t\t\treturn previousResult;\n\t\t\t\t}\n\n\t\t\t\tpreviousArgs = args;\n\t\t\t\tpreviousResult = original.apply(this, args);\n\n\t\t\t\treturn previousResult;\n\t\t\t};\n\n\t\t\tObject.defineProperty(this, propertyKey, {\n\t\t\t\tvalue: patched,\n\t\t\t});\n\n\t\t\treturn patched as any;\n\t\t},\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;AAEA;;;;;;;;AAQG;AACa,SAAA,aAAa,CAC5B,OAAe,EACf,WAAmB,EACnB,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAA8B,EAAA;IAEtD,IAAI,GAAG,EAAE;QACR,OAAO;YACN,UAAU;YACV,GAAG,GAAA;gBACF,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAE5B,gBAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAE/D,gBAAA,OAAO,KAAK;aACZ;SACD;;AAGF,IAAA,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AAChC,QAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;;IAG5E,MAAM,QAAQ,GAAG,KAAK;IAEtB,OAAO;QACN,UAAU;QACV,GAAG,GAAA;YACF,IAAI,YAAY,GAAuB,EAAE;AACzC,YAAA,IAAI,cAAmB;AAEvB,YAAA,MAAM,OAAO,GAAG,CAAC,GAAG,IAAe,KAAI;AACtC,gBAAA,IACC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;AACnC,oBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,EACtD;AACD,oBAAA,OAAO,cAAc;;gBAGtB,YAAY,GAAG,IAAI;gBACnB,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAE3C,gBAAA,OAAO,cAAc;AACtB,aAAC;AAED,YAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE;AACxC,gBAAA,KAAK,EAAE,OAAO;AACd,aAAA,CAAC;AAEF,YAAA,OAAO,OAAc;SACrB;KACD;AACF;;AC9DA;;AAEG;;;;"}