@forge/resolver 1.7.1 → 1.8.0-next.0
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/CHANGELOG.md +6 -0
- package/LICENSE.txt +1 -1
- package/out/index.d.ts +35 -1
- package/out/index.d.ts.map +1 -1
- package/out/index.js +8 -0
- package/out/shared/index.d.ts +3 -0
- package/out/shared/index.d.ts.map +1 -1
- package/out/shared/index.js +3 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/LICENSE.txt
CHANGED
package/out/index.d.ts
CHANGED
|
@@ -16,13 +16,47 @@ declare type DefinitionsHandler = (payload: InvokePayload<unknown>, backendRunti
|
|
|
16
16
|
export default class Resolver {
|
|
17
17
|
private functions;
|
|
18
18
|
constructor();
|
|
19
|
-
define(functionKey: string, cb: ResolverFunction<
|
|
19
|
+
define(functionKey: string, cb: ResolverFunction<any, any>): this;
|
|
20
|
+
/**
|
|
21
|
+
* Defines a resolver with explicit payload and return types.
|
|
22
|
+
*
|
|
23
|
+
* The first generic is the payload shape and the second generic is the return type.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* type Payload = { name: string };
|
|
27
|
+
* type Response = { message: string };
|
|
28
|
+
* resolver.define<Payload, Response>('greet', ({ payload }) => ({
|
|
29
|
+
* message: `Hello ${payload.name}`
|
|
30
|
+
* }));
|
|
31
|
+
*/
|
|
32
|
+
define<Payload, Result = Response>(functionKey: string, cb: ResolverFunction<Payload, Result>): this;
|
|
33
|
+
/**
|
|
34
|
+
* Defines a resolver using the return-only generic form.
|
|
35
|
+
*
|
|
36
|
+
* The single type argument is the return type.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* type Response = { message: string };
|
|
40
|
+
* resolver.define<Response>('greet', () => ({ message: 'ok' }));
|
|
41
|
+
*/
|
|
42
|
+
define<Result = Response>(functionKey: string, cb: ResolverFunction<any, Result>): this;
|
|
20
43
|
private getFunction;
|
|
21
44
|
private sanitizeObject;
|
|
22
45
|
getDefinitions(): DefinitionsHandler;
|
|
23
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Given a type specialising Definitions shared between frontend and backend,
|
|
49
|
+
* Handlers will return a type for a record of resolver functions that are
|
|
50
|
+
* needed to implement this on the backend.
|
|
51
|
+
*/
|
|
24
52
|
export declare type Handlers<D extends Definitions> = {
|
|
25
53
|
[Def in keyof D & string]: ResolverFunction<DefArgument<D, Def>, DefResult<D, Def>>;
|
|
26
54
|
};
|
|
55
|
+
/**
|
|
56
|
+
* Creates resolver definitions corresponding to a given Definitions type.
|
|
57
|
+
*
|
|
58
|
+
* @param handlers Resolver functions implementing the definitions
|
|
59
|
+
* @returns Resolver definitions
|
|
60
|
+
*/
|
|
27
61
|
export declare function makeResolver<D extends Definitions>(handlers: Handlers<D>): DefinitionsHandler;
|
|
28
62
|
//# sourceMappingURL=index.d.ts.map
|
package/out/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEtF,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,aAAK,aAAa,CAAC,QAAQ,IAAI;IAC7B,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,QAAQ,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAAC;AAE9D,oBAAY,gBAAgB,CAAC,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,IAAI,CAChE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KACvB,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE9B,aAAK,kBAAkB,GAAG,CACxB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,OAAO,CAAC,SAAS,CAAqD;;IAM/D,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEtF,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,aAAK,aAAa,CAAC,QAAQ,IAAI;IAC7B,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,QAAQ,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAAC;AAE9D,oBAAY,gBAAgB,CAAC,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,IAAI,CAChE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KACvB,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE9B,aAAK,kBAAkB,GAAG,CACxB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,OAAO,CAAC,SAAS,CAAqD;;IAM/D,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI;IAExE;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI;IAE3G;;;;;;;;OAQG;IACI,MAAM,CAAC,MAAM,GAAG,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IAe9F,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;IAIf,cAAc,IAAI,kBAAkB;CAyB5C;AAED;;;;GAIG;AACH,oBAAY,QAAQ,CAAC,CAAC,SAAS,WAAW,IAAI;KAC3C,GAAG,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;CACpF,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAM7F"}
|
package/out/index.js
CHANGED
|
@@ -13,6 +13,8 @@ class Resolver {
|
|
|
13
13
|
if (functionKey in this.functions) {
|
|
14
14
|
throw new Error(`Resolver definition '${functionKey}' already exists.`);
|
|
15
15
|
}
|
|
16
|
+
// Individual resolver functions are not type-checked inside the array. The
|
|
17
|
+
// types are only checked when adding them via makeResolver.
|
|
16
18
|
this.functions[functionKey] = cb;
|
|
17
19
|
return this;
|
|
18
20
|
}
|
|
@@ -47,6 +49,12 @@ class Resolver {
|
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
exports.default = Resolver;
|
|
52
|
+
/**
|
|
53
|
+
* Creates resolver definitions corresponding to a given Definitions type.
|
|
54
|
+
*
|
|
55
|
+
* @param handlers Resolver functions implementing the definitions
|
|
56
|
+
* @returns Resolver definitions
|
|
57
|
+
*/
|
|
50
58
|
function makeResolver(handlers) {
|
|
51
59
|
const resolver = new Resolver();
|
|
52
60
|
for (const key of Object.keys(handlers)) {
|
package/out/shared/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAY,OAAO,GAAG;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,oBAAY,OAAO,CAAC,QAAQ,GAAG,GAAG,IAAI;IACpC,OAAO,EAAE,QAAQ,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAIF,oBAAY,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC;AAIhE,oBAAY,YAAY,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,SAAS,MAAM,CAAC,GAAG,MAAM,IAC1E,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,oBAAY,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,SAAS,MAAM,CAAC,GAAG,MAAM,IAAI,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,oBAAY,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,SAAS,MAAM,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC"}
|
package/out/shared/index.js
CHANGED