From 66d55ceb5c1c0d853e73fbe731dbf67160742c12 Mon Sep 17 00:00:00 2001 From: Chuck <739607766@qq.com> Date: Thu, 27 May 2021 13:48:11 +0800 Subject: [PATCH] Add Validation Support --- src/index.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/index.js b/src/index.js index 0c96bee..f30f132 100644 --- a/src/index.js +++ b/src/index.js @@ -26,6 +26,16 @@ class Select { this.serverless = serverless this.options = options + /** Add validation support */ + if (this.hasValidationSupport(serverless)) { + serverless.configSchemaHandler.defineFunctionProperties(serverless.service.provider.name, { + properties: { + regions: {type: 'array', uniqueItems: true}, + stages: {type: 'array', uniqueItems: true} + } + }) + } + /** Serverless hooks */ this.hooks = { 'after:package:initialize': this.deployHook.bind(this), @@ -121,6 +131,17 @@ class Select { resolve(functionObject) }) } + + /** + * Validates serverless object has required validation fields + * @param {*} serverless + * @return {boolean} Whether installed serverless supports validation + * */ + hasValidationSupport (serverless) { + return serverless.configSchemaHandler && + serverless.configSchemaHandler.defineFunctionProperties && + typeof serverless.configSchemaHandler['defineFunctionProperties'] === 'function' + } } /** Export stages class */