@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.
- package/LICENSE +21 -0
- package/assert/assertion-extension.d.ts +65 -0
- package/assert/assertion-extension.d.ts.map +1 -0
- package/assert/assertion-extension.js +250 -0
- package/assert/assertion-extension.js.map +1 -0
- package/doubles/disposal-symbol.js +10 -0
- package/doubles/disposal-symbol.js.map +1 -0
- package/doubles/double-behavior.d.ts +106 -0
- package/doubles/double-behavior.d.ts.map +1 -0
- package/doubles/double-behavior.js +257 -0
- package/doubles/double-behavior.js.map +1 -0
- package/doubles/double-chronology.js +78 -0
- package/doubles/double-chronology.js.map +1 -0
- package/doubles/double-history-api.js +125 -0
- package/doubles/double-history-api.js.map +1 -0
- package/doubles/double-history-record.d.ts +82 -0
- package/doubles/double-history-record.d.ts.map +1 -0
- package/doubles/double-history-record.js +65 -0
- package/doubles/double-history-record.js.map +1 -0
- package/doubles/double-history-store.d.ts +21 -0
- package/doubles/double-history-store.d.ts.map +1 -0
- package/doubles/double-history-store.js +118 -0
- package/doubles/double-history-store.js.map +1 -0
- package/doubles/double-history.d.ts +141 -0
- package/doubles/double-history.d.ts.map +1 -0
- package/doubles/double-history.js +32 -0
- package/doubles/double-history.js.map +1 -0
- package/doubles/double-iterator-event-types.d.ts +25 -0
- package/doubles/double-iterator-event-types.d.ts.map +1 -0
- package/doubles/double-iterator-tracking.d.ts +12 -0
- package/doubles/double-iterator-tracking.d.ts.map +1 -0
- package/doubles/double-iterator-tracking.js +161 -0
- package/doubles/double-iterator-tracking.js.map +1 -0
- package/doubles/double-rule-arguments.d.ts +18 -0
- package/doubles/double-rule-arguments.d.ts.map +1 -0
- package/doubles/double-rule-callback.d.ts +40 -0
- package/doubles/double-rule-callback.d.ts.map +1 -0
- package/doubles/double-rule-callback.js +84 -0
- package/doubles/double-rule-callback.js.map +1 -0
- package/doubles/double-rule-generator.d.ts +108 -0
- package/doubles/double-rule-generator.d.ts.map +1 -0
- package/doubles/double-rule-generator.js +37 -0
- package/doubles/double-rule-generator.js.map +1 -0
- package/doubles/double-rule-types.d.ts +162 -0
- package/doubles/double-rule-types.d.ts.map +1 -0
- package/doubles/double-rule.d.ts +3 -0
- package/doubles/double-rule.d.ts.map +1 -0
- package/doubles/double-rule.js +113 -0
- package/doubles/double-rule.js.map +1 -0
- package/doubles/double-runtime.js +173 -0
- package/doubles/double-runtime.js.map +1 -0
- package/doubles/double-signature.d.ts +5 -0
- package/doubles/double-signature.d.ts.map +1 -0
- package/doubles/double-usage-argument-assertion.js +202 -0
- package/doubles/double-usage-argument-assertion.js.map +1 -0
- package/doubles/double-usage-contract.d.ts +29 -0
- package/doubles/double-usage-contract.d.ts.map +1 -0
- package/doubles/double-usage-contract.js +11 -0
- package/doubles/double-usage-contract.js.map +1 -0
- package/doubles/double-usage-count-assertion.js +73 -0
- package/doubles/double-usage-count-assertion.js.map +1 -0
- package/doubles/double-usage-disposal-assertion.js +175 -0
- package/doubles/double-usage-disposal-assertion.js.map +1 -0
- package/doubles/double-usage-inspection.js +59 -0
- package/doubles/double-usage-inspection.js.map +1 -0
- package/doubles/double-usage-iterator-assertion.js +124 -0
- package/doubles/double-usage-iterator-assertion.js.map +1 -0
- package/doubles/double-usage-order-assertion.js +91 -0
- package/doubles/double-usage-order-assertion.js.map +1 -0
- package/doubles/double-usage.d.ts +81 -0
- package/doubles/double-usage.d.ts.map +1 -0
- package/doubles/double-usage.js +228 -0
- package/doubles/double-usage.js.map +1 -0
- package/doubles/protocol-disposable-double.d.ts +16 -0
- package/doubles/protocol-disposable-double.d.ts.map +1 -0
- package/doubles/protocol-disposable-double.js +37 -0
- package/doubles/protocol-disposable-double.js.map +1 -0
- package/doubles/protocol-double-metadata.js +30 -0
- package/doubles/protocol-double-metadata.js.map +1 -0
- package/doubles/protocol-double.d.ts +50 -0
- package/doubles/protocol-double.d.ts.map +1 -0
- package/doubles/protocol-double.js +76 -0
- package/doubles/protocol-double.js.map +1 -0
- package/doubles/protocol-iterator-double.d.ts +93 -0
- package/doubles/protocol-iterator-double.d.ts.map +1 -0
- package/doubles/protocol-iterator-double.js +512 -0
- package/doubles/protocol-iterator-double.js.map +1 -0
- package/doubles/test-double.d.ts +62 -0
- package/doubles/test-double.d.ts.map +1 -0
- package/doubles/test-double.js +192 -0
- package/doubles/test-double.js.map +1 -0
- package/package.json +38 -6
- package/packages/doubles/doubles.entry-point.d.ts +13 -0
- package/packages/doubles/doubles.entry-point.d.ts.map +1 -0
- package/packages/doubles/doubles.entry-point.js +5 -0
- package/packages/doubles/doubles.entry-point.js.map +1 -0
- package/readme.md +423 -5
- package/sbom.cdx.json +50 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type BehaviorMode, type CallbackBehaviorKind, type RuntimeBehavior, type RuntimeFixedBehavior, type RuntimeRule } from './double-behavior.ts';
|
|
2
|
+
import type { CallArguments, CallReturn } from './double-signature.ts';
|
|
3
|
+
export type CallbackRuntimeBehavior<Index extends number = number, CallbackArguments extends readonly unknown[] = readonly unknown[], Result = unknown, Receiver = unknown, Kind extends CallbackBehaviorKind = CallbackBehaviorKind> = RuntimeFixedBehavior<'call', Result, Kind> & {
|
|
4
|
+
readonly callbackArguments: CallbackArguments;
|
|
5
|
+
readonly callbackIndex: Index;
|
|
6
|
+
readonly callbackReceiver: Receiver;
|
|
7
|
+
};
|
|
8
|
+
type CallRule<ArgumentPattern extends readonly unknown[], Result, MatchKind extends 'arguments' | 'index', Behavior extends RuntimeBehavior<BehaviorMode, Result> = RuntimeBehavior<BehaviorMode, Result>> = RuntimeRule<'call', ArgumentPattern, Result, MatchKind, Behavior>;
|
|
9
|
+
type CallbackParameter = (...arguments_: readonly never[]) => unknown;
|
|
10
|
+
type TupleKey<Values extends readonly unknown[]> = Exclude<keyof Values, keyof unknown[]>;
|
|
11
|
+
type NumericKey<Key> = Key extends `${infer Index extends number}` ? Index : never;
|
|
12
|
+
type KeyForIndex<Values extends readonly unknown[], Index extends number> = {
|
|
13
|
+
readonly [Key in TupleKey<Values>]: NumericKey<Key> extends Index ? Key : never;
|
|
14
|
+
}[TupleKey<Values>];
|
|
15
|
+
type CallbackIndex<Arguments extends readonly unknown[]> = {
|
|
16
|
+
readonly [Key in TupleKey<Arguments>]: Extract<NonNullable<Arguments[Key]>, CallbackParameter> extends never ? never : NumericKey<Key>;
|
|
17
|
+
}[TupleKey<Arguments>];
|
|
18
|
+
type CallbackAt<Arguments extends readonly unknown[], Index extends number> = Extract<NonNullable<Arguments[KeyForIndex<Arguments, Index>]>, CallbackParameter>;
|
|
19
|
+
type CallbackReceiver<Callback> = unknown extends ThisParameterType<Callback> ? unknown : ThisParameterType<Callback>;
|
|
20
|
+
type CallbackBehaviorForIndex<Arguments extends readonly unknown[], Result, Index extends CallbackIndex<Arguments>> = CallbackRuntimeBehavior<Index, readonly [...Parameters<CallbackAt<Arguments, Index>>], Result, CallbackReceiver<CallbackAt<Arguments, Index>>>;
|
|
21
|
+
type TypedCallbackBehaviorFor<Arguments extends readonly unknown[], Result> = {
|
|
22
|
+
readonly [Index in CallbackIndex<Arguments>]: CallbackBehaviorForIndex<Arguments, Result, Index>;
|
|
23
|
+
}[CallbackIndex<Arguments>];
|
|
24
|
+
export type CallbackBehaviorFor<Signature> = number extends CallArguments<Signature>['length'] ? CallbackRuntimeBehavior<number, readonly unknown[], CallReturn<Signature>> : TypedCallbackBehaviorFor<CallArguments<Signature>, CallReturn<Signature>>;
|
|
25
|
+
export type CallbackBehaviorFactory = {
|
|
26
|
+
<const Index extends number, const CallbackArguments extends readonly unknown[], Result>(index: Index, callbackArguments: CallbackArguments, returnValue: Result): CallbackRuntimeBehavior<Index, CallbackArguments, Result, undefined>;
|
|
27
|
+
<const Index extends number, const CallbackArguments extends readonly unknown[], Result, Receiver>(index: Index, callbackArguments: CallbackArguments, returnValue: Result, receiver: Receiver): CallbackRuntimeBehavior<Index, CallbackArguments, Result, Receiver>;
|
|
28
|
+
};
|
|
29
|
+
export type CallbackRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index', Kind extends CallbackBehaviorKind = 'calls-callback'> = {
|
|
30
|
+
<const Index extends number, const CallbackArguments extends readonly unknown[], Result>(index: Index, callbackArguments: CallbackArguments, returnValue: Result): CallRule<ArgumentPattern, Result, MatchKind, CallbackRuntimeBehavior<Index, CallbackArguments, Result, undefined, Kind>>;
|
|
31
|
+
<const Index extends number, const CallbackArguments extends readonly unknown[], Result, Receiver>(index: Index, callbackArguments: CallbackArguments, returnValue: Result, receiver: Receiver): CallRule<ArgumentPattern, Result, MatchKind, CallbackRuntimeBehavior<Index, CallbackArguments, Result, Receiver, Kind>>;
|
|
32
|
+
};
|
|
33
|
+
export declare function callsCallbackBehavior<Index extends number, CallbackArguments extends readonly unknown[], Result>(index: Index, callbackArguments: CallbackArguments, returnValue: Result): CallbackRuntimeBehavior<Index, CallbackArguments, Result, undefined, 'calls-callback'>;
|
|
34
|
+
export declare function callsCallbackBehavior<Index extends number, CallbackArguments extends readonly unknown[], Result, Receiver>(index: Index, callbackArguments: CallbackArguments, returnValue: Result, receiver: Receiver): CallbackRuntimeBehavior<Index, CallbackArguments, Result, Receiver, 'calls-callback'>;
|
|
35
|
+
export declare function callsCallbackAsyncBehavior<Index extends number, CallbackArguments extends readonly unknown[], Result>(index: Index, callbackArguments: CallbackArguments, returnValue: Result): CallbackRuntimeBehavior<Index, CallbackArguments, Result, undefined, 'calls-callback-async'>;
|
|
36
|
+
export declare function callsCallbackAsyncBehavior<Index extends number, CallbackArguments extends readonly unknown[], Result, Receiver>(index: Index, callbackArguments: CallbackArguments, returnValue: Result, receiver: Receiver): CallbackRuntimeBehavior<Index, CallbackArguments, Result, Receiver, 'calls-callback-async'>;
|
|
37
|
+
export declare function createCallbackRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'>(criterion: CallRule<ArgumentPattern, unknown, MatchKind>['criterion']): CallbackRuleTerminator<ArgumentPattern, MatchKind>;
|
|
38
|
+
export declare function createAsyncCallbackRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'>(criterion: CallRule<ArgumentPattern, unknown, MatchKind>['criterion']): CallbackRuleTerminator<ArgumentPattern, MatchKind, 'calls-callback-async'>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=double-rule-callback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"double-rule-callback.d.ts","sourceRoot":"","sources":["../../../../source/doubles/double-rule-callback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { isUnknownFunction } from "./double-behavior.js";
|
|
2
|
+
function ensureCallInvocation(invocation) {
|
|
3
|
+
if (invocation.kind !== 'call') {
|
|
4
|
+
throw new TypeError('callback behavior can only answer calls.');
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
function validCallbackIndex(index) {
|
|
8
|
+
if (!Number.isSafeInteger(index) || index < 0) {
|
|
9
|
+
throw new TypeError('callback behavior requires a non-negative integer argument index.');
|
|
10
|
+
}
|
|
11
|
+
return index;
|
|
12
|
+
}
|
|
13
|
+
function callbackArgumentFrom(invocation, index, source) {
|
|
14
|
+
ensureCallInvocation(invocation);
|
|
15
|
+
const callback = invocation.arguments[index];
|
|
16
|
+
if (!isUnknownFunction(callback)) {
|
|
17
|
+
throw new TypeError(`${source} requires argument ${index} to be a function.`);
|
|
18
|
+
}
|
|
19
|
+
return callback;
|
|
20
|
+
}
|
|
21
|
+
export function callsCallbackBehavior(index, callbackArguments, returnValue, ...receiver) {
|
|
22
|
+
const callbackIndex = validCallbackIndex(index);
|
|
23
|
+
const callbackArgumentSnapshot = Array.from(callbackArguments);
|
|
24
|
+
const callbackReceiver = receiver[0];
|
|
25
|
+
return {
|
|
26
|
+
behaviorKind: 'calls-callback',
|
|
27
|
+
callbackArguments,
|
|
28
|
+
callbackIndex: index,
|
|
29
|
+
callbackReceiver,
|
|
30
|
+
mode: 'call',
|
|
31
|
+
result() {
|
|
32
|
+
return returnValue;
|
|
33
|
+
},
|
|
34
|
+
produce(invocation) {
|
|
35
|
+
const callback = callbackArgumentFrom(invocation, callbackIndex, 'callsCallback()');
|
|
36
|
+
Reflect.apply(callback, callbackReceiver, callbackArgumentSnapshot);
|
|
37
|
+
return returnValue;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function callsCallbackAsyncBehavior(index, callbackArguments, returnValue, ...receiver) {
|
|
42
|
+
const callbackIndex = validCallbackIndex(index);
|
|
43
|
+
const callbackArgumentSnapshot = Array.from(callbackArguments);
|
|
44
|
+
const callbackReceiver = receiver[0];
|
|
45
|
+
return {
|
|
46
|
+
behaviorKind: 'calls-callback-async',
|
|
47
|
+
callbackArguments,
|
|
48
|
+
callbackIndex: index,
|
|
49
|
+
callbackReceiver,
|
|
50
|
+
mode: 'call',
|
|
51
|
+
result() {
|
|
52
|
+
return returnValue;
|
|
53
|
+
},
|
|
54
|
+
produce(invocation) {
|
|
55
|
+
const callback = callbackArgumentFrom(invocation, callbackIndex, 'callsCallbackAsync()');
|
|
56
|
+
queueMicrotask(function callCallback() {
|
|
57
|
+
Reflect.apply(callback, callbackReceiver, callbackArgumentSnapshot);
|
|
58
|
+
});
|
|
59
|
+
return returnValue;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function callRule(criterion, behavior) {
|
|
64
|
+
return { behavior, criterion };
|
|
65
|
+
}
|
|
66
|
+
export function createCallbackRuleTerminator(criterion) {
|
|
67
|
+
function callsCallback(index, callbackArguments, returnValue, ...receiver) {
|
|
68
|
+
const behavior = receiver.length === 0
|
|
69
|
+
? callsCallbackBehavior(index, callbackArguments, returnValue)
|
|
70
|
+
: callsCallbackBehavior(index, callbackArguments, returnValue, receiver[0]);
|
|
71
|
+
return callRule(criterion, behavior);
|
|
72
|
+
}
|
|
73
|
+
return callsCallback;
|
|
74
|
+
}
|
|
75
|
+
export function createAsyncCallbackRuleTerminator(criterion) {
|
|
76
|
+
function callsCallbackAsync(index, callbackArguments, returnValue, ...receiver) {
|
|
77
|
+
const behavior = receiver.length === 0
|
|
78
|
+
? callsCallbackAsyncBehavior(index, callbackArguments, returnValue)
|
|
79
|
+
: callsCallbackAsyncBehavior(index, callbackArguments, returnValue, receiver[0]);
|
|
80
|
+
return callRule(criterion, behavior);
|
|
81
|
+
}
|
|
82
|
+
return callsCallbackAsync;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=double-rule-callback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"double-rule-callback.js","sourceRoot":"","sources":["../../../../source/doubles/double-rule-callback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { type BehaviorMode, type CallableSignature, type RuntimeFixedBehavior, type RuntimeBehavior, type RuntimeRule } from './double-behavior.ts';
|
|
2
|
+
type VoidReturn = ReturnType<() => void>;
|
|
3
|
+
type CallArguments<Signature> = Signature extends (...arguments_: infer Arguments) => unknown ? Arguments : never;
|
|
4
|
+
type GeneratorBehaviorKind = 'yields' | 'yields-async' | 'yields-async-from' | 'yields-from';
|
|
5
|
+
type CallBehavior<Result = unknown> = RuntimeFixedBehavior<'call', Result, GeneratorBehaviorKind>;
|
|
6
|
+
type CallRule<ArgumentPattern extends readonly unknown[], Result, MatchKind extends 'arguments' | 'index', Behavior extends RuntimeBehavior<BehaviorMode, Result> = RuntimeBehavior<BehaviorMode, Result>> = RuntimeRule<'call', ArgumentPattern, Result, MatchKind, Behavior>;
|
|
7
|
+
type CallCriterion<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'> = CallRule<ArgumentPattern, unknown, MatchKind>['criterion'];
|
|
8
|
+
type SyncGeneratorValue = Generator<unknown, unknown, unknown> | IterableIterator<unknown>;
|
|
9
|
+
type AsyncGeneratorValue = AsyncGenerator<unknown, unknown, unknown> | AsyncIterableIterator<unknown>;
|
|
10
|
+
type SyncYieldingIterator<YieldValue> = Generator<YieldValue, unknown, unknown> | IterableIterator<YieldValue>;
|
|
11
|
+
type AsyncYieldingIteratorKind = keyof {
|
|
12
|
+
readonly asyncGenerator: unknown;
|
|
13
|
+
readonly asyncIterator: unknown;
|
|
14
|
+
};
|
|
15
|
+
type AsyncYieldingIterator<YieldValue> = {
|
|
16
|
+
readonly asyncGenerator: AsyncGenerator<YieldValue, unknown, unknown>;
|
|
17
|
+
readonly asyncIterator: AsyncIterableIterator<YieldValue>;
|
|
18
|
+
}[AsyncYieldingIteratorKind];
|
|
19
|
+
type SyncReturningGenerator<ReturnValue> = Generator<unknown, ReturnValue, unknown>;
|
|
20
|
+
type AsyncReturningGenerator<ReturnValue> = AsyncGenerator<unknown, ReturnValue, unknown>;
|
|
21
|
+
type AsyncGeneratorSourceKind = keyof {
|
|
22
|
+
readonly async: unknown;
|
|
23
|
+
readonly sync: unknown;
|
|
24
|
+
};
|
|
25
|
+
type AsyncGeneratorSource<YieldValue> = {
|
|
26
|
+
readonly async: AsyncIterable<YieldValue>;
|
|
27
|
+
readonly sync: Iterable<YieldValue>;
|
|
28
|
+
}[AsyncGeneratorSourceKind];
|
|
29
|
+
type SyncGeneratorSupport<Signature extends CallableSignature> = ReturnType<Signature> extends SyncGeneratorValue ? 'supported' : 'unsupported';
|
|
30
|
+
type AsyncGeneratorSupport<Signature extends CallableSignature> = ReturnType<Signature> extends AsyncGeneratorValue ? 'supported' : 'unsupported';
|
|
31
|
+
type GeneratorSignatureBySupport<Signature> = {
|
|
32
|
+
readonly supported: Signature;
|
|
33
|
+
readonly unsupported: never;
|
|
34
|
+
};
|
|
35
|
+
export type SyncGeneratorSignature<Signature extends CallableSignature> = GeneratorSignatureBySupport<Signature>[SyncGeneratorSupport<Signature>];
|
|
36
|
+
export type AsyncGeneratorSignature<Signature extends CallableSignature> = GeneratorSignatureBySupport<Signature>[AsyncGeneratorSupport<Signature>];
|
|
37
|
+
export type SyncYieldValue<Value> = Value extends SyncYieldingIterator<infer YieldValue> ? YieldValue : never;
|
|
38
|
+
export type AsyncYieldValue<Value> = Value extends AsyncYieldingIterator<infer YieldValue> ? YieldValue : never;
|
|
39
|
+
type SyncGeneratorReturnValue<Value> = Value extends SyncReturningGenerator<infer ReturnValue> ? ReturnValue : never;
|
|
40
|
+
type SyncIteratorReturnValue<Value> = Value extends IterableIterator<unknown> ? unknown : never;
|
|
41
|
+
type AsyncGeneratorReturnValue<Value> = Value extends AsyncReturningGenerator<infer ReturnValue> ? ReturnValue : never;
|
|
42
|
+
type AsyncIteratorReturnValue<Value> = Value extends AsyncIterableIterator<unknown> ? unknown : never;
|
|
43
|
+
type SyncReturnSupport<Value> = [SyncGeneratorReturnValue<Value>] extends [never] ? 'iterator' : 'generator';
|
|
44
|
+
type AsyncReturnSupport<Value> = [AsyncGeneratorReturnValue<Value>] extends [never] ? 'iterator' : 'generator';
|
|
45
|
+
type SyncReturnBySupport<Value> = {
|
|
46
|
+
readonly generator: SyncGeneratorReturnValue<Value>;
|
|
47
|
+
readonly iterator: SyncIteratorReturnValue<Value>;
|
|
48
|
+
};
|
|
49
|
+
type AsyncReturnBySupport<Value> = {
|
|
50
|
+
readonly generator: AsyncGeneratorReturnValue<Value>;
|
|
51
|
+
readonly iterator: AsyncIteratorReturnValue<Value>;
|
|
52
|
+
};
|
|
53
|
+
type SyncReturnValue<Value> = SyncReturnBySupport<Value>[SyncReturnSupport<Value>];
|
|
54
|
+
type AsyncReturnValue<Value> = AsyncReturnBySupport<Value>[AsyncReturnSupport<Value>];
|
|
55
|
+
export type SyncReturnArguments<Value> = SyncReturnValue<Value> extends VoidReturn ? readonly [] | readonly [SyncReturnValue<Value>] : readonly [SyncReturnValue<Value>];
|
|
56
|
+
export type AsyncReturnArguments<Value> = AsyncReturnValue<Value> extends VoidReturn ? readonly [] | readonly [AsyncReturnValue<Value>] : readonly [AsyncReturnValue<Value>];
|
|
57
|
+
export type SyncSourceFactory<Signature extends CallableSignature> = (...arguments_: CallArguments<Signature>) => ReturnType<SyncGeneratorSignature<Signature>>;
|
|
58
|
+
export type AsyncSourceFactory<Signature extends CallableSignature> = (...arguments_: CallArguments<Signature>) => AsyncGeneratorSource<AsyncYieldValue<ReturnType<AsyncGeneratorSignature<Signature>>>>;
|
|
59
|
+
export type YieldingBehaviorFactory = {
|
|
60
|
+
<YieldValue>(values: readonly YieldValue[]): CallBehavior<Generator<YieldValue, undefined, unknown>>;
|
|
61
|
+
<YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): CallBehavior<Generator<YieldValue, ReturnValue, unknown>>;
|
|
62
|
+
<Signature extends CallableSignature>(values: readonly SyncYieldValue<ReturnType<SyncGeneratorSignature<Signature>>>[], ...returnValue: SyncReturnArguments<ReturnType<SyncGeneratorSignature<Signature>>>): CallBehavior<ReturnType<SyncGeneratorSignature<Signature>>>;
|
|
63
|
+
};
|
|
64
|
+
export type YieldingFromBehaviorFactory = {
|
|
65
|
+
<SourceFactory extends (...arguments_: readonly unknown[]) => Iterable<unknown>>(sourceFactory: SourceFactory): CallBehavior<ReturnType<SourceFactory>>;
|
|
66
|
+
<Signature extends CallableSignature>(sourceFactory: SyncSourceFactory<Signature>): CallBehavior<ReturnType<SyncGeneratorSignature<Signature>>>;
|
|
67
|
+
};
|
|
68
|
+
export type AsyncYieldingBehaviorFactory = {
|
|
69
|
+
<YieldValue>(values: readonly YieldValue[]): CallBehavior<AsyncGenerator<YieldValue, undefined, unknown>>;
|
|
70
|
+
<YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): CallBehavior<AsyncGenerator<YieldValue, ReturnValue, unknown>>;
|
|
71
|
+
<Signature extends CallableSignature>(values: readonly AsyncYieldValue<ReturnType<AsyncGeneratorSignature<Signature>>>[], ...returnValue: AsyncReturnArguments<ReturnType<AsyncGeneratorSignature<Signature>>>): CallBehavior<ReturnType<AsyncGeneratorSignature<Signature>>>;
|
|
72
|
+
};
|
|
73
|
+
export type AsyncYieldingFromBehaviorFactory = {
|
|
74
|
+
<SourceFactory extends (...arguments_: readonly unknown[]) => AsyncIterable<unknown> | Iterable<unknown>>(sourceFactory: SourceFactory): CallBehavior<ReturnType<SourceFactory>>;
|
|
75
|
+
<Signature extends CallableSignature>(sourceFactory: AsyncSourceFactory<Signature>): CallBehavior<ReturnType<AsyncGeneratorSignature<Signature>>>;
|
|
76
|
+
};
|
|
77
|
+
export type YieldingRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'> = {
|
|
78
|
+
<YieldValue>(values: readonly YieldValue[]): CallRule<ArgumentPattern, Generator<YieldValue, undefined, unknown>, MatchKind, CallBehavior<Generator<YieldValue, undefined, unknown>>>;
|
|
79
|
+
<YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): CallRule<ArgumentPattern, Generator<YieldValue, ReturnValue, unknown>, MatchKind, CallBehavior<Generator<YieldValue, ReturnValue, unknown>>>;
|
|
80
|
+
<Signature extends CallableSignature>(values: readonly SyncYieldValue<ReturnType<SyncGeneratorSignature<Signature>>>[], ...returnValue: SyncReturnArguments<ReturnType<SyncGeneratorSignature<Signature>>>): CallRule<ArgumentPattern, ReturnType<SyncGeneratorSignature<Signature>>, MatchKind, CallBehavior<ReturnType<SyncGeneratorSignature<Signature>>>>;
|
|
81
|
+
};
|
|
82
|
+
export type YieldingFromRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'> = {
|
|
83
|
+
<SourceFactory extends (...arguments_: readonly unknown[]) => Iterable<unknown>>(sourceFactory: SourceFactory): CallRule<ArgumentPattern, ReturnType<SourceFactory>, MatchKind, CallBehavior<ReturnType<SourceFactory>>>;
|
|
84
|
+
<Signature extends CallableSignature>(sourceFactory: SyncSourceFactory<Signature>): CallRule<ArgumentPattern, ReturnType<SyncGeneratorSignature<Signature>>, MatchKind, CallBehavior<ReturnType<SyncGeneratorSignature<Signature>>>>;
|
|
85
|
+
};
|
|
86
|
+
export type AsyncYieldingRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'> = {
|
|
87
|
+
<YieldValue>(values: readonly YieldValue[]): CallRule<ArgumentPattern, AsyncGenerator<YieldValue, undefined, unknown>, MatchKind, CallBehavior<AsyncGenerator<YieldValue, undefined, unknown>>>;
|
|
88
|
+
<YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): CallRule<ArgumentPattern, AsyncGenerator<YieldValue, ReturnValue, unknown>, MatchKind, CallBehavior<AsyncGenerator<YieldValue, ReturnValue, unknown>>>;
|
|
89
|
+
<Signature extends CallableSignature>(values: readonly AsyncYieldValue<ReturnType<AsyncGeneratorSignature<Signature>>>[], ...returnValue: AsyncReturnArguments<ReturnType<AsyncGeneratorSignature<Signature>>>): CallRule<ArgumentPattern, ReturnType<AsyncGeneratorSignature<Signature>>, MatchKind, CallBehavior<ReturnType<AsyncGeneratorSignature<Signature>>>>;
|
|
90
|
+
};
|
|
91
|
+
export type AsyncYieldingFromRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'> = {
|
|
92
|
+
<SourceFactory extends (...arguments_: readonly unknown[]) => AsyncIterable<unknown> | Iterable<unknown>>(sourceFactory: SourceFactory): CallRule<ArgumentPattern, ReturnType<SourceFactory>, MatchKind, CallBehavior<ReturnType<SourceFactory>>>;
|
|
93
|
+
<Signature extends CallableSignature>(sourceFactory: AsyncSourceFactory<Signature>): CallRule<ArgumentPattern, ReturnType<AsyncGeneratorSignature<Signature>>, MatchKind, CallBehavior<ReturnType<AsyncGeneratorSignature<Signature>>>>;
|
|
94
|
+
};
|
|
95
|
+
export declare function createYieldingRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'>(criterion: CallCriterion<ArgumentPattern, MatchKind>): YieldingRuleTerminator<ArgumentPattern, MatchKind>;
|
|
96
|
+
export declare function createYieldingFromRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'>(criterion: CallCriterion<ArgumentPattern, MatchKind>): YieldingFromRuleTerminator<ArgumentPattern, MatchKind>;
|
|
97
|
+
export declare function createAsyncYieldingRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'>(criterion: CallCriterion<ArgumentPattern, MatchKind>): AsyncYieldingRuleTerminator<ArgumentPattern, MatchKind>;
|
|
98
|
+
export declare function createAsyncYieldingFromRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'>(criterion: CallCriterion<ArgumentPattern, MatchKind>): AsyncYieldingFromRuleTerminator<ArgumentPattern, MatchKind>;
|
|
99
|
+
export declare function createYieldingBehavior<YieldValue>(values: readonly YieldValue[]): CallBehavior<Generator<YieldValue, undefined, unknown>>;
|
|
100
|
+
export declare function createYieldingBehavior<YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): CallBehavior<Generator<YieldValue, ReturnValue, unknown>>;
|
|
101
|
+
export declare function createYieldingBehavior<Signature extends CallableSignature>(values: readonly SyncYieldValue<ReturnType<SyncGeneratorSignature<Signature>>>[], ...returnValue: SyncReturnArguments<ReturnType<SyncGeneratorSignature<Signature>>>): CallBehavior<ReturnType<SyncGeneratorSignature<Signature>>>;
|
|
102
|
+
export declare const createYieldingFromBehavior: YieldingFromBehaviorFactory;
|
|
103
|
+
export declare function createAsyncYieldingBehavior<YieldValue>(values: readonly YieldValue[]): CallBehavior<AsyncGenerator<YieldValue, undefined, unknown>>;
|
|
104
|
+
export declare function createAsyncYieldingBehavior<YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): CallBehavior<AsyncGenerator<YieldValue, ReturnValue, unknown>>;
|
|
105
|
+
export declare function createAsyncYieldingBehavior<Signature extends CallableSignature>(values: readonly AsyncYieldValue<ReturnType<AsyncGeneratorSignature<Signature>>>[], ...returnValue: AsyncReturnArguments<ReturnType<AsyncGeneratorSignature<Signature>>>): CallBehavior<ReturnType<AsyncGeneratorSignature<Signature>>>;
|
|
106
|
+
export declare const createAsyncYieldingFromBehavior: AsyncYieldingFromBehaviorFactory;
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=double-rule-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"double-rule-generator.d.ts","sourceRoot":"","sources":["../../../../source/doubles/double-rule-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { yieldsAsyncBehavior, yieldsAsyncFromBehavior, yieldsBehavior, yieldsFromBehavior } from "./double-behavior.js";
|
|
2
|
+
function callRule(criterion, behavior) {
|
|
3
|
+
return { behavior, criterion };
|
|
4
|
+
}
|
|
5
|
+
export function createYieldingRuleTerminator(criterion) {
|
|
6
|
+
function yields(values, ...returnValue) {
|
|
7
|
+
return callRule(criterion, yieldsBehavior(values, returnValue[0]));
|
|
8
|
+
}
|
|
9
|
+
return yields;
|
|
10
|
+
}
|
|
11
|
+
export function createYieldingFromRuleTerminator(criterion) {
|
|
12
|
+
function yieldsFrom(sourceFactory) {
|
|
13
|
+
return callRule(criterion, yieldsFromBehavior(sourceFactory));
|
|
14
|
+
}
|
|
15
|
+
return yieldsFrom;
|
|
16
|
+
}
|
|
17
|
+
export function createAsyncYieldingRuleTerminator(criterion) {
|
|
18
|
+
function yieldsAsync(values, ...returnValue) {
|
|
19
|
+
return callRule(criterion, yieldsAsyncBehavior(values, returnValue[0]));
|
|
20
|
+
}
|
|
21
|
+
return yieldsAsync;
|
|
22
|
+
}
|
|
23
|
+
export function createAsyncYieldingFromRuleTerminator(criterion) {
|
|
24
|
+
function yieldsAsyncFrom(sourceFactory) {
|
|
25
|
+
return callRule(criterion, yieldsAsyncFromBehavior(sourceFactory));
|
|
26
|
+
}
|
|
27
|
+
return yieldsAsyncFrom;
|
|
28
|
+
}
|
|
29
|
+
export function createYieldingBehavior(values, ...returnValue) {
|
|
30
|
+
return yieldsBehavior(values, returnValue[0]);
|
|
31
|
+
}
|
|
32
|
+
export const createYieldingFromBehavior = yieldsFromBehavior;
|
|
33
|
+
export function createAsyncYieldingBehavior(values, ...returnValue) {
|
|
34
|
+
return yieldsAsyncBehavior(values, returnValue[0]);
|
|
35
|
+
}
|
|
36
|
+
export const createAsyncYieldingFromBehavior = yieldsAsyncFromBehavior;
|
|
37
|
+
//# sourceMappingURL=double-rule-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"double-rule-generator.js","sourceRoot":"","sources":["../../../../source/doubles/double-rule-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EACrB,MAAM,sBAAsB,CAAC;AA2P9B,SAAS,QAAQ,CAMb,SAAoD,EACpD,QAAkB;IAElB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAIxC,SAAoD;IA0BpD,SAAS,MAAM,CACX,MAA0B,EAC1B,GAAG,WAA6C;QAOhD,OAAO,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAI5C,SAAoD;IAapD,SAAS,UAAU,CACf,aAAuE;QAEvE,OAAO,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAI7C,SAAoD;IA0BpD,SAAS,WAAW,CAChB,MAA0B,EAC1B,GAAG,WAA6C;QAOhD,OAAO,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,qCAAqC,CAIjD,SAAoD;IAkBpD,SAAS,eAAe,CACpB,aAAgG;QAOhG,OAAO,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAaD,MAAM,UAAU,sBAAsB,CAClC,MAA0B,EAC1B,GAAG,WAA6C;IAEhD,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAgC,kBAAkB,CAAC;AAa1F,MAAM,UAAU,2BAA2B,CACvC,MAA0B,EAC1B,GAAG,WAA6C;IAEhD,OAAO,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAqC,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import type { BehaviorMode, CallableSignature, CallbackBehaviorKind, ConstructorSignature, FixedBehaviorKind, RuntimeBehavior, RuntimeFixedBehavior, RuntimeRule, RuntimeSequenceBehavior, UnknownConstructor, UnknownFunction } from './double-behavior.ts';
|
|
2
|
+
import type { CallbackBehaviorFactory, CallbackBehaviorFor, CallbackRuleTerminator } from './double-rule-callback.ts';
|
|
3
|
+
import type { NonEmptyArgumentPatterns } from './double-rule-arguments.ts';
|
|
4
|
+
import type { AsyncYieldingBehaviorFactory, AsyncYieldingFromBehaviorFactory, AsyncYieldingFromRuleTerminator, AsyncYieldingRuleTerminator, YieldingBehaviorFactory, YieldingFromBehaviorFactory, YieldingFromRuleTerminator, YieldingRuleTerminator } from './double-rule-generator.ts';
|
|
5
|
+
import type { CallArguments, CallReturn, ConstructionArguments, ConstructionInstance } from './double-signature.ts';
|
|
6
|
+
type PrimitiveValue = bigint | boolean | number | string | symbol | null | undefined;
|
|
7
|
+
type VoidReturn = ReturnType<() => void>;
|
|
8
|
+
type NonCallbackBehaviorKind = Exclude<FixedBehaviorKind, CallbackBehaviorKind>;
|
|
9
|
+
type SharedBehavior<Result = never> = RuntimeFixedBehavior<'both', Result, NonCallbackBehaviorKind>;
|
|
10
|
+
type NonCallbackBehavior<Result> = RuntimeFixedBehavior<BehaviorMode, Result, NonCallbackBehaviorKind>;
|
|
11
|
+
type FixedReturnValue<SignatureOrValue> = SignatureOrValue extends CallableSignature ? ReturnType<SignatureOrValue> : SignatureOrValue;
|
|
12
|
+
export type ReturnSignature<SignatureOrValue> = SignatureOrValue extends CallableSignature ? SignatureOrValue : UnknownFunction<SignatureOrValue>;
|
|
13
|
+
type CallableReturnArguments<Signature extends CallableSignature> = ReturnType<Signature> extends VoidReturn ? readonly [] | readonly [ReturnType<Signature>] : readonly [ReturnType<Signature>];
|
|
14
|
+
export type ReturnArguments<SignatureOrValue> = SignatureOrValue extends CallableSignature ? CallableReturnArguments<SignatureOrValue> : readonly [FixedReturnValue<SignatureOrValue>];
|
|
15
|
+
type PromiseResolution<Value> = Value extends Promise<infer Resolved> ? Resolved : never;
|
|
16
|
+
export type ResolvedValue<SignatureOrValue> = SignatureOrValue extends CallableSignature ? PromiseResolution<ReturnType<SignatureOrValue>> : Awaited<SignatureOrValue>;
|
|
17
|
+
type AsyncCallableSignature<Signature extends CallableSignature> = ReturnType<Signature> extends Promise<unknown> ? Signature : never;
|
|
18
|
+
export type ResolvedSignature<SignatureOrValue> = SignatureOrValue extends CallableSignature ? AsyncCallableSignature<SignatureOrValue> : UnknownFunction<Promise<Awaited<SignatureOrValue>>>;
|
|
19
|
+
type NonPrimitiveInstance<SignatureOrInstance> = SignatureOrInstance extends PrimitiveValue ? never : SignatureOrInstance;
|
|
20
|
+
export type ConstructInstance<SignatureOrInstance> = SignatureOrInstance extends ConstructorSignature ? InstanceType<SignatureOrInstance> : NonPrimitiveInstance<SignatureOrInstance>;
|
|
21
|
+
export type ConstructSignature<SignatureOrInstance> = SignatureOrInstance extends ConstructorSignature ? SignatureOrInstance : UnknownConstructor<SignatureOrInstance>;
|
|
22
|
+
export type CallRule<ArgumentPattern extends readonly unknown[], Result, MatchKind extends 'arguments' | 'index', Behavior extends RuntimeBehavior<BehaviorMode, Result> = RuntimeBehavior<BehaviorMode, Result>> = RuntimeRule<'call', ArgumentPattern, Result, MatchKind, Behavior>;
|
|
23
|
+
export type ConstructionRule<ArgumentPattern extends readonly unknown[], Result, MatchKind extends 'arguments' | 'index', Behavior extends RuntimeBehavior<BehaviorMode, Result> = RuntimeBehavior<BehaviorMode, Result>> = RuntimeRule<'construction', ArgumentPattern, Result, MatchKind, Behavior>;
|
|
24
|
+
type CallRuleSupport<Signature> = [Signature] extends [CallableSignature] ? 'callable' : 'unsupported';
|
|
25
|
+
type CallRuleBySupport<Signature> = {
|
|
26
|
+
readonly callable: CallRuleForSignature<Signature>;
|
|
27
|
+
readonly unsupported: never;
|
|
28
|
+
};
|
|
29
|
+
type CallRuleFor<Signature> = CallRuleBySupport<Signature>[CallRuleSupport<Signature>];
|
|
30
|
+
type CallSequenceEntryByKind<Signature> = {
|
|
31
|
+
readonly callback: CallbackBehaviorFor<Signature>;
|
|
32
|
+
readonly fixed: NonCallbackBehavior<CallReturn<Signature>>;
|
|
33
|
+
readonly value: CallReturn<Signature>;
|
|
34
|
+
};
|
|
35
|
+
type CallSequenceEntryFor<Signature> = CallSequenceEntryByKind<Signature>[keyof CallSequenceEntryByKind<Signature>];
|
|
36
|
+
type CallSequenceFor<Signature> = RuntimeSequenceBehavior<BehaviorMode, CallReturn<Signature>, readonly [CallSequenceEntryFor<Signature>, CallSequenceEntryFor<Signature>, ...CallSequenceEntryFor<Signature>[]]>;
|
|
37
|
+
type CallBehaviorByKind<Signature> = {
|
|
38
|
+
readonly callback: CallbackBehaviorFor<Signature>;
|
|
39
|
+
readonly fixed: NonCallbackBehavior<CallReturn<Signature>>;
|
|
40
|
+
readonly sequence: CallSequenceFor<Signature>;
|
|
41
|
+
};
|
|
42
|
+
type CallBehaviorFor<Signature> = CallBehaviorByKind<Signature>[keyof CallBehaviorByKind<Signature>];
|
|
43
|
+
type ArgumentCallRuleFor<Signature> = CallRule<NonEmptyArgumentPatterns<CallArguments<Signature>>, CallReturn<Signature>, 'arguments', CallBehaviorFor<Signature>>;
|
|
44
|
+
type IndexedCallRuleFor<Signature> = CallRule<readonly unknown[], CallReturn<Signature>, 'index', CallBehaviorFor<Signature>>;
|
|
45
|
+
type CallRuleForSignature<Signature> = ArgumentCallRuleFor<Signature> | IndexedCallRuleFor<Signature>;
|
|
46
|
+
type ConstructionRuleSupport<Signature> = [Signature] extends [ConstructorSignature] ? 'constructable' : 'unsupported';
|
|
47
|
+
type ConstructionRuleBySupport<Signature> = {
|
|
48
|
+
readonly constructable: ConstructionRuleForSignature<Signature>;
|
|
49
|
+
readonly unsupported: never;
|
|
50
|
+
};
|
|
51
|
+
type ConstructionRuleFor<Signature> = ConstructionRuleBySupport<Signature>[ConstructionRuleSupport<Signature>];
|
|
52
|
+
type ArgumentConstructionRuleFor<Signature> = ConstructionRule<NonEmptyArgumentPatterns<ConstructionArguments<Signature>>, ConstructionInstance<Signature>, 'arguments'>;
|
|
53
|
+
type IndexedConstructionRuleFor<Signature> = ConstructionRule<readonly unknown[], ConstructionInstance<Signature>, 'index'>;
|
|
54
|
+
type ConstructionRuleForSignature<Signature> = {
|
|
55
|
+
readonly arguments: ArgumentConstructionRuleFor<Signature>;
|
|
56
|
+
readonly index: IndexedConstructionRuleFor<Signature>;
|
|
57
|
+
}[keyof {
|
|
58
|
+
readonly arguments: unknown;
|
|
59
|
+
readonly index: unknown;
|
|
60
|
+
}];
|
|
61
|
+
export type DoubleRuleFor<Signature> = CallRuleFor<Signature> | ConstructionRuleFor<Signature>;
|
|
62
|
+
type CallFallbackSupport<Signature> = [Signature] extends [CallableSignature] ? 'callable' : 'unsupported';
|
|
63
|
+
type CallFallbackBySupport<Signature> = {
|
|
64
|
+
readonly callable: CallFallbackForSignature<Signature>;
|
|
65
|
+
readonly unsupported: never;
|
|
66
|
+
};
|
|
67
|
+
type CallFallbackFor<Signature> = CallFallbackBySupport<Signature>[CallFallbackSupport<Signature>];
|
|
68
|
+
type CallFallbackForSignature<Signature> = CallBehaviorFor<Signature> | SharedBehavior;
|
|
69
|
+
type ConstructionBehaviorFallbackFor<Signature> = RuntimeBehavior<BehaviorMode, ConstructionInstance<Signature>, NonCallbackBehaviorKind>;
|
|
70
|
+
type ConstructionFallbackForSignature<Signature> = ConstructionBehaviorFallbackFor<Signature> | SharedBehavior;
|
|
71
|
+
type ConstructionFallbackSupport<Signature> = [Signature] extends [ConstructorSignature] ? 'constructable' : 'unsupported';
|
|
72
|
+
type ConstructionFallbackBySupport<Signature> = {
|
|
73
|
+
readonly constructable: ConstructionFallbackForSignature<Signature>;
|
|
74
|
+
readonly unsupported: never;
|
|
75
|
+
};
|
|
76
|
+
type ConstructionFallbackFor<Signature> = ConstructionFallbackBySupport<Signature>[ConstructionFallbackSupport<Signature>];
|
|
77
|
+
type FallbackModeSupport<Signature> = [Signature] extends [CallableSignature] ? 'callable' : 'unsupported';
|
|
78
|
+
type FallbackByModeSupport<Signature> = {
|
|
79
|
+
readonly callable: FallbackByCallableMode<Signature>;
|
|
80
|
+
readonly unsupported: never;
|
|
81
|
+
};
|
|
82
|
+
type FallbackByMode<Signature> = FallbackByModeSupport<Signature>[FallbackModeSupport<Signature>];
|
|
83
|
+
type CallableFallbackModeSupport<Signature> = [Signature] extends [ConstructorSignature] ? 'constructable' : 'unsupported';
|
|
84
|
+
type FallbackByCallableModeSupport<Signature> = {
|
|
85
|
+
readonly constructable: FallbackModes<Signature>;
|
|
86
|
+
readonly unsupported: never;
|
|
87
|
+
};
|
|
88
|
+
type FallbackByCallableMode<Signature> = FallbackByCallableModeSupport<Signature>[CallableFallbackModeSupport<Signature>];
|
|
89
|
+
type FallbackModes<Signature> = {
|
|
90
|
+
readonly call: CallFallbackFor<Signature>;
|
|
91
|
+
readonly construction: ConstructionFallbackFor<Signature>;
|
|
92
|
+
};
|
|
93
|
+
type FallbackForSignature<Signature> = CallFallbackFor<Signature> | ConstructionFallbackFor<Signature>;
|
|
94
|
+
export type FallbackFor<Signature> = FallbackByMode<Signature> | FallbackForSignature<Signature>;
|
|
95
|
+
type SequenceEntries = readonly [unknown, unknown, ...unknown[]];
|
|
96
|
+
export type SequenceResult<Entry> = Entry extends RuntimeBehavior<BehaviorMode, infer Result> ? Result : Entry;
|
|
97
|
+
type ReturningBehaviorFactory = {
|
|
98
|
+
(): RuntimeFixedBehavior<'call', void, 'returns'>;
|
|
99
|
+
<SignatureOrValue>(...value: ReturnArguments<SignatureOrValue>): RuntimeFixedBehavior<'call', FixedReturnValue<SignatureOrValue>, 'returns'>;
|
|
100
|
+
};
|
|
101
|
+
type ResolvingBehaviorFactory = <SignatureOrValue>(value: ResolvedValue<SignatureOrValue>) => RuntimeFixedBehavior<'call', Promise<ResolvedValue<SignatureOrValue>>, 'resolves'>;
|
|
102
|
+
type RejectingBehaviorFactory = {
|
|
103
|
+
(reason: unknown): RuntimeFixedBehavior<'call', Promise<never>, 'rejects'>;
|
|
104
|
+
<Signature extends CallableSignature>(reason: ReturnType<Signature> extends Promise<unknown> ? unknown : never): RuntimeFixedBehavior<'call', ReturnType<Signature>, 'rejects'>;
|
|
105
|
+
};
|
|
106
|
+
type ThrowingBehaviorFactory = {
|
|
107
|
+
(thrown: unknown): RuntimeFixedBehavior<'both', never, 'throws'>;
|
|
108
|
+
<Signature extends CallableSignature>(thrown: ReturnType<Signature> extends Promise<unknown> ? never : unknown): RuntimeFixedBehavior<'both', never, 'throws'>;
|
|
109
|
+
};
|
|
110
|
+
type ConstructingBehaviorFactory = <SignatureOrInstance>(instance: ConstructInstance<SignatureOrInstance>) => RuntimeFixedBehavior<'construction', ConstructInstance<SignatureOrInstance>, 'constructs'>;
|
|
111
|
+
type CallingBehaviorFactory = <Answer extends UnknownFunction<unknown>>(answer: Answer) => RuntimeFixedBehavior<'both', ReturnType<Answer>, 'calls'>;
|
|
112
|
+
type SequenceBehaviorFactory = <Entries extends SequenceEntries>(entries: Entries) => RuntimeSequenceBehavior<BehaviorMode, SequenceResult<Entries[number]>, Entries>;
|
|
113
|
+
export type CallRuleStarter<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'> = {
|
|
114
|
+
readonly calls: <Answer extends UnknownFunction<unknown>>(answer: Answer) => CallRule<ArgumentPattern, ReturnType<Answer>, MatchKind, RuntimeFixedBehavior<'both', ReturnType<Answer>, 'calls'>>;
|
|
115
|
+
readonly callsCallback: CallbackRuleTerminator<ArgumentPattern, MatchKind>;
|
|
116
|
+
readonly callsCallbackAsync: CallbackRuleTerminator<ArgumentPattern, MatchKind, 'calls-callback-async'>;
|
|
117
|
+
readonly rejects: RejectingRuleTerminator<ArgumentPattern, MatchKind>;
|
|
118
|
+
readonly resolves: ResolvingRuleTerminator<ArgumentPattern, MatchKind>;
|
|
119
|
+
readonly returns: ReturningRuleTerminator<ArgumentPattern, MatchKind>;
|
|
120
|
+
readonly sequence: <Entries extends SequenceEntries>(entries: Entries) => CallRule<ArgumentPattern, SequenceResult<Entries[number]>, MatchKind, RuntimeSequenceBehavior<BehaviorMode, SequenceResult<Entries[number]>, Entries>>;
|
|
121
|
+
readonly throws: (thrown: unknown) => CallRule<ArgumentPattern, never, MatchKind, RuntimeFixedBehavior<'both', never, 'throws'>>;
|
|
122
|
+
readonly yields: YieldingRuleTerminator<ArgumentPattern, MatchKind>;
|
|
123
|
+
readonly yieldsAsync: AsyncYieldingRuleTerminator<ArgumentPattern, MatchKind>;
|
|
124
|
+
readonly yieldsAsyncFrom: AsyncYieldingFromRuleTerminator<ArgumentPattern, MatchKind>;
|
|
125
|
+
readonly yieldsFrom: YieldingFromRuleTerminator<ArgumentPattern, MatchKind>;
|
|
126
|
+
};
|
|
127
|
+
export type ConstructionRuleStarter<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'> = {
|
|
128
|
+
readonly calls: <Answer extends UnknownFunction<unknown>>(answer: Answer) => ConstructionRule<ArgumentPattern, ReturnType<Answer>, MatchKind, RuntimeFixedBehavior<'both', ReturnType<Answer>, 'calls'>>;
|
|
129
|
+
readonly constructs: <SignatureOrInstance>(instance: ConstructInstance<SignatureOrInstance>) => ConstructionRule<ArgumentPattern, ConstructInstance<SignatureOrInstance>, MatchKind, RuntimeFixedBehavior<'construction', ConstructInstance<SignatureOrInstance>, 'constructs'>>;
|
|
130
|
+
readonly sequence: <Entries extends SequenceEntries>(entries: Entries) => ConstructionRule<ArgumentPattern, SequenceResult<Entries[number]>, MatchKind, RuntimeSequenceBehavior<BehaviorMode, SequenceResult<Entries[number]>, Entries>>;
|
|
131
|
+
readonly throws: (thrown: unknown) => ConstructionRule<ArgumentPattern, never, MatchKind, RuntimeFixedBehavior<'both', never, 'throws'>>;
|
|
132
|
+
};
|
|
133
|
+
type ReturningRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'> = {
|
|
134
|
+
(): CallRule<ArgumentPattern, void, MatchKind, RuntimeFixedBehavior<'call', void, 'returns'>>;
|
|
135
|
+
<SignatureOrValue>(...value: ReturnArguments<SignatureOrValue>): CallRule<ArgumentPattern, FixedReturnValue<SignatureOrValue>, MatchKind, RuntimeFixedBehavior<'call', FixedReturnValue<SignatureOrValue>, 'returns'>>;
|
|
136
|
+
};
|
|
137
|
+
type ResolvingRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'> = <SignatureOrValue>(value: ResolvedValue<SignatureOrValue>) => CallRule<ArgumentPattern, Promise<ResolvedValue<SignatureOrValue>>, MatchKind, RuntimeFixedBehavior<'call', Promise<ResolvedValue<SignatureOrValue>>, 'resolves'>>;
|
|
138
|
+
type RejectingRuleTerminator<ArgumentPattern extends readonly unknown[], MatchKind extends 'arguments' | 'index'> = {
|
|
139
|
+
(reason: unknown): CallRule<ArgumentPattern, Promise<never>, MatchKind, RuntimeFixedBehavior<'call', Promise<never>, 'rejects'>>;
|
|
140
|
+
<Signature extends CallableSignature>(reason: ReturnType<Signature> extends Promise<unknown> ? unknown : never): CallRule<ArgumentPattern, ReturnType<Signature>, MatchKind, RuntimeFixedBehavior<'call', ReturnType<Signature>, 'rejects'>>;
|
|
141
|
+
};
|
|
142
|
+
export type RuleFactory = {
|
|
143
|
+
readonly calls: CallingBehaviorFactory;
|
|
144
|
+
readonly callsCallback: CallbackBehaviorFactory;
|
|
145
|
+
readonly callsCallbackAsync: CallbackBehaviorFactory;
|
|
146
|
+
readonly constructs: ConstructingBehaviorFactory;
|
|
147
|
+
readonly onCall: (index: number) => CallRuleStarter<readonly unknown[], 'index'>;
|
|
148
|
+
readonly onConstruction: (index: number) => ConstructionRuleStarter<readonly unknown[], 'index'>;
|
|
149
|
+
readonly rejects: RejectingBehaviorFactory;
|
|
150
|
+
readonly resolves: ResolvingBehaviorFactory;
|
|
151
|
+
readonly returns: ReturningBehaviorFactory;
|
|
152
|
+
readonly sequence: SequenceBehaviorFactory;
|
|
153
|
+
readonly throws: ThrowingBehaviorFactory;
|
|
154
|
+
readonly yields: YieldingBehaviorFactory;
|
|
155
|
+
readonly yieldsAsync: AsyncYieldingBehaviorFactory;
|
|
156
|
+
readonly yieldsAsyncFrom: AsyncYieldingFromBehaviorFactory;
|
|
157
|
+
readonly yieldsFrom: YieldingFromBehaviorFactory;
|
|
158
|
+
readonly when: <ExpectedArguments extends readonly [unknown, ...(readonly unknown[])]>(...expectedArguments: ExpectedArguments) => CallRuleStarter<ExpectedArguments, 'arguments'>;
|
|
159
|
+
readonly whenConstructedWith: <ExpectedArguments extends readonly [unknown, ...(readonly unknown[])]>(...expectedArguments: ExpectedArguments) => ConstructionRuleStarter<ExpectedArguments, 'arguments'>;
|
|
160
|
+
};
|
|
161
|
+
export {};
|
|
162
|
+
//# sourceMappingURL=double-rule-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"double-rule-types.d.ts","sourceRoot":"","sources":["../../../../source/doubles/double-rule-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"double-rule.d.ts","sourceRoot":"","sources":["../../../../source/doubles/double-rule.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAOR,WAAW,EAEd,MAAM,wBAAwB,CAAC;AAgKhC,eAAO,MAAM,IAAI,EAAE,WAkBlB,CAAC"}
|