@overkill-dev/doubles 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/LICENSE +21 -0
  2. package/assert/assertion-extension.d.ts +65 -0
  3. package/assert/assertion-extension.d.ts.map +1 -0
  4. package/assert/assertion-extension.js +250 -0
  5. package/assert/assertion-extension.js.map +1 -0
  6. package/doubles/disposal-symbol.js +10 -0
  7. package/doubles/disposal-symbol.js.map +1 -0
  8. package/doubles/double-behavior.d.ts +106 -0
  9. package/doubles/double-behavior.d.ts.map +1 -0
  10. package/doubles/double-behavior.js +257 -0
  11. package/doubles/double-behavior.js.map +1 -0
  12. package/doubles/double-chronology.js +78 -0
  13. package/doubles/double-chronology.js.map +1 -0
  14. package/doubles/double-history-api.js +125 -0
  15. package/doubles/double-history-api.js.map +1 -0
  16. package/doubles/double-history-record.d.ts +82 -0
  17. package/doubles/double-history-record.d.ts.map +1 -0
  18. package/doubles/double-history-record.js +65 -0
  19. package/doubles/double-history-record.js.map +1 -0
  20. package/doubles/double-history-store.d.ts +21 -0
  21. package/doubles/double-history-store.d.ts.map +1 -0
  22. package/doubles/double-history-store.js +118 -0
  23. package/doubles/double-history-store.js.map +1 -0
  24. package/doubles/double-history.d.ts +141 -0
  25. package/doubles/double-history.d.ts.map +1 -0
  26. package/doubles/double-history.js +32 -0
  27. package/doubles/double-history.js.map +1 -0
  28. package/doubles/double-iterator-event-types.d.ts +25 -0
  29. package/doubles/double-iterator-event-types.d.ts.map +1 -0
  30. package/doubles/double-iterator-tracking.d.ts +12 -0
  31. package/doubles/double-iterator-tracking.d.ts.map +1 -0
  32. package/doubles/double-iterator-tracking.js +161 -0
  33. package/doubles/double-iterator-tracking.js.map +1 -0
  34. package/doubles/double-rule-arguments.d.ts +18 -0
  35. package/doubles/double-rule-arguments.d.ts.map +1 -0
  36. package/doubles/double-rule-callback.d.ts +40 -0
  37. package/doubles/double-rule-callback.d.ts.map +1 -0
  38. package/doubles/double-rule-callback.js +84 -0
  39. package/doubles/double-rule-callback.js.map +1 -0
  40. package/doubles/double-rule-generator.d.ts +108 -0
  41. package/doubles/double-rule-generator.d.ts.map +1 -0
  42. package/doubles/double-rule-generator.js +37 -0
  43. package/doubles/double-rule-generator.js.map +1 -0
  44. package/doubles/double-rule-types.d.ts +162 -0
  45. package/doubles/double-rule-types.d.ts.map +1 -0
  46. package/doubles/double-rule.d.ts +3 -0
  47. package/doubles/double-rule.d.ts.map +1 -0
  48. package/doubles/double-rule.js +113 -0
  49. package/doubles/double-rule.js.map +1 -0
  50. package/doubles/double-runtime.js +173 -0
  51. package/doubles/double-runtime.js.map +1 -0
  52. package/doubles/double-signature.d.ts +5 -0
  53. package/doubles/double-signature.d.ts.map +1 -0
  54. package/doubles/double-usage-argument-assertion.js +202 -0
  55. package/doubles/double-usage-argument-assertion.js.map +1 -0
  56. package/doubles/double-usage-contract.d.ts +29 -0
  57. package/doubles/double-usage-contract.d.ts.map +1 -0
  58. package/doubles/double-usage-contract.js +11 -0
  59. package/doubles/double-usage-contract.js.map +1 -0
  60. package/doubles/double-usage-count-assertion.js +73 -0
  61. package/doubles/double-usage-count-assertion.js.map +1 -0
  62. package/doubles/double-usage-disposal-assertion.js +175 -0
  63. package/doubles/double-usage-disposal-assertion.js.map +1 -0
  64. package/doubles/double-usage-inspection.js +59 -0
  65. package/doubles/double-usage-inspection.js.map +1 -0
  66. package/doubles/double-usage-iterator-assertion.js +124 -0
  67. package/doubles/double-usage-iterator-assertion.js.map +1 -0
  68. package/doubles/double-usage-order-assertion.js +91 -0
  69. package/doubles/double-usage-order-assertion.js.map +1 -0
  70. package/doubles/double-usage.d.ts +81 -0
  71. package/doubles/double-usage.d.ts.map +1 -0
  72. package/doubles/double-usage.js +228 -0
  73. package/doubles/double-usage.js.map +1 -0
  74. package/doubles/protocol-disposable-double.d.ts +16 -0
  75. package/doubles/protocol-disposable-double.d.ts.map +1 -0
  76. package/doubles/protocol-disposable-double.js +37 -0
  77. package/doubles/protocol-disposable-double.js.map +1 -0
  78. package/doubles/protocol-double-metadata.js +30 -0
  79. package/doubles/protocol-double-metadata.js.map +1 -0
  80. package/doubles/protocol-double.d.ts +50 -0
  81. package/doubles/protocol-double.d.ts.map +1 -0
  82. package/doubles/protocol-double.js +76 -0
  83. package/doubles/protocol-double.js.map +1 -0
  84. package/doubles/protocol-iterator-double.d.ts +93 -0
  85. package/doubles/protocol-iterator-double.d.ts.map +1 -0
  86. package/doubles/protocol-iterator-double.js +512 -0
  87. package/doubles/protocol-iterator-double.js.map +1 -0
  88. package/doubles/test-double.d.ts +62 -0
  89. package/doubles/test-double.d.ts.map +1 -0
  90. package/doubles/test-double.js +192 -0
  91. package/doubles/test-double.js.map +1 -0
  92. package/package.json +38 -6
  93. package/packages/doubles/doubles.entry-point.d.ts +13 -0
  94. package/packages/doubles/doubles.entry-point.d.ts.map +1 -0
  95. package/packages/doubles/doubles.entry-point.js +5 -0
  96. package/packages/doubles/doubles.entry-point.js.map +1 -0
  97. package/readme.md +423 -5
  98. package/sbom.cdx.json +50 -0
