@arinoto/cdk-arch 0.4.0 → 0.6.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.
@@ -1,10 +1,13 @@
1
1
  import { Construct } from 'constructs';
2
2
  export type FunctionHandler<TArgs extends any[] = any[], TReturn = any> = (...args: TArgs) => Promise<TReturn>;
3
+ export type FunctionRuntimeContextMarker = {
4
+ runtimeContext?: boolean;
5
+ };
3
6
  /**
4
7
  * Represents a serverless function or handler in the architecture.
5
8
  * Generic over argument types (TArgs) and return type (TReturn).
6
9
  */
7
- export declare class Function<TArgs extends any[] = any[], TReturn = any> extends Construct {
10
+ export declare class Function<TArgs extends any[] = any[], TReturn = any, TRuntimeContext extends FunctionRuntimeContextMarker = any> extends Construct {
8
11
  readonly handler: FunctionHandler<TArgs, TReturn>;
9
12
  private _overload?;
10
13
  constructor(scope: Construct, id: string, handler: FunctionHandler<TArgs, TReturn>);
@@ -15,6 +18,7 @@ export declare class Function<TArgs extends any[] = any[], TReturn = any> extend
15
18
  overload(handler: FunctionHandler<TArgs, TReturn>): void;
16
19
  hasOverload(): boolean;
17
20
  invoke(...args: TArgs): Promise<TReturn>;
21
+ invokeWithRuntimeContext(args: TArgs, ctx: TRuntimeContext): Promise<TReturn>;
18
22
  }
19
23
  /**
20
24
  * A placeholder function that must be overloaded before use.
@@ -1 +1 @@
1
- {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../src/function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/G;;;GAGG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,CAAE,SAAQ,SAAS;IACjF,SAAgB,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,CAAC,SAAS,CAAC,CAAkC;gBAExC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;IAKlF;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI;IAIxD,WAAW,IAAI,OAAO;IAIf,MAAM,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;CAIhD;AAED;;;GAGG;AACH,qBAAa,WAAW,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,CAAE,SAAQ,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;gBACvF,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM;CAGzC"}
1
+ {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../src/function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/G,MAAM,MAAM,4BAA4B,GAAG;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAC,CAAC;AAEvE;;;GAGG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,eAAe,SAAS,4BAA4B,GAAG,GAAG,CAAE,SAAQ,SAAS;IAC7I,SAAgB,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,CAAC,SAAS,CAAC,CAAkC;gBAExC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;IAKlF;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI;IAIxD,WAAW,IAAI,OAAO;IAIf,MAAM,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxC,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;CAIrF;AAED;;;GAGG;AACH,qBAAa,WAAW,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,CAAE,SAAQ,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;gBACvF,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM;CAGzC"}
package/dist/function.js CHANGED
@@ -23,7 +23,11 @@ class Function extends constructs_1.Construct {
23
23
  }
24
24
  invoke(...args) {
25
25
  const fn = this._overload ?? this.handler;
26
- return Promise.resolve(fn(...args));
26
+ return fn(...args);
27
+ }
28
+ invokeWithRuntimeContext(args, ctx) {
29
+ const fn = this._overload ?? this.handler;
30
+ return fn.apply({ runtimeContext: true, ...ctx }, args);
27
31
  }
28
32
  }
29
33
  exports.Function = Function;
@@ -37,4 +41,4 @@ class TBDFunction extends Function {
37
41
  }
38
42
  }
39
43
  exports.TBDFunction = TBDFunction;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBSXZDOzs7R0FHRztBQUNILE1BQWEsUUFBcUQsU0FBUSxzQkFBUztJQUlqRixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLE9BQXdDO1FBQ2hGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxPQUF3QztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUM7SUFDdEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUFHLElBQVc7UUFDMUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzFDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQXpCRCw0QkF5QkM7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLFdBQXdELFNBQVEsUUFBd0I7SUFDbkcsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSw0REFBNEQsQ0FBQyxDQUFDLENBQW9DLENBQUMsQ0FBQztJQUN0SyxDQUFDO0NBQ0Y7QUFKRCxrQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgdHlwZSBGdW5jdGlvbkhhbmRsZXI8VEFyZ3MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLCBUUmV0dXJuID0gYW55PiA9ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2VydmVybGVzcyBmdW5jdGlvbiBvciBoYW5kbGVyIGluIHRoZSBhcmNoaXRlY3R1cmUuXG4gKiBHZW5lcmljIG92ZXIgYXJndW1lbnQgdHlwZXMgKFRBcmdzKSBhbmQgcmV0dXJuIHR5cGUgKFRSZXR1cm4pLlxuICovXG5leHBvcnQgY2xhc3MgRnVuY3Rpb248VEFyZ3MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLCBUUmV0dXJuID0gYW55PiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBoYW5kbGVyOiBGdW5jdGlvbkhhbmRsZXI8VEFyZ3MsIFRSZXR1cm4+O1xuICBwcml2YXRlIF9vdmVybG9hZD86IEZ1bmN0aW9uSGFuZGxlcjxUQXJncywgVFJldHVybj47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgaGFuZGxlcjogRnVuY3Rpb25IYW5kbGVyPFRBcmdzLCBUUmV0dXJuPikge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5oYW5kbGVyID0gaGFuZGxlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgZnVuY3Rpb24ncyBpbXBsZW1lbnRhdGlvbiBhdCBydW50aW1lLlxuICAgKiBVc2VkIGZvciByZXBsYWNpbmcgaW4tbWVtb3J5IGltcGxlbWVudGF0aW9ucyB3aXRoIHN0b3JhZ2UgYWRhcHRlcnMgb3IgSFRUUCBjYWxscy5cbiAgICovXG4gIG92ZXJsb2FkKGhhbmRsZXI6IEZ1bmN0aW9uSGFuZGxlcjxUQXJncywgVFJldHVybj4pOiB2b2lkIHtcbiAgICB0aGlzLl9vdmVybG9hZCA9IGhhbmRsZXI7XG4gIH1cblxuICBoYXNPdmVybG9hZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxvYWQgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpbnZva2UoLi4uYXJnczogVEFyZ3MpOiBQcm9taXNlPFRSZXR1cm4+IHtcbiAgICBjb25zdCBmbiA9IHRoaXMuX292ZXJsb2FkID8/IHRoaXMuaGFuZGxlcjtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZuKC4uLmFyZ3MpKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgcGxhY2Vob2xkZXIgZnVuY3Rpb24gdGhhdCBtdXN0IGJlIG92ZXJsb2FkZWQgYmVmb3JlIHVzZS5cbiAqIFVzZSB0aGlzIHdoZW4gZGVmaW5pbmcgYW4gQVBJIGNvbnRyYWN0IHdpdGhvdXQgcHJvdmlkaW5nIGFuIGltcGxlbWVudGF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgVEJERnVuY3Rpb248VEFyZ3MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLCBUUmV0dXJuID0gYW55PiBleHRlbmRzIEZ1bmN0aW9uPFRBcmdzLCBUUmV0dXJuPiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsICgoKSA9PiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoYEZ1bmN0aW9uICcke2lkfScgaXMgbm90IGltcGxlbWVudGVkLiBQcm92aWRlIGFuIG92ZXJsb2FkIGJlZm9yZSBpbnZva2luZy5gKSkpIGFzIEZ1bmN0aW9uSGFuZGxlcjxUQXJncywgVFJldHVybj4pO1xuICB9XG59XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBTXZDOzs7R0FHRztBQUNILE1BQWEsUUFBaUgsU0FBUSxzQkFBUztJQUk3SSxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLE9BQXdDO1FBQ2hGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxPQUF3QztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUM7SUFDdEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUFHLElBQVc7UUFDMUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVNLHdCQUF3QixDQUFDLElBQVcsRUFBRSxHQUFvQjtRQUMvRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDMUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDRjtBQTlCRCw0QkE4QkM7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLFdBQXdELFNBQVEsUUFBd0I7SUFDbkcsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSw0REFBNEQsQ0FBQyxDQUFDLENBQW9DLENBQUMsQ0FBQztJQUN0SyxDQUFDO0NBQ0Y7QUFKRCxrQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgdHlwZSBGdW5jdGlvbkhhbmRsZXI8VEFyZ3MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLCBUUmV0dXJuID0gYW55PiA9ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPjtcblxuZXhwb3J0IHR5cGUgRnVuY3Rpb25SdW50aW1lQ29udGV4dE1hcmtlciA9IHsgcnVudGltZUNvbnRleHQ/OiBib29sZWFufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2VydmVybGVzcyBmdW5jdGlvbiBvciBoYW5kbGVyIGluIHRoZSBhcmNoaXRlY3R1cmUuXG4gKiBHZW5lcmljIG92ZXIgYXJndW1lbnQgdHlwZXMgKFRBcmdzKSBhbmQgcmV0dXJuIHR5cGUgKFRSZXR1cm4pLlxuICovXG5leHBvcnQgY2xhc3MgRnVuY3Rpb248VEFyZ3MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLCBUUmV0dXJuID0gYW55LCBUUnVudGltZUNvbnRleHQgZXh0ZW5kcyBGdW5jdGlvblJ1bnRpbWVDb250ZXh0TWFya2VyID0gYW55PiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBoYW5kbGVyOiBGdW5jdGlvbkhhbmRsZXI8VEFyZ3MsIFRSZXR1cm4+O1xuICBwcml2YXRlIF9vdmVybG9hZD86IEZ1bmN0aW9uSGFuZGxlcjxUQXJncywgVFJldHVybj47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgaGFuZGxlcjogRnVuY3Rpb25IYW5kbGVyPFRBcmdzLCBUUmV0dXJuPikge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5oYW5kbGVyID0gaGFuZGxlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgZnVuY3Rpb24ncyBpbXBsZW1lbnRhdGlvbiBhdCBydW50aW1lLlxuICAgKiBVc2VkIGZvciByZXBsYWNpbmcgaW4tbWVtb3J5IGltcGxlbWVudGF0aW9ucyB3aXRoIHN0b3JhZ2UgYWRhcHRlcnMgb3IgSFRUUCBjYWxscy5cbiAgICovXG4gIG92ZXJsb2FkKGhhbmRsZXI6IEZ1bmN0aW9uSGFuZGxlcjxUQXJncywgVFJldHVybj4pOiB2b2lkIHtcbiAgICB0aGlzLl9vdmVybG9hZCA9IGhhbmRsZXI7XG4gIH1cblxuICBoYXNPdmVybG9hZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxvYWQgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpbnZva2UoLi4uYXJnczogVEFyZ3MpOiBQcm9taXNlPFRSZXR1cm4+IHtcbiAgICBjb25zdCBmbiA9IHRoaXMuX292ZXJsb2FkID8/IHRoaXMuaGFuZGxlcjtcbiAgICByZXR1cm4gZm4oLi4uYXJncyk7XG4gIH1cblxuICBwdWJsaWMgaW52b2tlV2l0aFJ1bnRpbWVDb250ZXh0KGFyZ3M6IFRBcmdzLCBjdHg6IFRSdW50aW1lQ29udGV4dCk6IFByb21pc2U8VFJldHVybj4ge1xuICAgIGNvbnN0IGZuID0gdGhpcy5fb3ZlcmxvYWQgPz8gdGhpcy5oYW5kbGVyO1xuICAgIHJldHVybiBmbi5hcHBseSh7IHJ1bnRpbWVDb250ZXh0OiB0cnVlLCAuLi5jdHggfSwgYXJncyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHBsYWNlaG9sZGVyIGZ1bmN0aW9uIHRoYXQgbXVzdCBiZSBvdmVybG9hZGVkIGJlZm9yZSB1c2UuXG4gKiBVc2UgdGhpcyB3aGVuIGRlZmluaW5nIGFuIEFQSSBjb250cmFjdCB3aXRob3V0IHByb3ZpZGluZyBhbiBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFRCREZ1bmN0aW9uPFRBcmdzIGV4dGVuZHMgYW55W10gPSBhbnlbXSwgVFJldHVybiA9IGFueT4gZXh0ZW5kcyBGdW5jdGlvbjxUQXJncywgVFJldHVybj4ge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCAoKCkgPT4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGBGdW5jdGlvbiAnJHtpZH0nIGlzIG5vdCBpbXBsZW1lbnRlZC4gUHJvdmlkZSBhbiBvdmVybG9hZCBiZWZvcmUgaW52b2tpbmcuYCkpKSBhcyBGdW5jdGlvbkhhbmRsZXI8VEFyZ3MsIFRSZXR1cm4+KTtcbiAgfVxufVxuIl19
@@ -15,7 +15,7 @@ const httpHandler = (endpoint, container, routeName, fetcher = () => ({ fetch })
15
15
  method: method || 'GET',
16
16
  headers: { 'Content-Type': 'application/json' },
17
17
  ...((method === 'POST' || method === 'PUT') && args.length > pathParams.length
18
- ? { body: JSON.stringify(args[pathParams.length]) }
18
+ ? { body: JSON.stringify(args.slice(pathParams.length)) }
19
19
  : {})
20
20
  };
21
21
  console.log('HTTP handler. Will fetch', { url, options });
@@ -55,4 +55,4 @@ const createHttpBindings = (endpoint, container, routeNames, fetcher = () => ({
55
55
  }, {});
56
56
  };
57
57
  exports.createHttpBindings = createHttpBindings;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2h0dHAtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQTs7O0dBR0c7QUFDSSxNQUFNLFdBQVcsR0FBRyxDQUl6QixRQUF5QixFQUN6QixTQUFnQyxFQUNoQyxTQUFZLEVBQ1osVUFBbUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQ1AsRUFBRTtJQUM3QixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFbEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUU7UUFDdkMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FDM0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNsRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQzdCLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBZ0I7WUFDM0IsTUFBTSxFQUFFLE1BQU0sSUFBSSxLQUFLO1lBQ3ZCLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtZQUMvQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNO2dCQUM1RSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7Z0JBQ25ELENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDUixDQUFDO1FBRUYsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9HLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUM7SUFFRixPQUFPLE9BQW9DLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBdkNXLFFBQUEsV0FBVyxlQXVDdEI7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNJLE1BQU0sa0JBQWtCLEdBQUcsQ0FJaEMsUUFBeUIsRUFDekIsU0FBZ0MsRUFDaEMsVUFBd0IsRUFDeEIsVUFBbUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQ0QsRUFBRTtJQUNuQyxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQ3RCLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ1osR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsbUJBQVcsRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1RCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFDRCxFQUFxQyxDQUN0QyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBaEJXLFFBQUEsa0JBQWtCLHNCQWdCN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlDb250YWluZXIsIEFwaVJvdXRlcywgUm91dGVIYW5kbGVycyB9IGZyb20gJy4vYXBpLWNvbnRhaW5lcic7XG5pbXBvcnQgeyBGdW5jdGlvbkhhbmRsZXIgfSBmcm9tICcuL2Z1bmN0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VFbmRwb2ludCB9IGZyb20gJy4vYmluZGluZyc7XG5cbmV4cG9ydCB0eXBlIEZldGNoZXIgPSAoKSA9PiB7IGZldGNoOiB0eXBlb2YgZmV0Y2ggfTtcblxuLyoqXG4gKiBDcmVhdGUgYW4gSFRUUCBoYW5kbGVyIGZvciBhIHJvdXRlIGJ5IG5hbWUuXG4gKiBMb29rcyB1cCB0aGUgcm91dGUgcGF0aCBmcm9tIHRoZSBjb250YWluZXIncyByZWdpc3RyeS5cbiAqL1xuZXhwb3J0IGNvbnN0IGh0dHBIYW5kbGVyID0gPFxuICBUUm91dGVzIGV4dGVuZHMgQXBpUm91dGVzLFxuICBLIGV4dGVuZHMga2V5b2YgVFJvdXRlcyAmIHN0cmluZ1xuPihcbiAgZW5kcG9pbnQ6IFNlcnZpY2VFbmRwb2ludCxcbiAgY29udGFpbmVyOiBBcGlDb250YWluZXI8VFJvdXRlcz4sXG4gIHJvdXRlTmFtZTogSyxcbiAgZmV0Y2hlcjogRmV0Y2hlciA9ICgpID0+ICh7ZmV0Y2h9KVxuKTogUm91dGVIYW5kbGVyczxUUm91dGVzPltLXSA9PiB7XG4gIGNvbnN0IHJvdXRlID0gY29udGFpbmVyLmdldFJvdXRlKHJvdXRlTmFtZSk7XG5cbiAgY29uc3QgW21ldGhvZCwgcGF0aF0gPSByb3V0ZS5wYXRoLnNwbGl0KCcgJyk7XG4gIGNvbnN0IHBhdGhQYXJhbXMgPSBwYXRoLm1hdGNoKC9cXHsoXFx3KylcXH0vZykgfHwgW107XG5cbiAgY29uc3QgaGFuZGxlciA9IGFzeW5jICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGNvbnN0IHVybCA9IHBhdGhQYXJhbXMucmVkdWNlKFxuICAgICAgKHUsIHBhcmFtLCBpKSA9PiBhcmdzW2ldICE9PSB1bmRlZmluZWQgPyB1LnJlcGxhY2UocGFyYW0sIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYXJnc1tpXSkpKSA6IHUsXG4gICAgICBgJHtlbmRwb2ludC5iYXNlVXJsfSR7cGF0aH1gXG4gICAgKTtcblxuICAgIGNvbnN0IG9wdGlvbnM6IFJlcXVlc3RJbml0ID0ge1xuICAgICAgbWV0aG9kOiBtZXRob2QgfHwgJ0dFVCcsXG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgIC4uLigobWV0aG9kID09PSAnUE9TVCcgfHwgbWV0aG9kID09PSAnUFVUJykgJiYgYXJncy5sZW5ndGggPiBwYXRoUGFyYW1zLmxlbmd0aFxuICAgICAgICA/IHsgYm9keTogSlNPTi5zdHJpbmdpZnkoYXJnc1twYXRoUGFyYW1zLmxlbmd0aF0pIH1cbiAgICAgICAgOiB7fSlcbiAgICB9O1xuXG4gICAgY29uc29sZS5sb2coJ0hUVFAgaGFuZGxlci4gV2lsbCBmZXRjaCcsIHt1cmwsIG9wdGlvbnN9KTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoZXIoKS5mZXRjaCh1cmwsIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZW1vdGUgY2FsbCB0byAke3VybH0gd2l0aCAke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMpfSBmYWlsZWQ6ICR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpfWApO1xuICAgIH1cblxuICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gIH07XG5cbiAgcmV0dXJuIGhhbmRsZXIgYXMgUm91dGVIYW5kbGVyczxUUm91dGVzPltLXTtcbn07XG5cbi8qKlxuICogQ3JlYXRlIEhUVFAgYmluZGluZ3MgZm9yIG11bHRpcGxlIHJvdXRlcyBhcyBhIGNhbGxhYmxlIGNsaWVudC5cbiAqIFJldHVybnMgYSBzdHJvbmdseS10eXBlZCBvYmplY3Qgd2hlcmUgZWFjaCByb3V0ZSBuYW1lIG1hcHMgdG8gYW4gYXN5bmMgZnVuY3Rpb25cbiAqIHdpdGggdGhlIHNhbWUgc2lnbmF0dXJlIGFzIHRoZSBvcmlnaW5hbCBoYW5kbGVyLlxuICpcbiAqIEB0eXBlUGFyYW0gVFJvdXRlcyAtIFRoZSByb3V0ZXMgdHlwZSBmcm9tIHRoZSBBcGlDb250YWluZXJcbiAqIEB0eXBlUGFyYW0gSyAtIFRoZSBzdWJzZXQgb2Ygcm91dGUgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgY2xpZW50XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFwaSA9IG5ldyBBcGlDb250YWluZXIoYXJjaCwgJ2FwaScsIHtcbiAqICAgaGVsbG86IHsgcGF0aDogJ0dFVCAvdjEvYXBpL2hlbGxvL3tuYW1lfScsIGhhbmRsZXI6IGhlbGxvRnVuY3Rpb24gfSxcbiAqICAgaGVsbG9zOiB7IHBhdGg6ICdHRVQgL3YxL2FwaS9oZWxsb3MnLCBoYW5kbGVyOiBoZWxsb3NGdW5jdGlvbiB9XG4gKiB9KTtcbiAqXG4gKiBjb25zdCBjbGllbnQgPSBjcmVhdGVIdHRwQmluZGluZ3MoZW5kcG9pbnQsIGFwaSwgWydoZWxsbycsICdoZWxsb3MnXSk7XG4gKiBhd2FpdCBjbGllbnQuaGVsbG8oJ0pvaG4nKTsgIC8vIChuYW1lOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPlxuICogYXdhaXQgY2xpZW50LmhlbGxvcygpOyAgICAgICAvLyAoKSA9PiBQcm9taXNlPEdyZWV0aW5nW10+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUh0dHBCaW5kaW5ncyA9IDxcbiAgVFJvdXRlcyBleHRlbmRzIEFwaVJvdXRlcyxcbiAgSyBleHRlbmRzIGtleW9mIFRSb3V0ZXMgJiBzdHJpbmdcbj4oXG4gIGVuZHBvaW50OiBTZXJ2aWNlRW5kcG9pbnQsXG4gIGNvbnRhaW5lcjogQXBpQ29udGFpbmVyPFRSb3V0ZXM+LFxuICByb3V0ZU5hbWVzOiByZWFkb25seSBLW10sXG4gIGZldGNoZXI6IEZldGNoZXIgPSAoKSA9PiAoe2ZldGNofSlcbik6IFBpY2s8Um91dGVIYW5kbGVyczxUUm91dGVzPiwgSz4gPT4ge1xuICByZXR1cm4gcm91dGVOYW1lcy5yZWR1Y2UoXG4gICAgKGFjYywgbmFtZSkgPT4ge1xuICAgICAgYWNjW25hbWVdID0gaHR0cEhhbmRsZXIoZW5kcG9pbnQsIGNvbnRhaW5lciwgbmFtZSwgZmV0Y2hlcik7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgUGljazxSb3V0ZUhhbmRsZXJzPFRSb3V0ZXM+LCBLPlxuICApO1xufTtcbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2h0dHAtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQTs7O0dBR0c7QUFDSSxNQUFNLFdBQVcsR0FBRyxDQUl6QixRQUF5QixFQUN6QixTQUFnQyxFQUNoQyxTQUFZLEVBQ1osVUFBbUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQ1AsRUFBRTtJQUM3QixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFbEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUU7UUFDdkMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FDM0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNsRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQzdCLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBZ0I7WUFDM0IsTUFBTSxFQUFFLE1BQU0sSUFBSSxLQUFLO1lBQ3ZCLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtZQUMvQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNO2dCQUM1RSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO2dCQUN6RCxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1IsQ0FBQztRQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztRQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixHQUFHLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRyxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxPQUFvQyxDQUFDO0FBQzlDLENBQUMsQ0FBQztBQXZDVyxRQUFBLFdBQVcsZUF1Q3RCO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSSxNQUFNLGtCQUFrQixHQUFHLENBSWhDLFFBQXlCLEVBQ3pCLFNBQWdDLEVBQ2hDLFVBQXdCLEVBQ3hCLFVBQW1CLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUNELEVBQUU7SUFDbkMsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUN0QixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNaLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLG1CQUFXLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQ0QsRUFBcUMsQ0FDdEMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQWhCVyxRQUFBLGtCQUFrQixzQkFnQjdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpQ29udGFpbmVyLCBBcGlSb3V0ZXMsIFJvdXRlSGFuZGxlcnMgfSBmcm9tICcuL2FwaS1jb250YWluZXInO1xuaW1wb3J0IHsgRnVuY3Rpb25IYW5kbGVyIH0gZnJvbSAnLi9mdW5jdGlvbic7XG5pbXBvcnQgeyBTZXJ2aWNlRW5kcG9pbnQgfSBmcm9tICcuL2JpbmRpbmcnO1xuXG5leHBvcnQgdHlwZSBGZXRjaGVyID0gKCkgPT4geyBmZXRjaDogdHlwZW9mIGZldGNoIH07XG5cbi8qKlxuICogQ3JlYXRlIGFuIEhUVFAgaGFuZGxlciBmb3IgYSByb3V0ZSBieSBuYW1lLlxuICogTG9va3MgdXAgdGhlIHJvdXRlIHBhdGggZnJvbSB0aGUgY29udGFpbmVyJ3MgcmVnaXN0cnkuXG4gKi9cbmV4cG9ydCBjb25zdCBodHRwSGFuZGxlciA9IDxcbiAgVFJvdXRlcyBleHRlbmRzIEFwaVJvdXRlcyxcbiAgSyBleHRlbmRzIGtleW9mIFRSb3V0ZXMgJiBzdHJpbmdcbj4oXG4gIGVuZHBvaW50OiBTZXJ2aWNlRW5kcG9pbnQsXG4gIGNvbnRhaW5lcjogQXBpQ29udGFpbmVyPFRSb3V0ZXM+LFxuICByb3V0ZU5hbWU6IEssXG4gIGZldGNoZXI6IEZldGNoZXIgPSAoKSA9PiAoe2ZldGNofSlcbik6IFJvdXRlSGFuZGxlcnM8VFJvdXRlcz5bS10gPT4ge1xuICBjb25zdCByb3V0ZSA9IGNvbnRhaW5lci5nZXRSb3V0ZShyb3V0ZU5hbWUpO1xuXG4gIGNvbnN0IFttZXRob2QsIHBhdGhdID0gcm91dGUucGF0aC5zcGxpdCgnICcpO1xuICBjb25zdCBwYXRoUGFyYW1zID0gcGF0aC5tYXRjaCgvXFx7KFxcdyspXFx9L2cpIHx8IFtdO1xuXG4gIGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICBjb25zdCB1cmwgPSBwYXRoUGFyYW1zLnJlZHVjZShcbiAgICAgICh1LCBwYXJhbSwgaSkgPT4gYXJnc1tpXSAhPT0gdW5kZWZpbmVkID8gdS5yZXBsYWNlKHBhcmFtLCBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGFyZ3NbaV0pKSkgOiB1LFxuICAgICAgYCR7ZW5kcG9pbnQuYmFzZVVybH0ke3BhdGh9YFxuICAgICk7XG5cbiAgICBjb25zdCBvcHRpb25zOiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAgIG1ldGhvZDogbWV0aG9kIHx8ICdHRVQnLFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAuLi4oKG1ldGhvZCA9PT0gJ1BPU1QnIHx8IG1ldGhvZCA9PT0gJ1BVVCcpICYmIGFyZ3MubGVuZ3RoID4gcGF0aFBhcmFtcy5sZW5ndGhcbiAgICAgICAgPyB7IGJvZHk6IEpTT04uc3RyaW5naWZ5KGFyZ3Muc2xpY2UocGF0aFBhcmFtcy5sZW5ndGgpKSB9XG4gICAgICAgIDoge30pXG4gICAgfTtcblxuICAgIGNvbnNvbGUubG9nKCdIVFRQIGhhbmRsZXIuIFdpbGwgZmV0Y2gnLCB7dXJsLCBvcHRpb25zfSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaGVyKCkuZmV0Y2godXJsLCBvcHRpb25zKTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUmVtb3RlIGNhbGwgdG8gJHt1cmx9IHdpdGggJHtKU09OLnN0cmluZ2lmeShvcHRpb25zKX0gZmFpbGVkOiAke0pTT04uc3RyaW5naWZ5KHJlc3BvbnNlKX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xuICB9O1xuXG4gIHJldHVybiBoYW5kbGVyIGFzIFJvdXRlSGFuZGxlcnM8VFJvdXRlcz5bS107XG59O1xuXG4vKipcbiAqIENyZWF0ZSBIVFRQIGJpbmRpbmdzIGZvciBtdWx0aXBsZSByb3V0ZXMgYXMgYSBjYWxsYWJsZSBjbGllbnQuXG4gKiBSZXR1cm5zIGEgc3Ryb25nbHktdHlwZWQgb2JqZWN0IHdoZXJlIGVhY2ggcm91dGUgbmFtZSBtYXBzIHRvIGFuIGFzeW5jIGZ1bmN0aW9uXG4gKiB3aXRoIHRoZSBzYW1lIHNpZ25hdHVyZSBhcyB0aGUgb3JpZ2luYWwgaGFuZGxlci5cbiAqXG4gKiBAdHlwZVBhcmFtIFRSb3V0ZXMgLSBUaGUgcm91dGVzIHR5cGUgZnJvbSB0aGUgQXBpQ29udGFpbmVyXG4gKiBAdHlwZVBhcmFtIEsgLSBUaGUgc3Vic2V0IG9mIHJvdXRlIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIGNsaWVudFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhcGkgPSBuZXcgQXBpQ29udGFpbmVyKGFyY2gsICdhcGknLCB7XG4gKiAgIGhlbGxvOiB7IHBhdGg6ICdHRVQgL3YxL2FwaS9oZWxsby97bmFtZX0nLCBoYW5kbGVyOiBoZWxsb0Z1bmN0aW9uIH0sXG4gKiAgIGhlbGxvczogeyBwYXRoOiAnR0VUIC92MS9hcGkvaGVsbG9zJywgaGFuZGxlcjogaGVsbG9zRnVuY3Rpb24gfVxuICogfSk7XG4gKlxuICogY29uc3QgY2xpZW50ID0gY3JlYXRlSHR0cEJpbmRpbmdzKGVuZHBvaW50LCBhcGksIFsnaGVsbG8nLCAnaGVsbG9zJ10pO1xuICogYXdhaXQgY2xpZW50LmhlbGxvKCdKb2huJyk7ICAvLyAobmFtZTogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz5cbiAqIGF3YWl0IGNsaWVudC5oZWxsb3MoKTsgICAgICAgLy8gKCkgPT4gUHJvbWlzZTxHcmVldGluZ1tdPlxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVIdHRwQmluZGluZ3MgPSA8XG4gIFRSb3V0ZXMgZXh0ZW5kcyBBcGlSb3V0ZXMsXG4gIEsgZXh0ZW5kcyBrZXlvZiBUUm91dGVzICYgc3RyaW5nXG4+KFxuICBlbmRwb2ludDogU2VydmljZUVuZHBvaW50LFxuICBjb250YWluZXI6IEFwaUNvbnRhaW5lcjxUUm91dGVzPixcbiAgcm91dGVOYW1lczogcmVhZG9ubHkgS1tdLFxuICBmZXRjaGVyOiBGZXRjaGVyID0gKCkgPT4gKHtmZXRjaH0pXG4pOiBQaWNrPFJvdXRlSGFuZGxlcnM8VFJvdXRlcz4sIEs+ID0+IHtcbiAgcmV0dXJuIHJvdXRlTmFtZXMucmVkdWNlKFxuICAgIChhY2MsIG5hbWUpID0+IHtcbiAgICAgIGFjY1tuYW1lXSA9IGh0dHBIYW5kbGVyKGVuZHBvaW50LCBjb250YWluZXIsIG5hbWUsIGZldGNoZXIpO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIFBpY2s8Um91dGVIYW5kbGVyczxUUm91dGVzPiwgSz5cbiAgKTtcbn07XG4iXX0=
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { Construct } from 'constructs';
2
2
  export { Architecture, ArchitectureDefinition, ComponentDefinition } from './architecture';
3
- export { Function, TBDFunction, FunctionHandler } from './function';
3
+ export { Function, TBDFunction, FunctionHandler, FunctionRuntimeContextMarker } from './function';
4
4
  export { ApiContainer, ApiRoutes, RouteEntry, HandlerOf, RouteHandlers } from './api-container';
5
5
  export { ArchitectureBinding, ServiceEndpoint, architectureBinding } from './binding';
6
6
  export { httpHandler, createHttpBindings, Fetcher } from './http-handler';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -16,4 +16,4 @@ Object.defineProperty(exports, "architectureBinding", { enumerable: true, get: f
16
16
  var http_handler_1 = require("./http-handler");
17
17
  Object.defineProperty(exports, "httpHandler", { enumerable: true, get: function () { return http_handler_1.httpHandler; } });
18
18
  Object.defineProperty(exports, "createHttpBindings", { enumerable: true, get: function () { return http_handler_1.createHttpBindings; } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXVDO0FBQTlCLHVHQUFBLFNBQVMsT0FBQTtBQUNsQiwrQ0FBMkY7QUFBbEYsNEdBQUEsWUFBWSxPQUFBO0FBQ3JCLHVDQUFvRTtBQUEzRCxvR0FBQSxRQUFRLE9BQUE7QUFBRSx1R0FBQSxXQUFXLE9BQUE7QUFDOUIsaURBQWdHO0FBQXZGLDZHQUFBLFlBQVksT0FBQTtBQUNyQixxQ0FBc0Y7QUFBN0UsOEdBQUEsbUJBQW1CLE9BQUE7QUFBbUIsOEdBQUEsbUJBQW1CLE9BQUE7QUFDbEUsK0NBQTBFO0FBQWpFLDJHQUFBLFdBQVcsT0FBQTtBQUFFLGtIQUFBLGtCQUFrQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5leHBvcnQgeyBBcmNoaXRlY3R1cmUsIEFyY2hpdGVjdHVyZURlZmluaXRpb24sIENvbXBvbmVudERlZmluaXRpb24gfSBmcm9tICcuL2FyY2hpdGVjdHVyZSc7XG5leHBvcnQgeyBGdW5jdGlvbiwgVEJERnVuY3Rpb24sIEZ1bmN0aW9uSGFuZGxlciB9IGZyb20gJy4vZnVuY3Rpb24nO1xuZXhwb3J0IHsgQXBpQ29udGFpbmVyLCBBcGlSb3V0ZXMsIFJvdXRlRW50cnksIEhhbmRsZXJPZiwgUm91dGVIYW5kbGVycyB9IGZyb20gJy4vYXBpLWNvbnRhaW5lcic7XG5leHBvcnQgeyBBcmNoaXRlY3R1cmVCaW5kaW5nLCBTZXJ2aWNlRW5kcG9pbnQsIGFyY2hpdGVjdHVyZUJpbmRpbmcgfSBmcm9tICcuL2JpbmRpbmcnO1xuZXhwb3J0IHsgaHR0cEhhbmRsZXIsIGNyZWF0ZUh0dHBCaW5kaW5ncywgRmV0Y2hlciB9IGZyb20gJy4vaHR0cC1oYW5kbGVyJztcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXVDO0FBQTlCLHVHQUFBLFNBQVMsT0FBQTtBQUNsQiwrQ0FBMkY7QUFBbEYsNEdBQUEsWUFBWSxPQUFBO0FBQ3JCLHVDQUFrRztBQUF6RixvR0FBQSxRQUFRLE9BQUE7QUFBRSx1R0FBQSxXQUFXLE9BQUE7QUFDOUIsaURBQWdHO0FBQXZGLDZHQUFBLFlBQVksT0FBQTtBQUNyQixxQ0FBc0Y7QUFBN0UsOEdBQUEsbUJBQW1CLE9BQUE7QUFBbUIsOEdBQUEsbUJBQW1CLE9BQUE7QUFDbEUsK0NBQTBFO0FBQWpFLDJHQUFBLFdBQVcsT0FBQTtBQUFFLGtIQUFBLGtCQUFrQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5leHBvcnQgeyBBcmNoaXRlY3R1cmUsIEFyY2hpdGVjdHVyZURlZmluaXRpb24sIENvbXBvbmVudERlZmluaXRpb24gfSBmcm9tICcuL2FyY2hpdGVjdHVyZSc7XG5leHBvcnQgeyBGdW5jdGlvbiwgVEJERnVuY3Rpb24sIEZ1bmN0aW9uSGFuZGxlciwgRnVuY3Rpb25SdW50aW1lQ29udGV4dE1hcmtlciB9IGZyb20gJy4vZnVuY3Rpb24nO1xuZXhwb3J0IHsgQXBpQ29udGFpbmVyLCBBcGlSb3V0ZXMsIFJvdXRlRW50cnksIEhhbmRsZXJPZiwgUm91dGVIYW5kbGVycyB9IGZyb20gJy4vYXBpLWNvbnRhaW5lcic7XG5leHBvcnQgeyBBcmNoaXRlY3R1cmVCaW5kaW5nLCBTZXJ2aWNlRW5kcG9pbnQsIGFyY2hpdGVjdHVyZUJpbmRpbmcgfSBmcm9tICcuL2JpbmRpbmcnO1xuZXhwb3J0IHsgaHR0cEhhbmRsZXIsIGNyZWF0ZUh0dHBCaW5kaW5ncywgRmV0Y2hlciB9IGZyb20gJy4vaHR0cC1oYW5kbGVyJztcbiJdfQ==
package/package.json CHANGED
@@ -1,7 +1,12 @@
1
1
  {
2
2
  "name": "@arinoto/cdk-arch",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "CDK Architecture primitives for event-driven solution architectures",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/dooreelko/cdk-arch.git",
8
+ "directory": "packages/cdk-arch"
9
+ },
5
10
  "main": "dist/index.js",
6
11
  "types": "dist/index.d.ts",
7
12
  "module": "dist/index.js",
package/src/function.ts CHANGED
@@ -2,11 +2,13 @@ import { Construct } from 'constructs';
2
2
 
3
3
  export type FunctionHandler<TArgs extends any[] = any[], TReturn = any> = (...args: TArgs) => Promise<TReturn>;
4
4
 
5
+ export type FunctionRuntimeContextMarker = { runtimeContext?: boolean};
6
+
5
7
  /**
6
8
  * Represents a serverless function or handler in the architecture.
7
9
  * Generic over argument types (TArgs) and return type (TReturn).
8
10
  */
9
- export class Function<TArgs extends any[] = any[], TReturn = any> extends Construct {
11
+ export class Function<TArgs extends any[] = any[], TReturn = any, TRuntimeContext extends FunctionRuntimeContextMarker = any> extends Construct {
10
12
  public readonly handler: FunctionHandler<TArgs, TReturn>;
11
13
  private _overload?: FunctionHandler<TArgs, TReturn>;
12
14
 
@@ -29,7 +31,12 @@ export class Function<TArgs extends any[] = any[], TReturn = any> extends Constr
29
31
 
30
32
  public invoke(...args: TArgs): Promise<TReturn> {
31
33
  const fn = this._overload ?? this.handler;
32
- return Promise.resolve(fn(...args));
34
+ return fn(...args);
35
+ }
36
+
37
+ public invokeWithRuntimeContext(args: TArgs, ctx: TRuntimeContext): Promise<TReturn> {
38
+ const fn = this._overload ?? this.handler;
39
+ return fn.apply({ runtimeContext: true, ...ctx }, args);
33
40
  }
34
41
  }
35
42
 
@@ -32,7 +32,7 @@ export const httpHandler = <
32
32
  method: method || 'GET',
33
33
  headers: { 'Content-Type': 'application/json' },
34
34
  ...((method === 'POST' || method === 'PUT') && args.length > pathParams.length
35
- ? { body: JSON.stringify(args[pathParams.length]) }
35
+ ? { body: JSON.stringify(args.slice(pathParams.length)) }
36
36
  : {})
37
37
  };
38
38
 
package/src/index.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { Construct } from 'constructs';
2
2
  export { Architecture, ArchitectureDefinition, ComponentDefinition } from './architecture';
3
- export { Function, TBDFunction, FunctionHandler } from './function';
3
+ export { Function, TBDFunction, FunctionHandler, FunctionRuntimeContextMarker } from './function';
4
4
  export { ApiContainer, ApiRoutes, RouteEntry, HandlerOf, RouteHandlers } from './api-container';
5
5
  export { ArchitectureBinding, ServiceEndpoint, architectureBinding } from './binding';
6
6
  export { httpHandler, createHttpBindings, Fetcher } from './http-handler';