async.d.ts 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import { syncMemoizer } from './sync';
  2. import { INodeStyleCallBack as CB, ResultBase, IParamsBase0, IParamsBase1, IParamsBase2, IParamsBase3, IParamsBase4, IParamsBase5, IParamsBase6 } from './util';
  3. export interface IMemoized<T1, T2, T3, T4, T5, T6, TResult> extends ResultBase {
  4. (cb: CB<TResult>): void;
  5. (a1: T1, cb: CB<TResult>): void;
  6. (a1: T1, a2: T2, cb: CB<TResult>): void;
  7. (a1: T1, a2: T2, a3: T3, cb: CB<TResult>): void;
  8. (a1: T1, a2: T2, a3: T3, a4: T4, cb: CB<TResult>): void;
  9. (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, cb: CB<TResult>): void;
  10. (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, cb: CB<TResult>): void;
  11. }
  12. interface IMemoizableFunction0<TResult> {
  13. (cb: CB<TResult>): void;
  14. }
  15. interface IMemoizableFunction1<T1, TResult> {
  16. (a1: T1, cb: CB<TResult>): void;
  17. }
  18. interface IMemoizableFunction2<T1, T2, TResult> {
  19. (a1: T1, a2: T2, cb: CB<TResult>): void;
  20. }
  21. interface IMemoizableFunction3<T1, T2, T3, TResult> {
  22. (a1: T1, a2: T2, a3: T3, cb: CB<TResult>): void;
  23. }
  24. interface IMemoizableFunction4<T1, T2, T3, T4, TResult> {
  25. (a1: T1, a2: T2, a3: T3, a4: T4, cb: CB<TResult>): void;
  26. }
  27. interface IMemoizableFunction5<T1, T2, T3, T4, T5, TResult> {
  28. (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, cb: CB<TResult>): void;
  29. }
  30. interface IMemoizableFunction6<T1, T2, T3, T4, T5, T6, TResult> {
  31. (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, cb: CB<TResult>): void;
  32. }
  33. interface AsyncParams0<TResult> extends IParamsBase0<TResult> {
  34. load: IMemoizableFunction0<TResult>;
  35. }
  36. interface AsyncParams1<T1, TResult> extends IParamsBase1<T1, TResult> {
  37. load: IMemoizableFunction1<T1, TResult>;
  38. }
  39. interface AsyncParams2<T1, T2, TResult> extends IParamsBase2<T1, T2, TResult> {
  40. load: IMemoizableFunction2<T1, T2, TResult>;
  41. }
  42. interface AsyncParams3<T1, T2, T3, TResult> extends IParamsBase3<T1, T2, T3, TResult> {
  43. load: IMemoizableFunction3<T1, T2, T3, TResult>;
  44. }
  45. interface AsyncParams4<T1, T2, T3, T4, TResult> extends IParamsBase4<T1, T2, T3, T4, TResult> {
  46. load: IMemoizableFunction4<T1, T2, T3, T4, TResult>;
  47. }
  48. interface AsyncParams5<T1, T2, T3, T4, T5, TResult> extends IParamsBase5<T1, T2, T3, T4, T5, TResult> {
  49. load: IMemoizableFunction5<T1, T2, T3, T4, T5, TResult>;
  50. }
  51. interface AsyncParams6<T1, T2, T3, T4, T5, T6, TResult> extends IParamsBase6<T1, T2, T3, T4, T5, T6, TResult> {
  52. /**
  53. * The function that loads the resource when is not in the cache.
  54. */
  55. load: IMemoizableFunction6<T1, T2, T3, T4, T5, T6, TResult>;
  56. }
  57. declare function asyncMemoizer<TResult>(options: AsyncParams0<TResult>): IMemoized<unknown, unknown, unknown, unknown, unknown, unknown, TResult>;
  58. declare namespace asyncMemoizer {
  59. var sync: typeof syncMemoizer;
  60. }
  61. declare function asyncMemoizer<T1, TResult>(options: AsyncParams1<T1, TResult>): IMemoized<T1, unknown, unknown, unknown, unknown, unknown, TResult>;
  62. declare namespace asyncMemoizer {
  63. var sync: typeof syncMemoizer;
  64. }
  65. declare function asyncMemoizer<T1, T2, TResult>(options: AsyncParams2<T1, T2, TResult>): IMemoized<T1, T2, unknown, unknown, unknown, unknown, TResult>;
  66. declare namespace asyncMemoizer {
  67. var sync: typeof syncMemoizer;
  68. }
  69. declare function asyncMemoizer<T1, T2, T3, TResult>(options: AsyncParams3<T1, T2, T3, TResult>): IMemoized<T1, T2, T3, unknown, unknown, unknown, TResult>;
  70. declare namespace asyncMemoizer {
  71. var sync: typeof syncMemoizer;
  72. }
  73. declare function asyncMemoizer<T1, T2, T3, T4, TResult>(options: AsyncParams4<T1, T2, T3, T4, TResult>): IMemoized<T1, T2, T3, T4, unknown, unknown, TResult>;
  74. declare namespace asyncMemoizer {
  75. var sync: typeof syncMemoizer;
  76. }
  77. declare function asyncMemoizer<T1, T2, T3, T4, T5, TResult>(options: AsyncParams5<T1, T2, T3, T4, T5, TResult>): IMemoized<T1, T2, T3, T4, T5, unknown, TResult>;
  78. declare namespace asyncMemoizer {
  79. var sync: typeof syncMemoizer;
  80. }
  81. declare function asyncMemoizer<T1, T2, T3, T4, T5, T6, TResult>(options: AsyncParams6<T1, T2, T3, T4, T5, T6, TResult>): IMemoized<T1, T2, T3, T4, T5, T6, TResult>;
  82. declare namespace asyncMemoizer {
  83. var sync: typeof syncMemoizer;
  84. }
  85. export { asyncMemoizer };