From 378c4f6ce0711b6bdd5f4aae7eb571669f8e31a9 Mon Sep 17 00:00:00 2001 From: Mariusz Nowak Date: Fri, 16 Jul 2021 16:56:27 +0200 Subject: [PATCH] feat: Recognize `package.patterns` --- src/Serverless.d.ts | 1 + src/index.ts | 8 +++++--- tests/typescript.extractFileName.test.ts | 9 ++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Serverless.d.ts b/src/Serverless.d.ts index ec7d7049..765957dc 100644 --- a/src/Serverless.d.ts +++ b/src/Serverless.d.ts @@ -36,6 +36,7 @@ declare namespace Serverless { interface Package { include: string[] exclude: string[] + patterns: string[] artifact?: string individually?: boolean } diff --git a/src/index.ts b/src/index.ts index a249ce58..3d07236c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -103,6 +103,7 @@ export class TypeScriptPlugin { fn.package = fn.package || { exclude: [], include: [], + patterns: [] } // Add plugin to excluded packages or an empty array if exclude is undefined @@ -157,13 +158,14 @@ export class TypeScriptPlugin { return emitedFiles } - /** Link or copy extras such as node_modules or package.include definitions */ + /** Link or copy extras such as node_modules or package.patterns definitions */ async copyExtras() { const { service } = this.serverless + const patterns = [...(service.package.include || []), ...(service.package.patterns || [])] // include any "extras" from the "include" section - if (service.package.include && service.package.include.length > 0) { - const files = await globby(service.package.include) + if (patterns.length > 0) { + const files = await globby(patterns) for (const filename of files) { const destFileName = path.resolve(path.join(BUILD_FOLDER, filename)) diff --git a/tests/typescript.extractFileName.test.ts b/tests/typescript.extractFileName.test.ts index 82fac1d8..6a235504 100644 --- a/tests/typescript.extractFileName.test.ts +++ b/tests/typescript.extractFileName.test.ts @@ -6,21 +6,24 @@ const functions: { [key: string]: Serverless.Function } = { handler: 'tests/assets/hello.handler', package: { include: [], - exclude: [] + exclude: [], + patterns: [] } }, world: { handler: 'tests/assets/world.handler', package: { include: [], - exclude: [] + exclude: [], + patterns: [] } }, js: { handler: 'tests/assets/jsfile.create', package: { include: [], - exclude: [] + exclude: [], + patterns: [] } }, }