From f05539a443e9c3f7e6be759b435b425f9815b371 Mon Sep 17 00:00:00 2001 From: Chris Atkin Date: Fri, 8 May 2020 22:30:47 +0100 Subject: [PATCH 1/6] Correct requestFragment type and initialisation This corrects the type definition for requestFragment, which does not match it's implementation. This resolves https://github.com/zalando/tailor/issues/327 and supercedes https://github.com/zalando/tailor/pull/297/files. This also correct initialisation of custom `requestFragment` functions, which otherwise are not invoked to close over `filterHeaders`. --- index.d.ts | 2 +- index.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/index.d.ts b/index.d.ts index 7a3bf17..0359fbe 100644 --- a/index.d.ts +++ b/index.d.ts @@ -39,7 +39,7 @@ declare class Tailor extends EventEmitter { , maxAssetLinks?: number , pipeAttributes?: (attributes: Attributes) => object , pipeInstanceName?: string - , requestFragment?: (filterHeaders: (attributes: Attributes, req: IncomingMessage) => object, url: Url, attributes: Attributes, req: IncomingMessage, span?: Span) => Promise + , requestFragment?: (url: Url, attributes: Attributes, req: IncomingMessage, span?: Span) => Promise , templatesPath?: string , tracer?: Tracer }) diff --git a/index.js b/index.js index ee7b490..491fc4e 100644 --- a/index.js +++ b/index.js @@ -72,7 +72,7 @@ module.exports = class Tailor extends EventEmitter { fragmentTag: 'fragment', handledTags: [], handleTag: () => '', - requestFragment: requestFragment(filterRequestHeaders), + requestFragment, pipeInstanceName: 'Pipe', pipeDefinition: pipeChunk, pipeAttributes: getPipeAttributes @@ -80,6 +80,8 @@ module.exports = class Tailor extends EventEmitter { options ); + requestOptions.requestFragment = requestOptions.requestFragment(filterRequestHeaders) + initTracer(options.tracer); requestOptions.parseTemplate = parseTemplate( From 838819265f1147ea4cf5fc82e1f733bf657d9308 Mon Sep 17 00:00:00 2001 From: Chris Atkin Date: Sat, 9 May 2020 09:37:46 +0100 Subject: [PATCH 2/6] Add missing semi colon --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 491fc4e..7f9fb19 100644 --- a/index.js +++ b/index.js @@ -80,7 +80,7 @@ module.exports = class Tailor extends EventEmitter { options ); - requestOptions.requestFragment = requestOptions.requestFragment(filterRequestHeaders) + requestOptions.requestFragment = requestOptions.requestFragment(filterRequestHeaders); initTracer(options.tracer); From 2e8afeaa05b5dc006aee2fa7c43ba1ffc64a40d4 Mon Sep 17 00:00:00 2001 From: Chris Atkin Date: Sat, 9 May 2020 10:08:01 +0100 Subject: [PATCH 3/6] Correct type definition for parseTemplate as passed to fetchTemplate This resolves https://github.com/zalando/tailor/issues/329. --- index.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.d.ts b/index.d.ts index 0359fbe..502f18b 100644 --- a/index.d.ts +++ b/index.d.ts @@ -30,7 +30,7 @@ declare class Tailor extends EventEmitter { constructor(options?: { amdLoaderUrl?: string , fetchContext?: (req: IncomingMessage) => Promise - , fetchTemplate?: (req: IncomingMessage, parseTemplate: ParseTemplateFunction) => Promise + , fetchTemplate?: (req: IncomingMessage, parseTemplate: ReturnType) => Promise , filterRequestHeaders?: (attributes: Attributes, req: IncomingMessage) => object , filterResponseHeaders?: (attributes: Attributes, res: ServerResponse) => object , fragmentTag?: string @@ -59,8 +59,8 @@ interface Attributes { type ParseTemplateFunction = (handledTags: string[], insertBeforePipeTags: string[]) => ( baseTemplate: string, - childTemplate: string, - fullRendering: boolean, + childTemplate?: string, + fullRendering?: boolean, ) => Promise; From 011a93095744c8e7cde9e2cfeec5e575affbded3 Mon Sep 17 00:00:00 2001 From: Chris Atkin Date: Sat, 9 May 2020 10:10:58 +0100 Subject: [PATCH 4/6] Correct linting error in index.js --- index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 7f9fb19..6350a1c 100644 --- a/index.js +++ b/index.js @@ -80,7 +80,9 @@ module.exports = class Tailor extends EventEmitter { options ); - requestOptions.requestFragment = requestOptions.requestFragment(filterRequestHeaders); + requestOptions.requestFragment = requestOptions.requestFragment( + filterRequestHeaders + ); initTracer(options.tracer); From 3123dc4d182aef299e7ec1385005cbcf1368134b Mon Sep 17 00:00:00 2001 From: Chris Atkin Date: Sat, 9 May 2020 21:24:54 +0100 Subject: [PATCH 5/6] Correct requestFragment return type to IncomingMessage --- index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index 502f18b..2d1f457 100644 --- a/index.d.ts +++ b/index.d.ts @@ -39,7 +39,7 @@ declare class Tailor extends EventEmitter { , maxAssetLinks?: number , pipeAttributes?: (attributes: Attributes) => object , pipeInstanceName?: string - , requestFragment?: (url: Url, attributes: Attributes, req: IncomingMessage, span?: Span) => Promise + , requestFragment?: (url: Url, attributes: Attributes, req: IncomingMessage, span?: Span) => Promise , templatesPath?: string , tracer?: Tracer }) From a1190d1a51c90745fd429731d0a3a9a8574633d8 Mon Sep 17 00:00:00 2001 From: Chris Atkin Date: Sat, 9 May 2020 22:00:23 +0100 Subject: [PATCH 6/6] Correct requestFragment url argument type --- index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index 2d1f457..4721e57 100644 --- a/index.d.ts +++ b/index.d.ts @@ -39,7 +39,7 @@ declare class Tailor extends EventEmitter { , maxAssetLinks?: number , pipeAttributes?: (attributes: Attributes) => object , pipeInstanceName?: string - , requestFragment?: (url: Url, attributes: Attributes, req: IncomingMessage, span?: Span) => Promise + , requestFragment?: (filterHeaders: (attributes: Attributes, req: IncomingMessage) => object) => (url: string, attributes: Attributes, req: IncomingMessage, span?: Span) => Promise , templatesPath?: string , tracer?: Tracer })