@@ -0,0 +1,228 @@
1
+ import { argumentPrefixReference, argumentReference, indexedArgumentPrefixReference, indexedArgumentReference } from "./double-usage-argument-assertion.js";
2
+ import { atLeastOneReference, countReference, noEventsReference, onceReference } from "./double-usage-count-assertion.js";
3
+ import { disposedOnceReference, disposedReference, disposeCountReference, disposeOrderReference, notDisposedReference } from "./double-usage-disposal-assertion.js";
4
+ import { iteratedReference, iteratorEventCountReference, notIteratedReference, yieldCountReference, yieldedExactlyReference } from "./double-usage-iterator-assertion.js";
5
+ import { orderReference } from "./double-usage-order-assertion.js";
6
+ export const doubleUsage = {
7
+ callCount: countReference('doubleUsage.callCount', 'call'),
8
+ callOrder: orderReference('doubleUsage.callOrder', 'call'),
9
+ called: atLeastOneReference('doubleUsage.called', 'call'),
10
+ calledOnce: onceReference('doubleUsage.calledOnce', 'call'),
11
+ calledOnceWith: argumentReference('doubleUsage.calledOnceWith', {
12
+ match: 'partial',
13
+ mode: 'call',
14
+ negative: false,
15
+ position: 'once'
16
+ }),
17
+ calledOnceWithExactly: argumentReference('doubleUsage.calledOnceWithExactly', {
18
+ match: 'exact',
19
+ mode: 'call',
20
+ negative: false,
21
+ position: 'once'
22
+ }),
23
+ calledOnceWithPrefix: argumentPrefixReference('doubleUsage.calledOnceWithPrefix', {
24
+ mode: 'call',
25
+ negative: false,
26
+ position: 'once'
27
+ }),
28
+ calledWith: argumentReference('doubleUsage.calledWith', {
29
+ match: 'partial',
30
+ mode: 'call',
31
+ negative: false,
32
+ position: 'any'
33
+ }),
34
+ calledWithExactly: argumentReference('doubleUsage.calledWithExactly', {
35
+ match: 'exact',
36
+ mode: 'call',
37
+ negative: false,
38
+ position: 'any'
39
+ }),
40
+ calledWithPrefix: argumentPrefixReference('doubleUsage.calledWithPrefix', {
41
+ mode: 'call',
42
+ negative: false,
43
+ position: 'any'
44
+ }),
45
+ constructed: atLeastOneReference('doubleUsage.constructed', 'construction'),
46
+ constructedOnce: onceReference('doubleUsage.constructedOnce', 'construction'),
47
+ constructedOnceWith: argumentReference('doubleUsage.constructedOnceWith', {
48
+ match: 'partial',
49
+ mode: 'construction',
50
+ negative: false,
51
+ position: 'once'
52
+ }),
53
+ constructedOnceWithExactly: argumentReference('doubleUsage.constructedOnceWithExactly', {
54
+ match: 'exact',
55
+ mode: 'construction',
56
+ negative: false,
57
+ position: 'once'
58
+ }),
59
+ constructedOnceWithPrefix: argumentPrefixReference('doubleUsage.constructedOnceWithPrefix', {
60
+ mode: 'construction',
61
+ negative: false,
62
+ position: 'once'
63
+ }),
64
+ constructedWith: argumentReference('doubleUsage.constructedWith', {
65
+ match: 'partial',
66
+ mode: 'construction',
67
+ negative: false,
68
+ position: 'any'
69
+ }),
70
+ constructedWithExactly: argumentReference('doubleUsage.constructedWithExactly', {
71
+ match: 'exact',
72
+ mode: 'construction',
73
+ negative: false,
74
+ position: 'any'
75
+ }),
76
+ constructedWithPrefix: argumentPrefixReference('doubleUsage.constructedWithPrefix', {
77
+ mode: 'construction',
78
+ negative: false,
79
+ position: 'any'
80
+ }),
81
+ constructionCount: countReference('doubleUsage.constructionCount', 'construction'),
82
+ constructionOrder: orderReference('doubleUsage.constructionOrder', 'construction'),
83
+ disposeCount: disposeCountReference('doubleUsage.disposeCount'),
84
+ disposeOrder: disposeOrderReference('doubleUsage.disposeOrder'),
85
+ disposed: disposedReference('doubleUsage.disposed'),
86
+ disposedOnce: disposedOnceReference('doubleUsage.disposedOnce'),
87
+ interacted: atLeastOneReference('doubleUsage.interacted', 'interaction'),
88
+ interactedOnce: onceReference('doubleUsage.interactedOnce', 'interaction'),
89
+ interactedOnceWith: argumentReference('doubleUsage.interactedOnceWith', {
90
+ match: 'partial',
91
+ mode: 'interaction',
92
+ negative: false,
93
+ position: 'once'
94
+ }),
95
+ interactedOnceWithExactly: argumentReference('doubleUsage.interactedOnceWithExactly', {
96
+ match: 'exact',
97
+ mode: 'interaction',
98
+ negative: false,
99
+ position: 'once'
100
+ }),
101
+ interactedOnceWithPrefix: argumentPrefixReference('doubleUsage.interactedOnceWithPrefix', {
102
+ mode: 'interaction',
103
+ negative: false,
104
+ position: 'once'
105
+ }),
106
+ interactedWith: argumentReference('doubleUsage.interactedWith', {
107
+ match: 'partial',
108
+ mode: 'interaction',
109
+ negative: false,
110
+ position: 'any'
111
+ }),
112
+ interactedWithExactly: argumentReference('doubleUsage.interactedWithExactly', {
113
+ match: 'exact',
114
+ mode: 'interaction',
115
+ negative: false,
116
+ position: 'any'
117
+ }),
118
+ interactedWithPrefix: argumentPrefixReference('doubleUsage.interactedWithPrefix', {
119
+ mode: 'interaction',
120
+ negative: false,
121
+ position: 'any'
122
+ }),
123
+ iterated: iteratedReference('doubleUsage.iterated'),
124
+ iteratorEventCount: iteratorEventCountReference('doubleUsage.iteratorEventCount'),
125
+ interactionCount: countReference('doubleUsage.interactionCount', 'interaction'),
126
+ interactionOrder: orderReference('doubleUsage.interactionOrder', 'interaction'),
127
+ lastCalledWith: argumentReference('doubleUsage.lastCalledWith', {
128
+ match: 'partial',
129
+ mode: 'call',
130
+ negative: false,
131
+ position: 'last'
132
+ }),
133
+ lastCalledWithExactly: argumentReference('doubleUsage.lastCalledWithExactly', {
134
+ match: 'exact',
135
+ mode: 'call',
136
+ negative: false,
137
+ position: 'last'
138
+ }),
139
+ lastCalledWithPrefix: argumentPrefixReference('doubleUsage.lastCalledWithPrefix', {
140
+ mode: 'call',
141
+ negative: false,
142
+ position: 'last'
143
+ }),
144
+ lastConstructedWith: argumentReference('doubleUsage.lastConstructedWith', {
145
+ match: 'partial',
146
+ mode: 'construction',
147
+ negative: false,
148
+ position: 'last'
149
+ }),
150
+ lastConstructedWithExactly: argumentReference('doubleUsage.lastConstructedWithExactly', {
151
+ match: 'exact',
152
+ mode: 'construction',
153
+ negative: false,
154
+ position: 'last'
155
+ }),
156
+ lastConstructedWithPrefix: argumentPrefixReference('doubleUsage.lastConstructedWithPrefix', {
157
+ mode: 'construction',
158
+ negative: false,
159
+ position: 'last'
160
+ }),
161
+ lastInteractedWith: argumentReference('doubleUsage.lastInteractedWith', {
162
+ match: 'partial',
163
+ mode: 'interaction',
164
+ negative: false,
165
+ position: 'last'
166
+ }),
167
+ lastInteractedWithExactly: argumentReference('doubleUsage.lastInteractedWithExactly', {
168
+ match: 'exact',
169
+ mode: 'interaction',
170
+ negative: false,
171
+ position: 'last'
172
+ }),
173
+ lastInteractedWithPrefix: argumentPrefixReference('doubleUsage.lastInteractedWithPrefix', {
174
+ mode: 'interaction',
175
+ negative: false,
176
+ position: 'last'
177
+ }),
178
+ notCalled: noEventsReference('doubleUsage.notCalled', 'call'),
179
+ notCalledWith: argumentReference('doubleUsage.notCalledWith', {
180
+ match: 'partial',
181
+ mode: 'call',
182
+ negative: true,
183
+ position: 'any'
184
+ }),
185
+ notCalledWithPrefix: argumentPrefixReference('doubleUsage.notCalledWithPrefix', {
186
+ mode: 'call',
187
+ negative: true,
188
+ position: 'any'
189
+ }),
190
+ notConstructed: noEventsReference('doubleUsage.notConstructed', 'construction'),
191
+ notConstructedWith: argumentReference('doubleUsage.notConstructedWith', {
192
+ match: 'partial',
193
+ mode: 'construction',
194
+ negative: true,
195
+ position: 'any'
196
+ }),
197
+ notConstructedWithPrefix: argumentPrefixReference('doubleUsage.notConstructedWithPrefix', {
198
+ mode: 'construction',
199
+ negative: true,
200
+ position: 'any'
201
+ }),
202
+ notDisposed: notDisposedReference('doubleUsage.notDisposed'),
203
+ notInteracted: noEventsReference('doubleUsage.notInteracted', 'interaction'),
204
+ notInteractedWith: argumentReference('doubleUsage.notInteractedWith', {
205
+ match: 'partial',
206
+ mode: 'interaction',
207
+ negative: true,
208
+ position: 'any'
209
+ }),
210
+ notInteractedWithPrefix: argumentPrefixReference('doubleUsage.notInteractedWithPrefix', {
211
+ mode: 'interaction',
212
+ negative: true,
213
+ position: 'any'
214
+ }),
215
+ notIterated: notIteratedReference('doubleUsage.notIterated'),
216
+ nthCallWith: indexedArgumentReference('doubleUsage.nthCallWith', 'call', 'partial'),
217
+ nthCallWithExactly: indexedArgumentReference('doubleUsage.nthCallWithExactly', 'call', 'exact'),
218
+ nthCallWithPrefix: indexedArgumentPrefixReference('doubleUsage.nthCallWithPrefix', 'call'),
219
+ nthConstructionWith: indexedArgumentReference('doubleUsage.nthConstructionWith', 'construction', 'partial'),
220
+ nthConstructionWithExactly: indexedArgumentReference('doubleUsage.nthConstructionWithExactly', 'construction', 'exact'),
221
+ nthConstructionWithPrefix: indexedArgumentPrefixReference('doubleUsage.nthConstructionWithPrefix', 'construction'),
222
+ nthInteractionWith: indexedArgumentReference('doubleUsage.nthInteractionWith', 'interaction', 'partial'),
223
+ nthInteractionWithExactly: indexedArgumentReference('doubleUsage.nthInteractionWithExactly', 'interaction', 'exact'),
224
+ nthInteractionWithPrefix: indexedArgumentPrefixReference('doubleUsage.nthInteractionWithPrefix', 'interaction'),
225
+ yieldCount: yieldCountReference('doubleUsage.yieldCount'),
226
+ yieldedExactly: yieldedExactlyReference('doubleUsage.yieldedExactly')
227
+ };
228
+ //# sourceMappingURL=double-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"double-usage.js","sourceRoot":"","sources":["../../../../source/doubles/double-usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type TestDouble, type TestDoubleConfiguration } from './test-double.ts';
2
+ export type TestDisposable = Disposable & {
3
+ readonly dispose: TestDouble<() => void>;
4
+ };
5
+ export type TestAsyncDisposable = AsyncDisposable & {
6
+ readonly asyncDispose: TestDouble<() => Promise<void>>;
7
+ };
8
+ export type DisposableConfiguration = {
9
+ readonly dispose: TestDoubleConfiguration<() => void>;
10
+ };
11
+ export type AsyncDisposableConfiguration = {
12
+ readonly asyncDispose: TestDoubleConfiguration<() => Promise<void>>;
13
+ };
14
+ export declare function createTestDisposable(...configuration: readonly [] | readonly [DisposableConfiguration]): TestDisposable;
15
+ export declare function createTestAsyncDisposable(...configuration: readonly [] | readonly [AsyncDisposableConfiguration]): TestAsyncDisposable;
16
+ //# sourceMappingURL=protocol-disposable-double.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-disposable-double.d.ts","sourceRoot":"","sources":["../../../../source/doubles/protocol-disposable-double.ts"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC/B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACtC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG;IAChD,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC,MAAM,IAAI,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACvC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CACvE,CAAC;AAEF,wBAAgB,oBAAoB,CAChC,GAAG,aAAa,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,uBAAuB,CAAC,GACnE,cAAc,CAiBhB;AAED,wBAAgB,yBAAyB,CACrC,GAAG,aAAa,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,4BAA4B,CAAC,GACxE,mBAAmB,CAiBrB"}
@@ -0,0 +1,37 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-type-assertion -- TypeScript cannot see native symbol installation through computed runtime keys. */
2
+ import { asyncDisposeSymbol, disposeSymbol } from "./disposal-symbol.js";
3
+ import { installProtocolMetadata } from "./protocol-double-metadata.js";
4
+ import { testDouble } from "./test-double.js";
5
+ export function createTestDisposable(...configuration) {
6
+ const dispose = configuration[0] === undefined
7
+ ? testDouble.returns()
8
+ : testDouble(configuration[0].dispose);
9
+ const disposable = ({ dispose, [disposeSymbol]: dispose });
10
+ installProtocolMetadata(disposable, {
11
+ disposeMethod() {
12
+ return dispose;
13
+ },
14
+ iteratorEvents() {
15
+ return [];
16
+ },
17
+ kind: 'disposable'
18
+ });
19
+ return disposable;
20
+ }
21
+ export function createTestAsyncDisposable(...configuration) {
22
+ const asyncDispose = configuration[0] === undefined
23
+ ? testDouble.resolves(undefined)
24
+ : testDouble(configuration[0].asyncDispose);
25
+ const disposable = ({ asyncDispose, [asyncDisposeSymbol]: asyncDispose });
26
+ installProtocolMetadata(disposable, {
27
+ disposeMethod() {
28
+ return asyncDispose;
29
+ },
30
+ iteratorEvents() {
31
+ return [];
32
+ },
33
+ kind: 'async-disposable'
34
+ });
35
+ return disposable;
36
+ }
37
+ //# sourceMappingURL=protocol-disposable-double.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-disposable-double.js","sourceRoot":"","sources":["../../../../source/doubles/protocol-disposable-double.ts"],"names":[],"mappings":"AAAA,mJAAmJ;AACnJ,OAAO,EACH,kBAAkB,EAClB,aAAa,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EACH,UAAU,EAGb,MAAM,kBAAkB,CAAC;AAkB1B,MAAM,UAAU,oBAAoB,CAChC,GAAG,aAA+D;IAElE,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,SAAS;QAC1C,CAAC,CAAC,UAAU,CAAC,OAAO,EAAc;QAClC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAA8B,CAAC;IAExF,uBAAuB,CAAC,UAAU,EAAE;QAChC,aAAa;YACT,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,cAAc;YACV,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,EAAE,YAAY;KACrB,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,GAAG,aAAoE;IAEvE,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,SAAS;QAC/C,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAsB,SAAS,CAAC;QACrD,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,CAAmC,CAAC;IAE5G,uBAAuB,CAAC,UAAU,EAAE;QAChC,aAAa;YACT,OAAO,YAAY,CAAC;QACxB,CAAC;QACD,cAAc;YACV,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,EAAE,kBAAkB;KAC3B,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACtB,CAAC"}
@@ -0,0 +1,30 @@
1
+ const protocolMetadataSymbol = Symbol('overkill.protocolDoubleMetadata');
2
+ function isRecord(value) {
3
+ return value !== null && (typeof value === 'object' || typeof value === 'function');
4
+ }
5
+ function isProtocolMetadata(value) {
6
+ return isRecord(value) &&
7
+ typeof Reflect.get(value, 'disposeMethod') === 'function' &&
8
+ typeof Reflect.get(value, 'iteratorEvents') === 'function' &&
9
+ typeof Reflect.get(value, 'kind') === 'string';
10
+ }
11
+ export function installProtocolMetadata(target, metadata) {
12
+ Object.defineProperty(target, protocolMetadataSymbol, {
13
+ enumerable: false,
14
+ value: metadata
15
+ });
16
+ }
17
+ function protocolMetadata(value) {
18
+ if (!isRecord(value) || !Object.hasOwn(value, protocolMetadataSymbol)) {
19
+ return null;
20
+ }
21
+ const descriptor = Object.getOwnPropertyDescriptor(value, protocolMetadataSymbol);
22
+ return isProtocolMetadata(descriptor?.value) ? descriptor.value : null;
23
+ }
24
+ export function protocolDisposeMethod(value) {
25
+ return protocolMetadata(value)?.disposeMethod() ?? null;
26
+ }
27
+ export function protocolIteratorEvents(value) {
28
+ return protocolMetadata(value)?.iteratorEvents() ?? null;
29
+ }
30
+ //# sourceMappingURL=protocol-double-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-double-metadata.js","sourceRoot":"","sources":["../../../../source/doubles/protocol-double-metadata.ts"],"names":[],"mappings":"AAaA,MAAM,sBAAsB,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAC;AAEzE,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACtC,OAAO,QAAQ,CAAC,KAAK,CAAC;QAClB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,UAAU;QACzD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,UAAU;QAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,QAAQ,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAA4B,EAAE,QAA0B;IAC5F,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,sBAAsB,EAAE;QAClD,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,QAAQ;KAClB,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAElF,OAAO,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAChD,OAAO,gBAAgB,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,IAAI,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACjD,OAAO,gBAAgB,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,IAAI,IAAI,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { type AsyncDisposableConfiguration, type DisposableConfiguration, type TestAsyncDisposable, type TestDisposable } from './protocol-disposable-double.ts';
2
+ import { type AsyncIterableConfiguration, type AsyncIteratorConfiguration, type AsyncIteratorSource, type SyncIterableConfiguration, type SyncIteratorConfiguration, type SyncIteratorSource, type TestAsyncIterable, type TestAsyncIterator, type TestIterable, type TestIterator } from './protocol-iterator-double.ts';
3
+ import { type TestDoubleConfiguration } from './test-double.ts';
4
+ import type { CallableSignature } from './double-behavior.ts';
5
+ export type ProtocolMethodConfiguration<Signature extends CallableSignature> = TestDoubleConfiguration<Signature>;
6
+ export type TestIteratorFactory = {
7
+ <YieldValue = unknown, ReturnValue = undefined, NextValue = unknown>(configuration: SyncIteratorConfiguration<YieldValue, ReturnValue>): TestIterator<YieldValue, ReturnValue, NextValue>;
8
+ (): TestIterator;
9
+ readonly yields: {
10
+ <YieldValue>(values: readonly YieldValue[]): TestIterator<YieldValue, undefined>;
11
+ <YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): TestIterator<YieldValue, ReturnValue>;
12
+ };
13
+ readonly yieldsFrom: <YieldValue, ReturnValue = unknown, NextValue = unknown>(sourceFactory: () => SyncIteratorSource<YieldValue, ReturnValue>) => TestIterator<YieldValue, ReturnValue, NextValue>;
14
+ };
15
+ export type TestAsyncIteratorFactory = {
16
+ <YieldValue = unknown, ReturnValue = undefined, NextValue = unknown>(configuration: AsyncIteratorConfiguration<YieldValue, ReturnValue>): TestAsyncIterator<YieldValue, ReturnValue, NextValue>;
17
+ (): TestAsyncIterator;
18
+ readonly yields: {
19
+ <YieldValue>(values: readonly YieldValue[]): TestAsyncIterator<YieldValue, undefined>;
20
+ <YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): TestAsyncIterator<YieldValue, ReturnValue>;
21
+ };
22
+ readonly yieldsFrom: <YieldValue, ReturnValue = unknown, NextValue = unknown>(sourceFactory: () => AsyncIteratorSource<YieldValue, ReturnValue>) => TestAsyncIterator<YieldValue, ReturnValue, NextValue>;
23
+ };
24
+ export type TestIterableFactory = {
25
+ <YieldValue = unknown, ReturnValue = undefined, NextValue = unknown>(configuration: SyncIterableConfiguration<YieldValue, ReturnValue, NextValue>): TestIterable<YieldValue, ReturnValue, NextValue>;
26
+ (): TestIterable;
27
+ readonly yields: {
28
+ <YieldValue>(values: readonly YieldValue[]): TestIterable<YieldValue, undefined>;
29
+ <YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): TestIterable<YieldValue, ReturnValue>;
30
+ };
31
+ readonly yieldsFrom: <YieldValue, ReturnValue = unknown, NextValue = unknown>(sourceFactory: () => SyncIteratorSource<YieldValue, ReturnValue>) => TestIterable<YieldValue, ReturnValue, NextValue>;
32
+ };
33
+ export type TestAsyncIterableFactory = {
34
+ <YieldValue = unknown, ReturnValue = undefined, NextValue = unknown>(configuration: AsyncIterableConfiguration<YieldValue, ReturnValue, NextValue>): TestAsyncIterable<YieldValue, ReturnValue, NextValue>;
35
+ (): TestAsyncIterable;
36
+ readonly yields: {
37
+ <YieldValue>(values: readonly YieldValue[]): TestAsyncIterable<YieldValue, undefined>;
38
+ <YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): TestAsyncIterable<YieldValue, ReturnValue>;
39
+ };
40
+ readonly yieldsFrom: <YieldValue, ReturnValue = unknown, NextValue = unknown>(sourceFactory: () => AsyncIteratorSource<YieldValue, ReturnValue>) => TestAsyncIterable<YieldValue, ReturnValue, NextValue>;
41
+ };
42
+ export type TestDisposableFactory = (...configuration: readonly [] | readonly [DisposableConfiguration]) => TestDisposable;
43
+ export type TestAsyncDisposableFactory = (...configuration: readonly [] | readonly [AsyncDisposableConfiguration]) => TestAsyncDisposable;
44
+ export declare const testIterator: TestIteratorFactory;
45
+ export declare const testAsyncIterator: TestAsyncIteratorFactory;
46
+ export declare const testIterable: TestIterableFactory;
47
+ export declare const testAsyncIterable: TestAsyncIterableFactory;
48
+ export declare const testDisposable: TestDisposableFactory;
49
+ export declare const testAsyncDisposable: TestAsyncDisposableFactory;
50
+ //# sourceMappingURL=protocol-double.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-double.d.ts","sourceRoot":"","sources":["../../../../source/doubles/protocol-double.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAeH,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEH,KAAK,uBAAuB,EAC/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,2BAA2B,CAAC,SAAS,SAAS,iBAAiB,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAElH,MAAM,MAAM,mBAAmB,GAAG;IAC9B,CAAC,UAAU,GAAG,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,GAAG,OAAO,EAC/D,aAAa,EAAE,yBAAyB,CAAC,UAAU,EAAE,WAAW,CAAC,GAClE,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,YAAY,CAAC;IACjB,QAAQ,CAAC,MAAM,EAAE;QACb,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACjF,CAAC,UAAU,EAAE,WAAW,EACpB,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,WAAW,EAAE,WAAW,GACzB,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;KAC5C,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,EACxE,aAAa,EAAE,MAAM,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,KAC/D,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,CAAC,UAAU,GAAG,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,GAAG,OAAO,EAC/D,aAAa,EAAE,0BAA0B,CAAC,UAAU,EAAE,WAAW,CAAC,GACnE,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACzD,IAAI,iBAAiB,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE;QACb,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACtF,CAAC,UAAU,EAAE,WAAW,EACpB,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,WAAW,EAAE,WAAW,GACzB,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;KACjD,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,EACxE,aAAa,EAAE,MAAM,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,KAChE,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,CAAC,UAAU,GAAG,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,GAAG,OAAO,EAC/D,aAAa,EAAE,yBAAyB,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,GAC7E,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,YAAY,CAAC;IACjB,QAAQ,CAAC,MAAM,EAAE;QACb,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACjF,CAAC,UAAU,EAAE,WAAW,EACpB,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,WAAW,EAAE,WAAW,GACzB,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;KAC5C,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,EACxE,aAAa,EAAE,MAAM,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,KAC/D,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,CAAC,UAAU,GAAG,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,GAAG,OAAO,EAC/D,aAAa,EAAE,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,GAC9E,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACzD,IAAI,iBAAiB,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE;QACb,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACtF,CAAC,UAAU,EAAE,WAAW,EACpB,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,WAAW,EAAE,WAAW,GACzB,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;KACjD,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,EACxE,aAAa,EAAE,MAAM,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,KAChE,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAChC,GAAG,aAAa,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,uBAAuB,CAAC,KACjE,cAAc,CAAC;AAEpB,MAAM,MAAM,0BAA0B,GAAG,CACrC,GAAG,aAAa,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,4BAA4B,CAAC,KACtE,mBAAmB,CAAC;AA4DzB,eAAO,MAAM,YAAY,EAAE,mBAGzB,CAAC;AAoBH,eAAO,MAAM,iBAAiB,EAAE,wBAG9B,CAAC;AAwBH,eAAO,MAAM,YAAY,EAAE,mBAGzB,CAAC;AAwBH,eAAO,MAAM,iBAAiB,EAAE,wBAG9B,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,qBAA4C,CAAC;AAC1E,eAAO,MAAM,mBAAmB,EAAE,0BAAsD,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { createTestAsyncDisposable, createTestDisposable } from "./protocol-disposable-double.js";
2
+ import { createAsyncIterableFromFactory, createAsyncIterableFromMethod, createAsyncIteratorFromMethods, createConfiguredAsyncMethods, createConfiguredSyncMethods, createDefaultAsyncMethods, createDefaultSyncMethods, createDelegatingAsyncMethods, createDelegatingSyncMethods, createSyncIterableFromFactory, createSyncIterableFromMethod, createSyncIteratorFromMethods, createYieldingAsyncMethods, createYieldingSyncMethods } from "./protocol-iterator-double.js";
3
+ import { testDouble } from "./test-double.js";
4
+ function createTestIterator(...configuration) {
5
+ return createSyncIteratorFromMethods(configuration[0] === undefined ? createDefaultSyncMethods() : createConfiguredSyncMethods(configuration[0]));
6
+ }
7
+ function createTestAsyncIterator(...configuration) {
8
+ return createAsyncIteratorFromMethods(configuration[0] === undefined ? createDefaultAsyncMethods() : createConfiguredAsyncMethods(configuration[0]));
9
+ }
10
+ function createTestIterable(...configuration) {
11
+ if (configuration[0] !== undefined) {
12
+ return createSyncIterableFromMethod(testDouble(configuration[0].iterator));
13
+ }
14
+ return createSyncIterableFromFactory(function createIterator() {
15
+ return createSyncIteratorFromMethods(createDefaultSyncMethods());
16
+ });
17
+ }
18
+ function createTestAsyncIterable(...configuration) {
19
+ if (configuration[0] !== undefined) {
20
+ return createAsyncIterableFromMethod(testDouble(configuration[0].asyncIterator));
21
+ }
22
+ return createAsyncIterableFromFactory(function createIterator() {
23
+ return createAsyncIteratorFromMethods(createDefaultAsyncMethods());
24
+ });
25
+ }
26
+ function syncIteratorYields(values, returnValue) {
27
+ return createSyncIteratorFromMethods(createYieldingSyncMethods(values, returnValue));
28
+ }
29
+ function syncIteratorYieldsFrom(sourceFactory) {
30
+ return createSyncIteratorFromMethods(createDelegatingSyncMethods(sourceFactory));
31
+ }
32
+ export const testIterator = Object.assign(createTestIterator, {
33
+ yields: syncIteratorYields,
34
+ yieldsFrom: syncIteratorYieldsFrom
35
+ });
36
+ function asyncIteratorYields(values, returnValue) {
37
+ return createAsyncIteratorFromMethods(createYieldingAsyncMethods(values, returnValue));
38
+ }
39
+ function asyncIteratorYieldsFrom(sourceFactory) {
40
+ return createAsyncIteratorFromMethods(createDelegatingAsyncMethods(sourceFactory));
41
+ }
42
+ export const testAsyncIterator = Object.assign(createTestAsyncIterator, {
43
+ yields: asyncIteratorYields,
44
+ yieldsFrom: asyncIteratorYieldsFrom
45
+ });
46
+ function syncIterableYields(values, returnValue) {
47
+ return createSyncIterableFromFactory(function createIterator() {
48
+ return createSyncIteratorFromMethods(createYieldingSyncMethods(values, returnValue));
49
+ });
50
+ }
51
+ function syncIterableYieldsFrom(sourceFactory) {
52
+ return createSyncIterableFromFactory(function createIterator() {
53
+ return createSyncIteratorFromMethods(createDelegatingSyncMethods(sourceFactory));
54
+ });
55
+ }
56
+ export const testIterable = Object.assign(createTestIterable, {
57
+ yields: syncIterableYields,
58
+ yieldsFrom: syncIterableYieldsFrom
59
+ });
60
+ function asyncIterableYields(values, returnValue) {
61
+ return createAsyncIterableFromFactory(function createIterator() {
62
+ return createAsyncIteratorFromMethods(createYieldingAsyncMethods(values, returnValue));
63
+ });
64
+ }
65
+ function asyncIterableYieldsFrom(sourceFactory) {
66
+ return createAsyncIterableFromFactory(function createIterator() {
67
+ return createAsyncIteratorFromMethods(createDelegatingAsyncMethods(sourceFactory));
68
+ });
69
+ }
70
+ export const testAsyncIterable = Object.assign(createTestAsyncIterable, {
71
+ yields: asyncIterableYields,
72
+ yieldsFrom: asyncIterableYieldsFrom
73
+ });
74
+ export const testDisposable = createTestDisposable;
75
+ export const testAsyncDisposable = createTestAsyncDisposable;
76
+ //# sourceMappingURL=protocol-double.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-double.js","sourceRoot":"","sources":["../../../../source/doubles/protocol-double.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import type { UnknownFunction } from './double-behavior.ts';
2
+ import { type TestDouble, type TestDoubleConfiguration } from './test-double.ts';
3
+ type SyncNext<YieldValue, ReturnValue> = UnknownFunction<IteratorResult<YieldValue, ReturnValue>>;
4
+ type SyncReturn<YieldValue, ReturnValue> = UnknownFunction<IteratorResult<YieldValue, ReturnValue>>;
5
+ type SyncThrow<YieldValue, ReturnValue> = UnknownFunction<IteratorResult<YieldValue, ReturnValue>>;
6
+ type AsyncNext<YieldValue, ReturnValue> = UnknownFunction<Promise<IteratorResult<YieldValue, ReturnValue>>>;
7
+ type AsyncReturn<YieldValue, ReturnValue> = UnknownFunction<Promise<IteratorResult<YieldValue, ReturnValue>>>;
8
+ type AsyncThrow<YieldValue, ReturnValue> = UnknownFunction<Promise<IteratorResult<YieldValue, ReturnValue>>>;
9
+ export type TestIterator<YieldValue = unknown, ReturnValue = unknown, NextValue = unknown> = IteratorObject<YieldValue, ReturnValue, NextValue> & {
10
+ readonly next: TestDouble<SyncNext<YieldValue, ReturnValue>>;
11
+ readonly return: TestDouble<SyncReturn<YieldValue, ReturnValue>>;
12
+ readonly throw: TestDouble<SyncThrow<YieldValue, ReturnValue>>;
13
+ };
14
+ export type TestAsyncIterator<YieldValue = unknown, ReturnValue = unknown, NextValue = unknown> = AsyncIterable<YieldValue> & AsyncIterator<YieldValue, ReturnValue, NextValue> & {
15
+ readonly next: TestDouble<AsyncNext<YieldValue, ReturnValue>>;
16
+ readonly return: TestDouble<AsyncReturn<YieldValue, ReturnValue>>;
17
+ readonly throw: TestDouble<AsyncThrow<YieldValue, ReturnValue>>;
18
+ };
19
+ export type TestIterable<YieldValue = unknown, ReturnValue = unknown, NextValue = unknown> = Iterable<YieldValue> & {
20
+ readonly [Symbol.iterator]: TestDouble<() => TestIterator<YieldValue, ReturnValue, NextValue>>;
21
+ };
22
+ export type TestAsyncIterable<YieldValue = unknown, ReturnValue = unknown, NextValue = unknown> = AsyncIterable<YieldValue> & {
23
+ readonly [Symbol.asyncIterator]: TestDouble<() => TestAsyncIterator<YieldValue, ReturnValue, NextValue>>;
24
+ };
25
+ export type SyncIteratorConfiguration<YieldValue, ReturnValue> = {
26
+ readonly next: TestDoubleConfiguration<SyncNext<YieldValue, ReturnValue>>;
27
+ readonly return: TestDoubleConfiguration<SyncReturn<YieldValue, ReturnValue>>;
28
+ readonly throw: TestDoubleConfiguration<SyncThrow<YieldValue, ReturnValue>>;
29
+ };
30
+ export type AsyncIteratorConfiguration<YieldValue, ReturnValue> = {
31
+ readonly next: TestDoubleConfiguration<AsyncNext<YieldValue, ReturnValue>>;
32
+ readonly return: TestDoubleConfiguration<AsyncReturn<YieldValue, ReturnValue>>;
33
+ readonly throw: TestDoubleConfiguration<AsyncThrow<YieldValue, ReturnValue>>;
34
+ };
35
+ export type SyncIterableConfiguration<YieldValue, ReturnValue, NextValue> = {
36
+ readonly iterator: TestDoubleConfiguration<() => TestIterator<YieldValue, ReturnValue, NextValue>>;
37
+ };
38
+ export type AsyncIterableConfiguration<YieldValue, ReturnValue, NextValue> = {
39
+ readonly asyncIterator: TestDoubleConfiguration<() => TestAsyncIterator<YieldValue, ReturnValue, NextValue>>;
40
+ };
41
+ export type AsyncIteratorMethods<YieldValue, ReturnValue> = {
42
+ readonly next: TestDouble<AsyncNext<YieldValue, ReturnValue>>;
43
+ readonly return: TestDouble<AsyncReturn<YieldValue, ReturnValue>>;
44
+ readonly throw: TestDouble<AsyncThrow<YieldValue, ReturnValue>>;
45
+ };
46
+ type SyncIteratorSourceVariants<YieldValue, ReturnValue> = {
47
+ readonly iterable: Iterable<YieldValue>;
48
+ readonly iterator: Iterator<YieldValue, ReturnValue, unknown>;
49
+ };
50
+ type AsyncIteratorSourceVariants<YieldValue, ReturnValue> = {
51
+ readonly asyncIterable: AsyncIterable<YieldValue>;
52
+ readonly asyncIterator: AsyncIterator<YieldValue, ReturnValue, unknown>;
53
+ readonly iterable: Iterable<YieldValue>;
54
+ readonly iterator: Iterator<YieldValue, ReturnValue, unknown>;
55
+ };
56
+ export type SyncIteratorSource<YieldValue, ReturnValue> = SyncIteratorSourceVariants<YieldValue, ReturnValue>[keyof SyncIteratorSourceVariants<YieldValue, ReturnValue>];
57
+ export type AsyncIteratorSource<YieldValue, ReturnValue> = AsyncIteratorSourceVariants<YieldValue, ReturnValue>[keyof AsyncIteratorSourceVariants<YieldValue, ReturnValue>];
58
+ export declare function createDefaultSyncMethods<YieldValue, ReturnValue>(): {
59
+ readonly next: TestDouble<SyncNext<YieldValue, ReturnValue>>;
60
+ readonly return: TestDouble<SyncReturn<YieldValue, ReturnValue>>;
61
+ readonly throw: TestDouble<SyncThrow<YieldValue, ReturnValue>>;
62
+ };
63
+ export declare function createDefaultAsyncMethods<YieldValue, ReturnValue>(): AsyncIteratorMethods<YieldValue, ReturnValue>;
64
+ export declare function createConfiguredSyncMethods<YieldValue, ReturnValue>(configuration: SyncIteratorConfiguration<YieldValue, ReturnValue>): {
65
+ next: TestDouble<SyncNext<YieldValue, ReturnValue>>;
66
+ return: TestDouble<SyncReturn<YieldValue, ReturnValue>>;
67
+ throw: TestDouble<SyncThrow<YieldValue, ReturnValue>>;
68
+ };
69
+ export declare function createConfiguredAsyncMethods<YieldValue, ReturnValue>(configuration: AsyncIteratorConfiguration<YieldValue, ReturnValue>): AsyncIteratorMethods<YieldValue, ReturnValue>;
70
+ export declare function createYieldingSyncMethods<YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): {
71
+ next: TestDouble<SyncNext<YieldValue, ReturnValue>>;
72
+ return: TestDouble<SyncReturn<YieldValue, ReturnValue>>;
73
+ throw: TestDouble<SyncThrow<YieldValue, ReturnValue>>;
74
+ };
75
+ export declare function createYieldingAsyncMethods<YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): AsyncIteratorMethods<YieldValue, ReturnValue>;
76
+ export declare function createDelegatingSyncMethods<YieldValue, ReturnValue>(sourceFactory: () => SyncIteratorSource<YieldValue, ReturnValue>): {
77
+ next: TestDouble<SyncNext<YieldValue, ReturnValue>>;
78
+ return: TestDouble<SyncReturn<YieldValue, ReturnValue>>;
79
+ throw: TestDouble<SyncThrow<YieldValue, ReturnValue>>;
80
+ };
81
+ export declare function createDelegatingAsyncMethods<YieldValue, ReturnValue>(sourceFactory: () => AsyncIteratorSource<YieldValue, ReturnValue>): AsyncIteratorMethods<YieldValue, ReturnValue>;
82
+ export declare function createSyncIteratorFromMethods<YieldValue, ReturnValue, NextValue>(methods: {
83
+ readonly next: TestDouble<SyncNext<YieldValue, ReturnValue>>;
84
+ readonly return: TestDouble<SyncReturn<YieldValue, ReturnValue>>;
85
+ readonly throw: TestDouble<SyncThrow<YieldValue, ReturnValue>>;
86
+ }): TestIterator<YieldValue, ReturnValue, NextValue>;
87
+ export declare function createAsyncIteratorFromMethods<YieldValue, ReturnValue, NextValue>(methods: AsyncIteratorMethods<YieldValue, ReturnValue>): TestAsyncIterator<YieldValue, ReturnValue, NextValue>;
88
+ export declare function createSyncIterableFromFactory<YieldValue, ReturnValue, NextValue>(createIterator: () => TestIterator<YieldValue, ReturnValue, NextValue>): TestIterable<YieldValue, ReturnValue, NextValue>;
89
+ export declare function createSyncIterableFromMethod<YieldValue, ReturnValue, NextValue>(iterator: TestDouble<() => TestIterator<YieldValue, ReturnValue, NextValue>>): TestIterable<YieldValue, ReturnValue, NextValue>;
90
+ export declare function createAsyncIterableFromFactory<YieldValue, ReturnValue, NextValue>(createIterator: () => TestAsyncIterator<YieldValue, ReturnValue, NextValue>): TestAsyncIterable<YieldValue, ReturnValue, NextValue>;
91
+ export declare function createAsyncIterableFromMethod<YieldValue, ReturnValue, NextValue>(asyncIterator: TestDouble<() => TestAsyncIterator<YieldValue, ReturnValue, NextValue>>): TestAsyncIterable<YieldValue, ReturnValue, NextValue>;
92
+ export {};
93
+ //# sourceMappingURL=protocol-iterator-double.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-iterator-double.d.ts","sourceRoot":"","sources":["../../../../source/doubles/protocol-iterator-double.ts"],"names":[],"mappings":"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"}