@rocketmakers/ioc 0.1.6 → 0.2.6
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/README.md +98 -27
- package/lib/curry.generated.d.ts +143 -0
- package/lib/curry.generated.js +2 -0
- package/lib/error.d.ts +4 -0
- package/lib/error.js +20 -0
- package/lib/global.d.ts +9 -0
- package/lib/global.js +13 -0
- package/lib/index.d.ts +78 -116
- package/lib/index.js +134 -117
- package/lib/modules.d.ts +16 -0
- package/lib/modules.js +2 -0
- package/lib/tail.generated.d.ts +50 -0
- package/lib/tail.generated.js +88 -0
- package/package.json +4 -3
package/lib/index.js
CHANGED
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.containerFactory = exports.containerRegister = exports.
|
|
3
|
+
exports.mergeContainers = exports.register = exports.containerFactory = exports.containerRegister = exports.makeUnmanaged = exports.makeParamUnmanaged = exports.makeInjected = exports.makeParamInjected = exports.wasParamMadeInjected = exports.makeInjectable = exports.wasMadeInjectable = exports.reflectMetadataKeys = exports.containerRegisterFunctionResolver = exports.internalContainer = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
/* eslint-disable no-underscore-dangle */
|
|
6
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
7
|
-
var inversify_1 = require("inversify");
|
|
8
5
|
require("reflect-metadata");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
exports.getGlobalContainer = getGlobalContainer;
|
|
16
|
-
exports.internalContainer = getGlobalContainer();
|
|
6
|
+
var inversify_1 = require("inversify");
|
|
7
|
+
var error_1 = require("./error");
|
|
8
|
+
var global_1 = require("./global");
|
|
9
|
+
var tail_generated_1 = require("./tail.generated");
|
|
10
|
+
tslib_1.__exportStar(require("./curry.generated"), exports);
|
|
11
|
+
exports.internalContainer = (0, global_1.getGlobalContainer)();
|
|
17
12
|
function curryInner(fn) {
|
|
18
13
|
var keys = [];
|
|
19
14
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -29,144 +24,166 @@ function curryInner(fn) {
|
|
|
29
24
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
30
25
|
p[_i] = arguments[_i];
|
|
31
26
|
}
|
|
32
|
-
return fn.apply(fn, tslib_1.__spreadArray(tslib_1.__spreadArray([], values_1), p));
|
|
27
|
+
return fn.apply(fn, tslib_1.__spreadArray(tslib_1.__spreadArray([], values_1, true), p, true));
|
|
33
28
|
};
|
|
34
29
|
}
|
|
35
30
|
return result;
|
|
36
31
|
},
|
|
37
32
|
};
|
|
38
33
|
}
|
|
39
|
-
|
|
34
|
+
/** Use this helper function to provide container curry functions */
|
|
40
35
|
function containerRegisterFunctionResolver() {
|
|
41
|
-
return
|
|
42
|
-
curry1: function (fn, key1) {
|
|
43
|
-
return curryInner(fn, key1);
|
|
44
|
-
},
|
|
45
|
-
curry2: function (fn, key1, key2) {
|
|
46
|
-
return curryInner(fn, key1, key2);
|
|
47
|
-
},
|
|
48
|
-
curry3: function (fn, key1, key2, key3) {
|
|
49
|
-
return curryInner(fn, key1, key2, key3);
|
|
50
|
-
},
|
|
51
|
-
curry4: function (fn, key1, key2, key3, key4) {
|
|
52
|
-
return curryInner(fn, key1, key2, key3, key4);
|
|
53
|
-
},
|
|
54
|
-
curry5: function (fn, key1, key2, key3, key4, key5) {
|
|
55
|
-
return curryInner(fn, key1, key2, key3, key4, key5);
|
|
56
|
-
},
|
|
57
|
-
curry6: function (fn, key1, key2, key3, key4, key5, key6) {
|
|
58
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6);
|
|
59
|
-
},
|
|
60
|
-
curry7: function (fn, key1, key2, key3, key4, key5, key6, key7) {
|
|
61
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7);
|
|
62
|
-
},
|
|
63
|
-
curry8: function (fn, key1, key2, key3, key4, key5, key6, key7, key8) {
|
|
64
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8);
|
|
65
|
-
},
|
|
66
|
-
curry9: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9) {
|
|
67
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9);
|
|
68
|
-
},
|
|
69
|
-
curry10: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10) {
|
|
70
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10);
|
|
71
|
-
},
|
|
72
|
-
curry11: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11) {
|
|
73
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11);
|
|
74
|
-
},
|
|
75
|
-
curry12: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12) {
|
|
76
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12);
|
|
77
|
-
},
|
|
78
|
-
curry13: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13) {
|
|
79
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13);
|
|
80
|
-
},
|
|
81
|
-
curry14: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14) {
|
|
82
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14);
|
|
83
|
-
},
|
|
84
|
-
curry15: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15) {
|
|
85
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15);
|
|
86
|
-
},
|
|
87
|
-
curry16: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16) {
|
|
88
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16);
|
|
89
|
-
},
|
|
90
|
-
curry17: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17) {
|
|
91
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17);
|
|
92
|
-
},
|
|
93
|
-
curry18: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18) {
|
|
94
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18);
|
|
95
|
-
},
|
|
96
|
-
curry19: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19) {
|
|
97
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19);
|
|
98
|
-
},
|
|
99
|
-
curry20: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19, key20) {
|
|
100
|
-
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19, key20);
|
|
101
|
-
},
|
|
102
|
-
};
|
|
36
|
+
return (0, tail_generated_1.containerRegisterFunctionResolverInternal)(curryInner);
|
|
103
37
|
}
|
|
104
38
|
exports.containerRegisterFunctionResolver = containerRegisterFunctionResolver;
|
|
105
|
-
|
|
106
|
-
injectable:
|
|
107
|
-
|
|
39
|
+
exports.reflectMetadataKeys = {
|
|
40
|
+
injectable: 'inversify:paramtypes',
|
|
41
|
+
injected: 'inversify:tagged',
|
|
108
42
|
};
|
|
109
|
-
|
|
43
|
+
/** Test if the class was made Injectable */
|
|
44
|
+
function wasMadeInjectable(classType) {
|
|
45
|
+
return Reflect.hasMetadata(exports.reflectMetadataKeys.injectable, classType);
|
|
46
|
+
}
|
|
47
|
+
exports.wasMadeInjectable = wasMadeInjectable;
|
|
48
|
+
/** Mark the class as Injectable */
|
|
110
49
|
function makeInjectable(classType) {
|
|
111
|
-
|
|
50
|
+
if (wasMadeInjectable(classType)) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
(0, inversify_1.decorate)((0, inversify_1.injectable)(), classType);
|
|
112
54
|
}
|
|
113
55
|
exports.makeInjectable = makeInjectable;
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
56
|
+
/** Test if the class parameter was made as Injected */
|
|
57
|
+
function wasParamMadeInjected(classType, index) {
|
|
58
|
+
var data = Reflect.getMetadata(exports.reflectMetadataKeys.injected, classType);
|
|
59
|
+
return data && !!data[index];
|
|
60
|
+
}
|
|
61
|
+
exports.wasParamMadeInjected = wasParamMadeInjected;
|
|
62
|
+
/** Mark the class parameter as Injected */
|
|
63
|
+
function makeParamInjected(classType, index, serviceIdentifier) {
|
|
64
|
+
if (wasParamMadeInjected(classType, index)) {
|
|
65
|
+
return;
|
|
119
66
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
67
|
+
(0, inversify_1.decorate)((0, inversify_1.inject)(serviceIdentifier), classType, index);
|
|
68
|
+
}
|
|
69
|
+
exports.makeParamInjected = makeParamInjected;
|
|
70
|
+
/** @deprecated Renamed to makeParamInjected */
|
|
71
|
+
function makeInjected(classType, index, serviceIdentifier) {
|
|
72
|
+
return makeParamInjected(classType, index, serviceIdentifier);
|
|
73
|
+
}
|
|
74
|
+
exports.makeInjected = makeInjected;
|
|
75
|
+
/** Mark the class parameter as Unmanaged */
|
|
76
|
+
function makeParamUnmanaged(classType, parameterIndex) {
|
|
77
|
+
(0, inversify_1.decorate)((0, inversify_1.unmanaged)(), classType, parameterIndex);
|
|
78
|
+
}
|
|
79
|
+
exports.makeParamUnmanaged = makeParamUnmanaged;
|
|
80
|
+
/** @deprecated Renamed to makeParamUnmanaged */
|
|
81
|
+
function makeUnmanaged(classType, parameterIndex) {
|
|
82
|
+
makeParamUnmanaged(classType, parameterIndex);
|
|
83
|
+
}
|
|
84
|
+
exports.makeUnmanaged = makeUnmanaged;
|
|
85
|
+
function registerClass(key, classType, ctorParams) {
|
|
86
|
+
makeInjectable(classType);
|
|
87
|
+
ctorParams.forEach(function (c, i) { return makeParamInjected(classType, i, c); });
|
|
127
88
|
return exports.internalContainer.bind(key).to(classType);
|
|
128
89
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
return
|
|
90
|
+
function isFunctionResolver(item) {
|
|
91
|
+
var resolved = item === null || item === void 0 ? void 0 : item.resolved;
|
|
92
|
+
return resolved && typeof resolved === 'function';
|
|
132
93
|
}
|
|
133
|
-
|
|
94
|
+
var Binder = /** @class */ (function () {
|
|
95
|
+
function Binder(key) {
|
|
96
|
+
this.key = key;
|
|
97
|
+
}
|
|
98
|
+
Object.defineProperty(Binder.prototype, "binding", {
|
|
99
|
+
/** Gets the underlying container binding to the specified key */
|
|
100
|
+
get: function () {
|
|
101
|
+
return exports.internalContainer.bind(this.key);
|
|
102
|
+
},
|
|
103
|
+
enumerable: false,
|
|
104
|
+
configurable: true
|
|
105
|
+
});
|
|
106
|
+
/** Register a function */
|
|
107
|
+
Binder.prototype.function = function (item) {
|
|
108
|
+
return this.binding.toFunction(item);
|
|
109
|
+
};
|
|
110
|
+
/** Register a function resolver */
|
|
111
|
+
Binder.prototype.functionResolver = function (item) {
|
|
112
|
+
return this.binding.toFactory(function () { return item.resolved(); });
|
|
113
|
+
};
|
|
114
|
+
/** Register a constant */
|
|
115
|
+
Binder.prototype.constant = function (item) {
|
|
116
|
+
return this.binding.toConstantValue(item);
|
|
117
|
+
};
|
|
118
|
+
/** Register a class */
|
|
119
|
+
Binder.prototype.class = function (cls) {
|
|
120
|
+
var k = this.key;
|
|
121
|
+
return {
|
|
122
|
+
construct: function (keys) {
|
|
123
|
+
return registerClass(k, cls, keys);
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
return Binder;
|
|
128
|
+
}());
|
|
129
|
+
/** Legacy: Create the register for a container of type T */
|
|
134
130
|
function containerRegister() {
|
|
135
131
|
return {
|
|
132
|
+
/** Register a function/function resolver */
|
|
136
133
|
function: function (key, item) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
else {
|
|
141
|
-
exports.internalContainer.bind(key).toFactory(function () { return item.resolved(); });
|
|
134
|
+
var b = new Binder(key);
|
|
135
|
+
if (isFunctionResolver(item)) {
|
|
136
|
+
return b.functionResolver(item);
|
|
142
137
|
}
|
|
138
|
+
return b.function(item);
|
|
143
139
|
},
|
|
140
|
+
/** Register a constant */
|
|
144
141
|
constant: function (key, item) {
|
|
145
|
-
|
|
142
|
+
var b = new Binder(key);
|
|
143
|
+
return b.constant(item);
|
|
146
144
|
},
|
|
147
|
-
|
|
148
|
-
// return {
|
|
149
|
-
// construct<TK = T>(keys: MapTuple<ConstructorParameters<C>, TK>) {
|
|
150
|
-
// return registerClass(key, cls, keys as any);
|
|
151
|
-
// },
|
|
152
|
-
// };
|
|
153
|
-
// },
|
|
145
|
+
/** Register a class */
|
|
154
146
|
class: function (key, cls) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
},
|
|
159
|
-
};
|
|
147
|
+
var b = new Binder(key);
|
|
148
|
+
var dd = b.class(cls);
|
|
149
|
+
return dd;
|
|
160
150
|
},
|
|
161
151
|
};
|
|
162
152
|
}
|
|
163
153
|
exports.containerRegister = containerRegister;
|
|
164
|
-
|
|
165
|
-
function containerFactory() {
|
|
154
|
+
function createContainerOf(keys) {
|
|
166
155
|
return {
|
|
156
|
+
keys: keys,
|
|
167
157
|
get: function (key) {
|
|
168
158
|
return exports.internalContainer.get(key);
|
|
169
159
|
},
|
|
170
160
|
};
|
|
171
161
|
}
|
|
162
|
+
/** Legacy: Create a container of type T */
|
|
163
|
+
function containerFactory() {
|
|
164
|
+
return createContainerOf([]);
|
|
165
|
+
}
|
|
172
166
|
exports.containerFactory = containerFactory;
|
|
167
|
+
function getCombinedKeys(keys, dependent) {
|
|
168
|
+
var duplicates = keys.filter(function (k) { return dependent.indexOf(k) > -1; });
|
|
169
|
+
if (duplicates.length) {
|
|
170
|
+
throw new error_1.IocDuplicateKeyError(duplicates);
|
|
171
|
+
}
|
|
172
|
+
return tslib_1.__spreadArray(tslib_1.__spreadArray([], dependent, true), keys, true);
|
|
173
|
+
}
|
|
174
|
+
function register(cr, dependent) {
|
|
175
|
+
var keys = Object.keys(cr);
|
|
176
|
+
var combinedKeys = dependent ? getCombinedKeys(keys, dependent.keys) : keys;
|
|
177
|
+
keys.forEach(function (k) {
|
|
178
|
+
var binder = new Binder(k);
|
|
179
|
+
cr[k](binder);
|
|
180
|
+
});
|
|
181
|
+
return createContainerOf(combinedKeys);
|
|
182
|
+
}
|
|
183
|
+
exports.register = register;
|
|
184
|
+
/** Safely merge two containers */
|
|
185
|
+
function mergeContainers(container1, container2) {
|
|
186
|
+
var combinedKeys = getCombinedKeys(container1.keys, container2.keys);
|
|
187
|
+
return createContainerOf(combinedKeys);
|
|
188
|
+
}
|
|
189
|
+
exports.mergeContainers = mergeContainers;
|
package/lib/modules.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { interfaces } from 'inversify';
|
|
2
|
+
import { IFunctionResolver, PropsOfType, StringKeyof } from './tail.generated';
|
|
3
|
+
export declare type PropsNotOfType<T, X> = {
|
|
4
|
+
[P in StringKeyof<T>]: T[P] extends X ? never : P;
|
|
5
|
+
}[StringKeyof<T>];
|
|
6
|
+
export declare type MapTuple<F extends any[], TK> = {
|
|
7
|
+
[K in keyof F]: F[K] extends F[number] ? PropsOfType<TK, F[K]> : never;
|
|
8
|
+
};
|
|
9
|
+
export declare type NewableOf<T> = new (...args: any) => T;
|
|
10
|
+
export interface IContainerRegistrationHelper<T> {
|
|
11
|
+
function<KFunc extends PropsOfType<T, Function>>(key: KFunc, item: T[KFunc] | IFunctionResolver<T[KFunc]>): void;
|
|
12
|
+
constant<KConst extends PropsNotOfType<T, Function>>(key: KConst, item: T[KConst]): void;
|
|
13
|
+
class<KClass extends StringKeyof<T>, C extends NewableOf<T[KClass]>>(key: KClass, cls: C): {
|
|
14
|
+
construct<TK = T>(keys: MapTuple<ConstructorParameters<C>, TK>): interfaces.BindingInWhenOnSyntax<InstanceType<C>>;
|
|
15
|
+
};
|
|
16
|
+
}
|
package/lib/modules.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Param1, Curried1, Curried2, Curried3, Curried4, Curried5, Curried6, Curried7, Curried8, Curried9, Curried10, Curried11, Curried12, Curried13, Curried14, Curried15, Curried16, Curried17, Curried18, Curried19, Curried20 } from "./curry.generated";
|
|
2
|
+
export interface IFunctionResolver<T> {
|
|
3
|
+
resolved: () => T;
|
|
4
|
+
}
|
|
5
|
+
export declare type StringKeyof<T> = Extract<keyof T, string>;
|
|
6
|
+
export declare type PropsOfType<T, X> = {
|
|
7
|
+
[P in StringKeyof<T>]: T[P] extends X ? P : never;
|
|
8
|
+
}[StringKeyof<T>];
|
|
9
|
+
export declare function containerRegisterFunctionResolverInternal<T>(curryInner: <TFn extends (...args: any[]) => any>(fn: TFn, ...keys: PropertyKey[]) => IFunctionResolver<any>): {
|
|
10
|
+
/** Curry out the first parameter from the method */
|
|
11
|
+
curry1<TFn extends (...args: any[]) => any, K1 extends PropsOfType<T, Param1<Parameters<TFn>>>>(fn: TFn, key1: K1): IFunctionResolver<Curried1<TFn>>;
|
|
12
|
+
/** Curry out the first 2 parameters from the method */
|
|
13
|
+
curry2<TFn_1 extends (...args: any[]) => any, K1_1 extends PropsOfType<T, Param1<Parameters<TFn_1>>>, K2 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_1>>>>>(fn: TFn_1, key1: K1_1, key2: K2): IFunctionResolver<Curried2<TFn_1>>;
|
|
14
|
+
/** Curry out the first 3 parameters from the method */
|
|
15
|
+
curry3<TFn_2 extends (...args: any[]) => any, K1_2 extends PropsOfType<T, Param1<Parameters<TFn_2>>>, K2_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_2>>>>, K3 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_2>>>>>(fn: TFn_2, key1: K1_2, key2: K2_1, key3: K3): IFunctionResolver<Curried3<TFn_2>>;
|
|
16
|
+
/** Curry out the first 4 parameters from the method */
|
|
17
|
+
curry4<TFn_3 extends (...args: any[]) => any, K1_3 extends PropsOfType<T, Param1<Parameters<TFn_3>>>, K2_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_3>>>>, K3_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_3>>>>, K4 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_3>>>>>(fn: TFn_3, key1: K1_3, key2: K2_2, key3: K3_1, key4: K4): IFunctionResolver<Curried4<TFn_3>>;
|
|
18
|
+
/** Curry out the first 5 parameters from the method */
|
|
19
|
+
curry5<TFn_4 extends (...args: any[]) => any, K1_4 extends PropsOfType<T, Param1<Parameters<TFn_4>>>, K2_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_4>>>>, K3_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_4>>>>, K4_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_4>>>>, K5 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_4>>>>>(fn: TFn_4, key1: K1_4, key2: K2_3, key3: K3_2, key4: K4_1, key5: K5): IFunctionResolver<Curried5<TFn_4>>;
|
|
20
|
+
/** Curry out the first 6 parameters from the method */
|
|
21
|
+
curry6<TFn_5 extends (...args: any[]) => any, K1_5 extends PropsOfType<T, Param1<Parameters<TFn_5>>>, K2_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_5>>>>, K3_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_5>>>>, K4_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_5>>>>, K5_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_5>>>>, K6 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_5>>>>>(fn: TFn_5, key1: K1_5, key2: K2_4, key3: K3_3, key4: K4_2, key5: K5_1, key6: K6): IFunctionResolver<Curried6<TFn_5>>;
|
|
22
|
+
/** Curry out the first 7 parameters from the method */
|
|
23
|
+
curry7<TFn_6 extends (...args: any[]) => any, K1_6 extends PropsOfType<T, Param1<Parameters<TFn_6>>>, K2_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_6>>>>, K3_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_6>>>>, K4_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_6>>>>, K5_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_6>>>>, K6_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_6>>>>, K7 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_6>>>>>(fn: TFn_6, key1: K1_6, key2: K2_5, key3: K3_4, key4: K4_3, key5: K5_2, key6: K6_1, key7: K7): IFunctionResolver<Curried7<TFn_6>>;
|
|
24
|
+
/** Curry out the first 8 parameters from the method */
|
|
25
|
+
curry8<TFn_7 extends (...args: any[]) => any, K1_7 extends PropsOfType<T, Param1<Parameters<TFn_7>>>, K2_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_7>>>>, K3_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_7>>>>, K4_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_7>>>>, K5_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_7>>>>, K6_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_7>>>>, K7_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_7>>>>, K8 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_7>>>>>(fn: TFn_7, key1: K1_7, key2: K2_6, key3: K3_5, key4: K4_4, key5: K5_3, key6: K6_2, key7: K7_1, key8: K8): IFunctionResolver<Curried8<TFn_7>>;
|
|
26
|
+
/** Curry out the first 9 parameters from the method */
|
|
27
|
+
curry9<TFn_8 extends (...args: any[]) => any, K1_8 extends PropsOfType<T, Param1<Parameters<TFn_8>>>, K2_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_8>>>>, K3_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_8>>>>, K4_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_8>>>>, K5_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_8>>>>, K6_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_8>>>>, K7_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_8>>>>, K8_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_8>>>>, K9 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_8>>>>>(fn: TFn_8, key1: K1_8, key2: K2_7, key3: K3_6, key4: K4_5, key5: K5_4, key6: K6_3, key7: K7_2, key8: K8_1, key9: K9): IFunctionResolver<Curried9<TFn_8>>;
|
|
28
|
+
/** Curry out the first 10 parameters from the method */
|
|
29
|
+
curry10<TFn_9 extends (...args: any[]) => any, K1_9 extends PropsOfType<T, Param1<Parameters<TFn_9>>>, K2_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_9>>>>, K3_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_9>>>>, K4_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_9>>>>, K5_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_9>>>>, K6_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_9>>>>, K7_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_9>>>>, K8_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_9>>>>, K9_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_9>>>>, K10 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_9>>>>>(fn: TFn_9, key1: K1_9, key2: K2_8, key3: K3_7, key4: K4_6, key5: K5_5, key6: K6_4, key7: K7_3, key8: K8_2, key9: K9_1, key10: K10): IFunctionResolver<Curried10<TFn_9>>;
|
|
30
|
+
/** Curry out the first 11 parameters from the method */
|
|
31
|
+
curry11<TFn_10 extends (...args: any[]) => any, K1_10 extends PropsOfType<T, Param1<Parameters<TFn_10>>>, K2_9 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_10>>>>, K3_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_10>>>>, K4_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_10>>>>, K5_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_10>>>>, K6_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_10>>>>, K7_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_10>>>>, K8_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_10>>>>, K9_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_10>>>>, K10_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_10>>>>, K11 extends PropsOfType<T, Param1<import("./curry.generated").Tail10<Parameters<TFn_10>>>>>(fn: TFn_10, key1: K1_10, key2: K2_9, key3: K3_8, key4: K4_7, key5: K5_6, key6: K6_5, key7: K7_4, key8: K8_3, key9: K9_2, key10: K10_1, key11: K11): IFunctionResolver<Curried11<TFn_10>>;
|
|
32
|
+
/** Curry out the first 12 parameters from the method */
|
|
33
|
+
curry12<TFn_11 extends (...args: any[]) => any, K1_11 extends PropsOfType<T, Param1<Parameters<TFn_11>>>, K2_10 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_11>>>>, K3_9 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_11>>>>, K4_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_11>>>>, K5_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_11>>>>, K6_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_11>>>>, K7_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_11>>>>, K8_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_11>>>>, K9_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_11>>>>, K10_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_11>>>>, K11_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail10<Parameters<TFn_11>>>>, K12 extends PropsOfType<T, Param1<import("./curry.generated").Tail11<Parameters<TFn_11>>>>>(fn: TFn_11, key1: K1_11, key2: K2_10, key3: K3_9, key4: K4_8, key5: K5_7, key6: K6_6, key7: K7_5, key8: K8_4, key9: K9_3, key10: K10_2, key11: K11_1, key12: K12): IFunctionResolver<Curried12<TFn_11>>;
|
|
34
|
+
/** Curry out the first 13 parameters from the method */
|
|
35
|
+
curry13<TFn_12 extends (...args: any[]) => any, K1_12 extends PropsOfType<T, Param1<Parameters<TFn_12>>>, K2_11 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_12>>>>, K3_10 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_12>>>>, K4_9 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_12>>>>, K5_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_12>>>>, K6_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_12>>>>, K7_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_12>>>>, K8_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_12>>>>, K9_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_12>>>>, K10_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_12>>>>, K11_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail10<Parameters<TFn_12>>>>, K12_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail11<Parameters<TFn_12>>>>, K13 extends PropsOfType<T, Param1<import("./curry.generated").Tail12<Parameters<TFn_12>>>>>(fn: TFn_12, key1: K1_12, key2: K2_11, key3: K3_10, key4: K4_9, key5: K5_8, key6: K6_7, key7: K7_6, key8: K8_5, key9: K9_4, key10: K10_3, key11: K11_2, key12: K12_1, key13: K13): IFunctionResolver<Curried13<TFn_12>>;
|
|
36
|
+
/** Curry out the first 14 parameters from the method */
|
|
37
|
+
curry14<TFn_13 extends (...args: any[]) => any, K1_13 extends PropsOfType<T, Param1<Parameters<TFn_13>>>, K2_12 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_13>>>>, K3_11 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_13>>>>, K4_10 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_13>>>>, K5_9 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_13>>>>, K6_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_13>>>>, K7_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_13>>>>, K8_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_13>>>>, K9_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_13>>>>, K10_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_13>>>>, K11_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail10<Parameters<TFn_13>>>>, K12_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail11<Parameters<TFn_13>>>>, K13_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail12<Parameters<TFn_13>>>>, K14 extends PropsOfType<T, Param1<import("./curry.generated").Tail13<Parameters<TFn_13>>>>>(fn: TFn_13, key1: K1_13, key2: K2_12, key3: K3_11, key4: K4_10, key5: K5_9, key6: K6_8, key7: K7_7, key8: K8_6, key9: K9_5, key10: K10_4, key11: K11_3, key12: K12_2, key13: K13_1, key14: K14): IFunctionResolver<Curried14<TFn_13>>;
|
|
38
|
+
/** Curry out the first 15 parameters from the method */
|
|
39
|
+
curry15<TFn_14 extends (...args: any[]) => any, K1_14 extends PropsOfType<T, Param1<Parameters<TFn_14>>>, K2_13 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_14>>>>, K3_12 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_14>>>>, K4_11 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_14>>>>, K5_10 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_14>>>>, K6_9 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_14>>>>, K7_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_14>>>>, K8_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_14>>>>, K9_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_14>>>>, K10_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_14>>>>, K11_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail10<Parameters<TFn_14>>>>, K12_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail11<Parameters<TFn_14>>>>, K13_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail12<Parameters<TFn_14>>>>, K14_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail13<Parameters<TFn_14>>>>, K15 extends PropsOfType<T, Param1<import("./curry.generated").Tail14<Parameters<TFn_14>>>>>(fn: TFn_14, key1: K1_14, key2: K2_13, key3: K3_12, key4: K4_11, key5: K5_10, key6: K6_9, key7: K7_8, key8: K8_7, key9: K9_6, key10: K10_5, key11: K11_4, key12: K12_3, key13: K13_2, key14: K14_1, key15: K15): IFunctionResolver<Curried15<TFn_14>>;
|
|
40
|
+
/** Curry out the first 16 parameters from the method */
|
|
41
|
+
curry16<TFn_15 extends (...args: any[]) => any, K1_15 extends PropsOfType<T, Param1<Parameters<TFn_15>>>, K2_14 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_15>>>>, K3_13 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_15>>>>, K4_12 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_15>>>>, K5_11 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_15>>>>, K6_10 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_15>>>>, K7_9 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_15>>>>, K8_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_15>>>>, K9_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_15>>>>, K10_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_15>>>>, K11_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail10<Parameters<TFn_15>>>>, K12_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail11<Parameters<TFn_15>>>>, K13_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail12<Parameters<TFn_15>>>>, K14_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail13<Parameters<TFn_15>>>>, K15_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail14<Parameters<TFn_15>>>>, K16 extends PropsOfType<T, Param1<import("./curry.generated").Tail15<Parameters<TFn_15>>>>>(fn: TFn_15, key1: K1_15, key2: K2_14, key3: K3_13, key4: K4_12, key5: K5_11, key6: K6_10, key7: K7_9, key8: K8_8, key9: K9_7, key10: K10_6, key11: K11_5, key12: K12_4, key13: K13_3, key14: K14_2, key15: K15_1, key16: K16): IFunctionResolver<Curried16<TFn_15>>;
|
|
42
|
+
/** Curry out the first 17 parameters from the method */
|
|
43
|
+
curry17<TFn_16 extends (...args: any[]) => any, K1_16 extends PropsOfType<T, Param1<Parameters<TFn_16>>>, K2_15 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_16>>>>, K3_14 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_16>>>>, K4_13 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_16>>>>, K5_12 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_16>>>>, K6_11 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_16>>>>, K7_10 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_16>>>>, K8_9 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_16>>>>, K9_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_16>>>>, K10_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_16>>>>, K11_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail10<Parameters<TFn_16>>>>, K12_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail11<Parameters<TFn_16>>>>, K13_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail12<Parameters<TFn_16>>>>, K14_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail13<Parameters<TFn_16>>>>, K15_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail14<Parameters<TFn_16>>>>, K16_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail15<Parameters<TFn_16>>>>, K17 extends PropsOfType<T, Param1<import("./curry.generated").Tail16<Parameters<TFn_16>>>>>(fn: TFn_16, key1: K1_16, key2: K2_15, key3: K3_14, key4: K4_13, key5: K5_12, key6: K6_11, key7: K7_10, key8: K8_9, key9: K9_8, key10: K10_7, key11: K11_6, key12: K12_5, key13: K13_4, key14: K14_3, key15: K15_2, key16: K16_1, key17: K17): IFunctionResolver<Curried17<TFn_16>>;
|
|
44
|
+
/** Curry out the first 18 parameters from the method */
|
|
45
|
+
curry18<TFn_17 extends (...args: any[]) => any, K1_17 extends PropsOfType<T, Param1<Parameters<TFn_17>>>, K2_16 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_17>>>>, K3_15 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_17>>>>, K4_14 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_17>>>>, K5_13 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_17>>>>, K6_12 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_17>>>>, K7_11 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_17>>>>, K8_10 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_17>>>>, K9_9 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_17>>>>, K10_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_17>>>>, K11_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail10<Parameters<TFn_17>>>>, K12_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail11<Parameters<TFn_17>>>>, K13_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail12<Parameters<TFn_17>>>>, K14_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail13<Parameters<TFn_17>>>>, K15_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail14<Parameters<TFn_17>>>>, K16_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail15<Parameters<TFn_17>>>>, K17_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail16<Parameters<TFn_17>>>>, K18 extends PropsOfType<T, Param1<import("./curry.generated").Tail17<Parameters<TFn_17>>>>>(fn: TFn_17, key1: K1_17, key2: K2_16, key3: K3_15, key4: K4_14, key5: K5_13, key6: K6_12, key7: K7_11, key8: K8_10, key9: K9_9, key10: K10_8, key11: K11_7, key12: K12_6, key13: K13_5, key14: K14_4, key15: K15_3, key16: K16_2, key17: K17_1, key18: K18): IFunctionResolver<Curried18<TFn_17>>;
|
|
46
|
+
/** Curry out the first 19 parameters from the method */
|
|
47
|
+
curry19<TFn_18 extends (...args: any[]) => any, K1_18 extends PropsOfType<T, Param1<Parameters<TFn_18>>>, K2_17 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_18>>>>, K3_16 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_18>>>>, K4_15 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_18>>>>, K5_14 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_18>>>>, K6_13 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_18>>>>, K7_12 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_18>>>>, K8_11 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_18>>>>, K9_10 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_18>>>>, K10_9 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_18>>>>, K11_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail10<Parameters<TFn_18>>>>, K12_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail11<Parameters<TFn_18>>>>, K13_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail12<Parameters<TFn_18>>>>, K14_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail13<Parameters<TFn_18>>>>, K15_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail14<Parameters<TFn_18>>>>, K16_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail15<Parameters<TFn_18>>>>, K17_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail16<Parameters<TFn_18>>>>, K18_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail17<Parameters<TFn_18>>>>, K19 extends PropsOfType<T, Param1<import("./curry.generated").Tail18<Parameters<TFn_18>>>>>(fn: TFn_18, key1: K1_18, key2: K2_17, key3: K3_16, key4: K4_15, key5: K5_14, key6: K6_13, key7: K7_12, key8: K8_11, key9: K9_10, key10: K10_9, key11: K11_8, key12: K12_7, key13: K13_6, key14: K14_5, key15: K15_4, key16: K16_3, key17: K17_2, key18: K18_1, key19: K19): IFunctionResolver<Curried19<TFn_18>>;
|
|
48
|
+
/** Curry out the first 20 parameters from the method */
|
|
49
|
+
curry20<TFn_19 extends (...args: any[]) => any, K1_19 extends PropsOfType<T, Param1<Parameters<TFn_19>>>, K2_18 extends PropsOfType<T, Param1<import("./curry.generated").Tail1<Parameters<TFn_19>>>>, K3_17 extends PropsOfType<T, Param1<import("./curry.generated").Tail2<Parameters<TFn_19>>>>, K4_16 extends PropsOfType<T, Param1<import("./curry.generated").Tail3<Parameters<TFn_19>>>>, K5_15 extends PropsOfType<T, Param1<import("./curry.generated").Tail4<Parameters<TFn_19>>>>, K6_14 extends PropsOfType<T, Param1<import("./curry.generated").Tail5<Parameters<TFn_19>>>>, K7_13 extends PropsOfType<T, Param1<import("./curry.generated").Tail6<Parameters<TFn_19>>>>, K8_12 extends PropsOfType<T, Param1<import("./curry.generated").Tail7<Parameters<TFn_19>>>>, K9_11 extends PropsOfType<T, Param1<import("./curry.generated").Tail8<Parameters<TFn_19>>>>, K10_10 extends PropsOfType<T, Param1<import("./curry.generated").Tail9<Parameters<TFn_19>>>>, K11_9 extends PropsOfType<T, Param1<import("./curry.generated").Tail10<Parameters<TFn_19>>>>, K12_8 extends PropsOfType<T, Param1<import("./curry.generated").Tail11<Parameters<TFn_19>>>>, K13_7 extends PropsOfType<T, Param1<import("./curry.generated").Tail12<Parameters<TFn_19>>>>, K14_6 extends PropsOfType<T, Param1<import("./curry.generated").Tail13<Parameters<TFn_19>>>>, K15_5 extends PropsOfType<T, Param1<import("./curry.generated").Tail14<Parameters<TFn_19>>>>, K16_4 extends PropsOfType<T, Param1<import("./curry.generated").Tail15<Parameters<TFn_19>>>>, K17_3 extends PropsOfType<T, Param1<import("./curry.generated").Tail16<Parameters<TFn_19>>>>, K18_2 extends PropsOfType<T, Param1<import("./curry.generated").Tail17<Parameters<TFn_19>>>>, K19_1 extends PropsOfType<T, Param1<import("./curry.generated").Tail18<Parameters<TFn_19>>>>, K20 extends PropsOfType<T, Param1<import("./curry.generated").Tail19<Parameters<TFn_19>>>>>(fn: TFn_19, key1: K1_19, key2: K2_18, key3: K3_17, key4: K4_16, key5: K5_15, key6: K6_14, key7: K7_13, key8: K8_12, key9: K9_11, key10: K10_10, key11: K11_9, key12: K12_8, key13: K13_7, key14: K14_6, key15: K15_5, key16: K16_4, key17: K17_3, key18: K18_2, key19: K19_1, key20: K20): IFunctionResolver<Curried20<TFn_19>>;
|
|
50
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.containerRegisterFunctionResolverInternal = void 0;
|
|
4
|
+
function containerRegisterFunctionResolverInternal(curryInner) {
|
|
5
|
+
return {
|
|
6
|
+
/** Curry out the first parameter from the method */
|
|
7
|
+
curry1: function (fn, key1) {
|
|
8
|
+
return curryInner(fn, key1);
|
|
9
|
+
},
|
|
10
|
+
/** Curry out the first 2 parameters from the method */
|
|
11
|
+
curry2: function (fn, key1, key2) {
|
|
12
|
+
return curryInner(fn, key1, key2);
|
|
13
|
+
},
|
|
14
|
+
/** Curry out the first 3 parameters from the method */
|
|
15
|
+
curry3: function (fn, key1, key2, key3) {
|
|
16
|
+
return curryInner(fn, key1, key2, key3);
|
|
17
|
+
},
|
|
18
|
+
/** Curry out the first 4 parameters from the method */
|
|
19
|
+
curry4: function (fn, key1, key2, key3, key4) {
|
|
20
|
+
return curryInner(fn, key1, key2, key3, key4);
|
|
21
|
+
},
|
|
22
|
+
/** Curry out the first 5 parameters from the method */
|
|
23
|
+
curry5: function (fn, key1, key2, key3, key4, key5) {
|
|
24
|
+
return curryInner(fn, key1, key2, key3, key4, key5);
|
|
25
|
+
},
|
|
26
|
+
/** Curry out the first 6 parameters from the method */
|
|
27
|
+
curry6: function (fn, key1, key2, key3, key4, key5, key6) {
|
|
28
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6);
|
|
29
|
+
},
|
|
30
|
+
/** Curry out the first 7 parameters from the method */
|
|
31
|
+
curry7: function (fn, key1, key2, key3, key4, key5, key6, key7) {
|
|
32
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7);
|
|
33
|
+
},
|
|
34
|
+
/** Curry out the first 8 parameters from the method */
|
|
35
|
+
curry8: function (fn, key1, key2, key3, key4, key5, key6, key7, key8) {
|
|
36
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8);
|
|
37
|
+
},
|
|
38
|
+
/** Curry out the first 9 parameters from the method */
|
|
39
|
+
curry9: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9) {
|
|
40
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9);
|
|
41
|
+
},
|
|
42
|
+
/** Curry out the first 10 parameters from the method */
|
|
43
|
+
curry10: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10) {
|
|
44
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10);
|
|
45
|
+
},
|
|
46
|
+
/** Curry out the first 11 parameters from the method */
|
|
47
|
+
curry11: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11) {
|
|
48
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11);
|
|
49
|
+
},
|
|
50
|
+
/** Curry out the first 12 parameters from the method */
|
|
51
|
+
curry12: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12) {
|
|
52
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12);
|
|
53
|
+
},
|
|
54
|
+
/** Curry out the first 13 parameters from the method */
|
|
55
|
+
curry13: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13) {
|
|
56
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13);
|
|
57
|
+
},
|
|
58
|
+
/** Curry out the first 14 parameters from the method */
|
|
59
|
+
curry14: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14) {
|
|
60
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14);
|
|
61
|
+
},
|
|
62
|
+
/** Curry out the first 15 parameters from the method */
|
|
63
|
+
curry15: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15) {
|
|
64
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15);
|
|
65
|
+
},
|
|
66
|
+
/** Curry out the first 16 parameters from the method */
|
|
67
|
+
curry16: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16) {
|
|
68
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16);
|
|
69
|
+
},
|
|
70
|
+
/** Curry out the first 17 parameters from the method */
|
|
71
|
+
curry17: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17) {
|
|
72
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17);
|
|
73
|
+
},
|
|
74
|
+
/** Curry out the first 18 parameters from the method */
|
|
75
|
+
curry18: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18) {
|
|
76
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18);
|
|
77
|
+
},
|
|
78
|
+
/** Curry out the first 19 parameters from the method */
|
|
79
|
+
curry19: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19) {
|
|
80
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19);
|
|
81
|
+
},
|
|
82
|
+
/** Curry out the first 20 parameters from the method */
|
|
83
|
+
curry20: function (fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19, key20) {
|
|
84
|
+
return curryInner(fn, key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19, key20);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
exports.containerRegisterFunctionResolverInternal = containerRegisterFunctionResolverInternal;
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rocketmakers/ioc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
+
"start-test": "npm run build && node lib/test.js",
|
|
7
8
|
"start": "npm run build && node lib/index.js",
|
|
8
9
|
"build": "tsc -p source",
|
|
9
10
|
"test": "npm run build && ava --verbose"
|
|
@@ -14,12 +15,12 @@
|
|
|
14
15
|
"dependencies": {
|
|
15
16
|
"inversify": "5.0.5",
|
|
16
17
|
"reflect-metadata": "^0.1.13",
|
|
17
|
-
"tslib": "^2.1
|
|
18
|
+
"tslib": "^2.3.1"
|
|
18
19
|
},
|
|
19
20
|
"devDependencies": {
|
|
20
21
|
"@types/node": "^14.14.31",
|
|
21
22
|
"ava": "^3.15.0",
|
|
22
|
-
"typescript": "
|
|
23
|
+
"typescript": "4.6.3",
|
|
23
24
|
"typescript-json-schema": "0.43.0"
|
|
24
25
|
},
|
|
25
26
|
"publishConfig": {
|