diff --git a/src/plugin/docs/assorted/@sls-closedsource-dynamodb.md b/src/plugin/docs/assorted/@sls-closedsource-dynamodb.md index ad0e4f89..ad3854b9 100644 --- a/src/plugin/docs/assorted/@sls-closedsource-dynamodb.md +++ b/src/plugin/docs/assorted/@sls-closedsource-dynamodb.md @@ -96,7 +96,7 @@ Manage various configuration files for serverless project with the option of run ├─ serverless
│  ├─ .base
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -105,7 +105,7 @@ Manage various configuration files for serverless project with the option of run │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
├─ src
│  ├─ core
│  │  └─ aws.js
@@ -398,7 +398,7 @@ Manage serverless configuration for deployment to AWS. ├─ serverless
│  ├─ .base
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -407,7 +407,7 @@ Manage serverless configuration for deployment to AWS. │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
├─ src
│  ├─ core
│  │  └─ aws.js
@@ -889,7 +889,7 @@ _Updating serverless/serverless-base-data-stack-hash (`index`) -_Updating serverless/.base/data-stack-hash.cjs using overwrite._ +_Updating serverless/.base/data-stack-hash.js using overwrite._ - Manage data stack hash resolver file. @@ -905,7 +905,7 @@ _Updating data-stack-hash.cjs
+      └─ data-stack-hash.js
@@ -988,7 +988,7 @@ _Updating serverless/serverless-api-random-deploy-hash (`index`) -_Updating serverless/api/random-deploy-hash.cjs using overwrite._ +_Updating serverless/api/random-deploy-hash.js using overwrite._ - Random hash to ensure lambda custom resource is redeployed. @@ -1004,7 +1004,7 @@ _Updating random-deploy-hash.cjs
+      └─ random-deploy-hash.js
@@ -2387,7 +2387,7 @@ Resolve serverless js configuration to requested stack. Resolve serverless configuration to requested stack. -### serverless/.base/data-stack-hash.cjs +### serverless/.base/data-stack-hash.js :small_red_triangle: serverless, javascript @@ -2417,7 +2417,7 @@ Defines data stack base configuration. Defines api stack base configuration. -### serverless/api/random-deploy-hash.cjs +### serverless/api/random-deploy-hash.js :small_red_triangle: javascript, aws, serverless diff --git a/src/plugin/docs/assorted/@sls-closedsource-react.md b/src/plugin/docs/assorted/@sls-closedsource-react.md index 614fc087..fdfabdc6 100644 --- a/src/plugin/docs/assorted/@sls-closedsource-react.md +++ b/src/plugin/docs/assorted/@sls-closedsource-react.md @@ -92,7 +92,7 @@ Manage various configuration files for react serverless project. │  ├─ .base
│  │  ├─ api-offline.yml
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -101,7 +101,7 @@ Manage various configuration files for react serverless project. │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
└─ test
   ├─ 0-sls-cf-stack.spec.js
   ├─ hot.js
@@ -383,7 +383,7 @@ Manage serverless configuration for deployment to AWS. │  ├─ .base
│  │  ├─ api-offline.yml
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -392,7 +392,7 @@ Manage serverless configuration for deployment to AWS. │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
└─ test
   ├─ 0-sls-cf-stack.spec.js
   ├─ lib-test.sh
@@ -684,7 +684,7 @@ _Updating serverless/serverless-base-data-stack-hash (`index`) -_Updating serverless/.base/data-stack-hash.cjs using overwrite._ +_Updating serverless/.base/data-stack-hash.js using overwrite._ - Manage data stack hash resolver file. @@ -700,7 +700,7 @@ _Updating data-stack-hash.cjs
+      └─ data-stack-hash.js
@@ -814,7 +814,7 @@ _Updating serverless/serverless-api-random-deploy-hash (`index`) -_Updating serverless/api/random-deploy-hash.cjs using overwrite._ +_Updating serverless/api/random-deploy-hash.js using overwrite._ - Random hash to ensure lambda custom resource is redeployed. @@ -830,7 +830,7 @@ _Updating random-deploy-hash.cjs
+      └─ random-deploy-hash.js
@@ -2143,7 +2143,7 @@ Resolve serverless js configuration to requested stack. Resolve serverless configuration to requested stack. -### serverless/.base/data-stack-hash.cjs +### serverless/.base/data-stack-hash.js :small_red_triangle: serverless, javascript @@ -2183,7 +2183,7 @@ Defines api offline stack base configuration. This stack can not be deployed and Defines api stack base configuration. -### serverless/api/random-deploy-hash.cjs +### serverless/api/random-deploy-hash.js :small_red_triangle: javascript, aws, serverless diff --git a/src/plugin/docs/assorted/@sls-closedsource.md b/src/plugin/docs/assorted/@sls-closedsource.md index 0fbcf1b7..15b4f0f7 100644 --- a/src/plugin/docs/assorted/@sls-closedsource.md +++ b/src/plugin/docs/assorted/@sls-closedsource.md @@ -92,7 +92,7 @@ Manage various configuration files for serverless project. ├─ serverless
│  ├─ .base
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -101,7 +101,7 @@ Manage various configuration files for serverless project. │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
├─ src
│  └─ core
│     └─ aws.js
@@ -386,7 +386,7 @@ Manage serverless configuration for deployment to AWS. ├─ serverless
│  ├─ .base
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -395,7 +395,7 @@ Manage serverless configuration for deployment to AWS. │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
├─ src
│  └─ core
│     └─ aws.js
@@ -751,7 +751,7 @@ _Updating serverless/serverless-base-data-stack-hash (`index`) -_Updating serverless/.base/data-stack-hash.cjs using overwrite._ +_Updating serverless/.base/data-stack-hash.js using overwrite._ - Manage data stack hash resolver file. @@ -767,7 +767,7 @@ _Updating data-stack-hash.cjs
+      └─ data-stack-hash.js
@@ -850,7 +850,7 @@ _Updating serverless/serverless-api-random-deploy-hash (`index`) -_Updating serverless/api/random-deploy-hash.cjs using overwrite._ +_Updating serverless/api/random-deploy-hash.js using overwrite._ - Random hash to ensure lambda custom resource is redeployed. @@ -866,7 +866,7 @@ _Updating random-deploy-hash.cjs
+      └─ random-deploy-hash.js
@@ -2195,7 +2195,7 @@ Resolve serverless js configuration to requested stack. Resolve serverless configuration to requested stack. -### serverless/.base/data-stack-hash.cjs +### serverless/.base/data-stack-hash.js :small_red_triangle: serverless, javascript @@ -2225,7 +2225,7 @@ Defines data stack base configuration. Defines api stack base configuration. -### serverless/api/random-deploy-hash.cjs +### serverless/api/random-deploy-hash.js :small_red_triangle: javascript, aws, serverless diff --git a/src/plugin/targets/serverless/.base/data-stack-hash.cjs.json b/src/plugin/targets/serverless/.base/data-stack-hash.js.json similarity index 100% rename from src/plugin/targets/serverless/.base/data-stack-hash.cjs.json rename to src/plugin/targets/serverless/.base/data-stack-hash.js.json diff --git a/src/plugin/targets/serverless/api/random-deploy-hash.cjs.json b/src/plugin/targets/serverless/api/random-deploy-hash.js.json similarity index 100% rename from src/plugin/targets/serverless/api/random-deploy-hash.cjs.json rename to src/plugin/targets/serverless/api/random-deploy-hash.js.json diff --git a/src/plugin/tasks/serverless/serverless-api-random-deploy-hash.json b/src/plugin/tasks/serverless/serverless-api-random-deploy-hash.json index 30be2b82..4a0f6f3f 100644 --- a/src/plugin/tasks/serverless/serverless-api-random-deploy-hash.json +++ b/src/plugin/tasks/serverless/serverless-api-random-deploy-hash.json @@ -1,9 +1,9 @@ { - "target": "serverless/api/random-deploy-hash.cjs", + "target": "serverless/api/random-deploy-hash.js", "format": "txt", "strategy": "overwrite", "snippets": [ - "serverless/api/random-deploy-hash.cjs" + "serverless/api/random-deploy-hash.js" ], "requires": [ "javascript", diff --git a/src/plugin/tasks/serverless/serverless-base-data-stack-hash.json b/src/plugin/tasks/serverless/serverless-base-data-stack-hash.json index 45a86a2e..e498f1ab 100644 --- a/src/plugin/tasks/serverless/serverless-base-data-stack-hash.json +++ b/src/plugin/tasks/serverless/serverless-base-data-stack-hash.json @@ -1,9 +1,9 @@ { - "target": "serverless/.base/data-stack-hash.cjs", + "target": "serverless/.base/data-stack-hash.js", "format": "txt", "strategy": "overwrite", "snippets": [ - "serverless/.base/data-stack-hash.cjs" + "serverless/.base/data-stack-hash.js" ], "requires": [ "serverless", diff --git a/src/plugin/tasks/serverless/snippets/serverless/.base/api.yml.mustache b/src/plugin/tasks/serverless/snippets/serverless/.base/api.yml.mustache index dc7033bd..f0db072e 100644 --- a/src/plugin/tasks/serverless/snippets/serverless/.base/api.yml.mustache +++ b/src/plugin/tasks/serverless/snippets/serverless/.base/api.yml.mustache @@ -28,7 +28,7 @@ resources: - '-' - 'Fn::ImportValue': Data.Stack.Hash.Mismatch dataStackHash: - Value: ${fileFn(^/data-stack-hash.cjs)} + Value: ${fileFn(^/data-stack-hash.js)} {{#nccEnabled}} package: diff --git a/src/plugin/tasks/serverless/snippets/serverless/.base/data-stack-hash.cjs b/src/plugin/tasks/serverless/snippets/serverless/.base/data-stack-hash.cjs deleted file mode 100644 index 373b5544..00000000 --- a/src/plugin/tasks/serverless/snippets/serverless/.base/data-stack-hash.cjs +++ /dev/null @@ -1,16 +0,0 @@ -const crypto = require('crypto'); -const path = require('path'); -const objectHash = require('object-hash-strict'); -const yaml = require('yaml-boost'); - -const identifier = crypto.randomBytes(8).toString('hex'); - -module.exports = (args) => { - if (args[identifier] !== undefined) { - return '--hash--'; - } - return objectHash(yaml.load( - path.join(__dirname, 'resolver.yml'), - { [identifier]: true, ...args, stack: 'data' } - )); -}; diff --git a/src/plugin/tasks/serverless/snippets/serverless/.base/data-stack-hash.js b/src/plugin/tasks/serverless/snippets/serverless/.base/data-stack-hash.js new file mode 100644 index 00000000..059bec10 --- /dev/null +++ b/src/plugin/tasks/serverless/snippets/serverless/.base/data-stack-hash.js @@ -0,0 +1,18 @@ +/* eslint-disable import/no-extraneous-dependencies */ +import crypto from 'crypto'; +import path from 'path'; +import fs from 'smart-fs'; +import objectHash from 'object-hash-strict'; +import { load } from 'yaml-boost'; + +const identifier = crypto.randomBytes(8).toString('hex'); + +export default async (args) => { + if (args[identifier] !== undefined) { + return '--hash--'; + } + return objectHash(await load( + path.join(fs.dirname(import.meta.url), 'resolver.yml'), + { [identifier]: true, ...args, stack: 'data' } + )); +}; diff --git a/src/plugin/tasks/serverless/snippets/serverless/.base/data.yml b/src/plugin/tasks/serverless/snippets/serverless/.base/data.yml index 59da3198..f6366790 100644 --- a/src/plugin/tasks/serverless/snippets/serverless/.base/data.yml +++ b/src/plugin/tasks/serverless/snippets/serverless/.base/data.yml @@ -348,7 +348,7 @@ resources: - CfnAssumeRole - Arn dataStackHash: - Value: ${fileFn(^/data-stack-hash.cjs)} + Value: ${fileFn(^/data-stack-hash.js)} package: patterns: diff --git a/src/plugin/tasks/serverless/snippets/serverless/.base/resolver.js b/src/plugin/tasks/serverless/snippets/serverless/.base/resolver.js index 9282d359..72a5dda5 100644 --- a/src/plugin/tasks/serverless/snippets/serverless/.base/resolver.js +++ b/src/plugin/tasks/serverless/snippets/serverless/.base/resolver.js @@ -1,13 +1,13 @@ /* eslint-disable import/no-extraneous-dependencies */ import { join } from 'path'; import fs from 'smart-fs'; -import yaml from 'yaml-boost'; +import { load } from 'yaml-boost'; import objectScan from 'object-scan'; import objectHash from 'object-hash-strict'; -export default (kwargs) => { +export default async (kwargs) => { const configFile = join(fs.dirname(import.meta.url), 'resolver.yml'); - const r = yaml.load(configFile, kwargs); + const r = await load(configFile, kwargs); const logic = { 'provider.environment.*': ({ parent, property, value }) => { if (value === null) { diff --git a/src/plugin/tasks/serverless/snippets/serverless/api/random-deploy-hash.cjs b/src/plugin/tasks/serverless/snippets/serverless/api/random-deploy-hash.cjs deleted file mode 100644 index 5b417fea..00000000 --- a/src/plugin/tasks/serverless/snippets/serverless/api/random-deploy-hash.cjs +++ /dev/null @@ -1,3 +0,0 @@ -const crypto = require('crypto'); - -module.exports = crypto.randomBytes(16).toString('hex'); diff --git a/src/plugin/tasks/serverless/snippets/serverless/api/random-deploy-hash.js b/src/plugin/tasks/serverless/snippets/serverless/api/random-deploy-hash.js new file mode 100644 index 00000000..a9292610 --- /dev/null +++ b/src/plugin/tasks/serverless/snippets/serverless/api/random-deploy-hash.js @@ -0,0 +1,3 @@ +import crypto from 'crypto'; + +export default crypto.randomBytes(16).toString('hex'); diff --git a/src/plugin/tasks/serverless/snippets/serverless/scaling/api/${router}.yml b/src/plugin/tasks/serverless/snippets/serverless/scaling/api/${router}.yml index c02875cc..3d5beba8 100644 --- a/src/plugin/tasks/serverless/snippets/serverless/scaling/api/${router}.yml +++ b/src/plugin/tasks/serverless/snippets/serverless/scaling/api/${router}.yml @@ -48,7 +48,7 @@ resources: Fn::GetAtt: - Scaling${router|TITLE|STRIP}HookPreLambdaFunction - Arn - custom: ${file(^/../random-deploy-hash.cjs)} + custom: ${file(^/../random-deploy-hash.js)} functions: ${router|CAMEL}: diff --git a/src/plugin/tasks/serverless/snippets/serverless/test/0-sls-cf-stack.spec.js b/src/plugin/tasks/serverless/snippets/serverless/test/0-sls-cf-stack.spec.js index 76c71754..efe883cf 100644 --- a/src/plugin/tasks/serverless/snippets/serverless/test/0-sls-cf-stack.spec.js +++ b/src/plugin/tasks/serverless/snippets/serverless/test/0-sls-cf-stack.spec.js @@ -11,14 +11,14 @@ describe('Testing serverless cf stack definitions', { cryptoSeed: 'seed' }, () = let dataStack; let runner; let definedRoutes; - before(() => { + before(async () => { const loadStack = (stack) => resolver({ stack, region: '${awsRegion}', env: 'local' }); - apiStack = loadStack('api'); - dataStack = loadStack('data'); + apiStack = await loadStack('api'); + dataStack = await loadStack('data'); runner = (stack) => { const stackCf = { api: apiStack, data: dataStack }[stack]; expect( diff --git a/src/plugin/tasks/serverless/snippets/serverless/test/7-sls-tags.spec.js b/src/plugin/tasks/serverless/snippets/serverless/test/7-sls-tags.spec.js index c136045d..70048ab0 100644 --- a/src/plugin/tasks/serverless/snippets/serverless/test/7-sls-tags.spec.js +++ b/src/plugin/tasks/serverless/snippets/serverless/test/7-sls-tags.spec.js @@ -38,10 +38,10 @@ describe('Testing sls resource tags', () => { let apiStack; let dataStack; - before(() => { + before(async () => { const loadStack = (stack) => resolver({ stack }); - apiStack = loadStack('api'); - dataStack = loadStack('data'); + apiStack = await loadStack('api'); + dataStack = await loadStack('data'); }); it('Testing api stack tags', () => { diff --git a/src/plugin/tasks/serverless/snippets/serverless/triggers/api/${trigger}.yml b/src/plugin/tasks/serverless/snippets/serverless/triggers/api/${trigger}.yml index cf898459..38391a42 100644 --- a/src/plugin/tasks/serverless/snippets/serverless/triggers/api/${trigger}.yml +++ b/src/plugin/tasks/serverless/snippets/serverless/triggers/api/${trigger}.yml @@ -9,7 +9,7 @@ resources: 'Fn::GetAtt': - Triggers${trigger|TITLE|STRIP}FnLambdaFunction - Arn - custom: ${file(^/../random-deploy-hash.cjs)} + custom: ${file(^/../random-deploy-hash.js)} functions: triggers${trigger|TITLE|STRIP}Fn: diff --git a/test/projects/assorted/@sls-closedsource-dynamodb/CONFDOCS.md b/test/projects/assorted/@sls-closedsource-dynamodb/CONFDOCS.md index dfa83b33..4ac55351 100644 --- a/test/projects/assorted/@sls-closedsource-dynamodb/CONFDOCS.md +++ b/test/projects/assorted/@sls-closedsource-dynamodb/CONFDOCS.md @@ -98,7 +98,7 @@ Manage various configuration files for serverless project with the option of run ├─ serverless
│  ├─ .base
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -107,7 +107,7 @@ Manage various configuration files for serverless project with the option of run │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
├─ src
│  ├─ core
│  │  └─ aws.js
@@ -400,7 +400,7 @@ Manage serverless configuration for deployment to AWS. ├─ serverless
│  ├─ .base
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -409,7 +409,7 @@ Manage serverless configuration for deployment to AWS. │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
├─ src
│  ├─ core
│  │  └─ aws.js
@@ -891,7 +891,7 @@ _Updating serverless/serverless-base-data-stack-hash (`index`) -_Updating serverless/.base/data-stack-hash.cjs using overwrite._ +_Updating serverless/.base/data-stack-hash.js using overwrite._ - Manage data stack hash resolver file. @@ -907,7 +907,7 @@ _Updating data-stack-hash.cjs
+      └─ data-stack-hash.js
@@ -990,7 +990,7 @@ _Updating serverless/serverless-api-random-deploy-hash (`index`) -_Updating serverless/api/random-deploy-hash.cjs using overwrite._ +_Updating serverless/api/random-deploy-hash.js using overwrite._ - Random hash to ensure lambda custom resource is redeployed. @@ -1006,7 +1006,7 @@ _Updating random-deploy-hash.cjs
+      └─ random-deploy-hash.js
@@ -2389,7 +2389,7 @@ Resolve serverless js configuration to requested stack. Resolve serverless configuration to requested stack. -### serverless/.base/data-stack-hash.cjs +### serverless/.base/data-stack-hash.js :small_red_triangle: serverless, javascript @@ -2419,7 +2419,7 @@ Defines data stack base configuration. Defines api stack base configuration. -### serverless/api/random-deploy-hash.cjs +### serverless/api/random-deploy-hash.js :small_red_triangle: javascript, aws, serverless diff --git a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/api.yml b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/api.yml index 0c7a2a49..0ddcc4c1 100644 --- a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/api.yml +++ b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/api.yml @@ -28,7 +28,7 @@ resources: - '-' - 'Fn::ImportValue': Data.Stack.Hash.Mismatch dataStackHash: - Value: ${fileFn(^/data-stack-hash.cjs)} + Value: ${fileFn(^/data-stack-hash.js)} package: patterns: diff --git a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/data-stack-hash.cjs b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/data-stack-hash.cjs deleted file mode 100644 index 373b5544..00000000 --- a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/data-stack-hash.cjs +++ /dev/null @@ -1,16 +0,0 @@ -const crypto = require('crypto'); -const path = require('path'); -const objectHash = require('object-hash-strict'); -const yaml = require('yaml-boost'); - -const identifier = crypto.randomBytes(8).toString('hex'); - -module.exports = (args) => { - if (args[identifier] !== undefined) { - return '--hash--'; - } - return objectHash(yaml.load( - path.join(__dirname, 'resolver.yml'), - { [identifier]: true, ...args, stack: 'data' } - )); -}; diff --git a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/data-stack-hash.js b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/data-stack-hash.js new file mode 100644 index 00000000..059bec10 --- /dev/null +++ b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/data-stack-hash.js @@ -0,0 +1,18 @@ +/* eslint-disable import/no-extraneous-dependencies */ +import crypto from 'crypto'; +import path from 'path'; +import fs from 'smart-fs'; +import objectHash from 'object-hash-strict'; +import { load } from 'yaml-boost'; + +const identifier = crypto.randomBytes(8).toString('hex'); + +export default async (args) => { + if (args[identifier] !== undefined) { + return '--hash--'; + } + return objectHash(await load( + path.join(fs.dirname(import.meta.url), 'resolver.yml'), + { [identifier]: true, ...args, stack: 'data' } + )); +}; diff --git a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/data.yml b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/data.yml index 59da3198..f6366790 100644 --- a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/data.yml +++ b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/data.yml @@ -348,7 +348,7 @@ resources: - CfnAssumeRole - Arn dataStackHash: - Value: ${fileFn(^/data-stack-hash.cjs)} + Value: ${fileFn(^/data-stack-hash.js)} package: patterns: diff --git a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/resolver.js b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/resolver.js index 9282d359..72a5dda5 100644 --- a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/resolver.js +++ b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/.base/resolver.js @@ -1,13 +1,13 @@ /* eslint-disable import/no-extraneous-dependencies */ import { join } from 'path'; import fs from 'smart-fs'; -import yaml from 'yaml-boost'; +import { load } from 'yaml-boost'; import objectScan from 'object-scan'; import objectHash from 'object-hash-strict'; -export default (kwargs) => { +export default async (kwargs) => { const configFile = join(fs.dirname(import.meta.url), 'resolver.yml'); - const r = yaml.load(configFile, kwargs); + const r = await load(configFile, kwargs); const logic = { 'provider.environment.*': ({ parent, property, value }) => { if (value === null) { diff --git a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/api/random-deploy-hash.cjs b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/api/random-deploy-hash.cjs deleted file mode 100644 index 5b417fea..00000000 --- a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/api/random-deploy-hash.cjs +++ /dev/null @@ -1,3 +0,0 @@ -const crypto = require('crypto'); - -module.exports = crypto.randomBytes(16).toString('hex'); diff --git a/test/projects/assorted/@sls-closedsource-dynamodb/serverless/api/random-deploy-hash.js b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/api/random-deploy-hash.js new file mode 100644 index 00000000..a9292610 --- /dev/null +++ b/test/projects/assorted/@sls-closedsource-dynamodb/serverless/api/random-deploy-hash.js @@ -0,0 +1,3 @@ +import crypto from 'crypto'; + +export default crypto.randomBytes(16).toString('hex'); diff --git a/test/projects/assorted/@sls-closedsource-dynamodb/test/0-sls-cf-stack.spec.js b/test/projects/assorted/@sls-closedsource-dynamodb/test/0-sls-cf-stack.spec.js index 617c38d6..3095db21 100644 --- a/test/projects/assorted/@sls-closedsource-dynamodb/test/0-sls-cf-stack.spec.js +++ b/test/projects/assorted/@sls-closedsource-dynamodb/test/0-sls-cf-stack.spec.js @@ -11,14 +11,14 @@ describe('Testing serverless cf stack definitions', { cryptoSeed: 'seed' }, () = let dataStack; let runner; let definedRoutes; - before(() => { + before(async () => { const loadStack = (stack) => resolver({ stack, region: 'awsRegion', env: 'local' }); - apiStack = loadStack('api'); - dataStack = loadStack('data'); + apiStack = await loadStack('api'); + dataStack = await loadStack('data'); runner = (stack) => { const stackCf = { api: apiStack, data: dataStack }[stack]; expect( diff --git a/test/projects/assorted/@sls-closedsource-dynamodb/test/7-sls-tags.spec.js b/test/projects/assorted/@sls-closedsource-dynamodb/test/7-sls-tags.spec.js index c136045d..70048ab0 100644 --- a/test/projects/assorted/@sls-closedsource-dynamodb/test/7-sls-tags.spec.js +++ b/test/projects/assorted/@sls-closedsource-dynamodb/test/7-sls-tags.spec.js @@ -38,10 +38,10 @@ describe('Testing sls resource tags', () => { let apiStack; let dataStack; - before(() => { + before(async () => { const loadStack = (stack) => resolver({ stack }); - apiStack = loadStack('api'); - dataStack = loadStack('data'); + apiStack = await loadStack('api'); + dataStack = await loadStack('data'); }); it('Testing api stack tags', () => { diff --git a/test/projects/assorted/@sls-closedsource-react/CONFDOCS.md b/test/projects/assorted/@sls-closedsource-react/CONFDOCS.md index fc6e9083..108c5ffa 100644 --- a/test/projects/assorted/@sls-closedsource-react/CONFDOCS.md +++ b/test/projects/assorted/@sls-closedsource-react/CONFDOCS.md @@ -94,7 +94,7 @@ Manage various configuration files for react serverless project. │  ├─ .base
│  │  ├─ api-offline.yml
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -103,7 +103,7 @@ Manage various configuration files for react serverless project. │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
└─ test
   ├─ 0-sls-cf-stack.spec.js
   ├─ hot.js
@@ -385,7 +385,7 @@ Manage serverless configuration for deployment to AWS. │  ├─ .base
│  │  ├─ api-offline.yml
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -394,7 +394,7 @@ Manage serverless configuration for deployment to AWS. │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
└─ test
   ├─ 0-sls-cf-stack.spec.js
   ├─ lib-test.sh
@@ -686,7 +686,7 @@ _Updating serverless/serverless-base-data-stack-hash (`index`) -_Updating serverless/.base/data-stack-hash.cjs using overwrite._ +_Updating serverless/.base/data-stack-hash.js using overwrite._ - Manage data stack hash resolver file. @@ -702,7 +702,7 @@ _Updating data-stack-hash.cjs
+      └─ data-stack-hash.js
@@ -816,7 +816,7 @@ _Updating serverless/serverless-api-random-deploy-hash (`index`) -_Updating serverless/api/random-deploy-hash.cjs using overwrite._ +_Updating serverless/api/random-deploy-hash.js using overwrite._ - Random hash to ensure lambda custom resource is redeployed. @@ -832,7 +832,7 @@ _Updating random-deploy-hash.cjs
+      └─ random-deploy-hash.js
@@ -2145,7 +2145,7 @@ Resolve serverless js configuration to requested stack. Resolve serverless configuration to requested stack. -### serverless/.base/data-stack-hash.cjs +### serverless/.base/data-stack-hash.js :small_red_triangle: serverless, javascript @@ -2185,7 +2185,7 @@ Defines api offline stack base configuration. This stack can not be deployed and Defines api stack base configuration. -### serverless/api/random-deploy-hash.cjs +### serverless/api/random-deploy-hash.js :small_red_triangle: javascript, aws, serverless diff --git a/test/projects/assorted/@sls-closedsource-react/serverless/.base/api.yml b/test/projects/assorted/@sls-closedsource-react/serverless/.base/api.yml index 0c7a2a49..0ddcc4c1 100644 --- a/test/projects/assorted/@sls-closedsource-react/serverless/.base/api.yml +++ b/test/projects/assorted/@sls-closedsource-react/serverless/.base/api.yml @@ -28,7 +28,7 @@ resources: - '-' - 'Fn::ImportValue': Data.Stack.Hash.Mismatch dataStackHash: - Value: ${fileFn(^/data-stack-hash.cjs)} + Value: ${fileFn(^/data-stack-hash.js)} package: patterns: diff --git a/test/projects/assorted/@sls-closedsource-react/serverless/.base/data-stack-hash.cjs b/test/projects/assorted/@sls-closedsource-react/serverless/.base/data-stack-hash.cjs deleted file mode 100644 index 373b5544..00000000 --- a/test/projects/assorted/@sls-closedsource-react/serverless/.base/data-stack-hash.cjs +++ /dev/null @@ -1,16 +0,0 @@ -const crypto = require('crypto'); -const path = require('path'); -const objectHash = require('object-hash-strict'); -const yaml = require('yaml-boost'); - -const identifier = crypto.randomBytes(8).toString('hex'); - -module.exports = (args) => { - if (args[identifier] !== undefined) { - return '--hash--'; - } - return objectHash(yaml.load( - path.join(__dirname, 'resolver.yml'), - { [identifier]: true, ...args, stack: 'data' } - )); -}; diff --git a/test/projects/assorted/@sls-closedsource-react/serverless/.base/data-stack-hash.js b/test/projects/assorted/@sls-closedsource-react/serverless/.base/data-stack-hash.js new file mode 100644 index 00000000..059bec10 --- /dev/null +++ b/test/projects/assorted/@sls-closedsource-react/serverless/.base/data-stack-hash.js @@ -0,0 +1,18 @@ +/* eslint-disable import/no-extraneous-dependencies */ +import crypto from 'crypto'; +import path from 'path'; +import fs from 'smart-fs'; +import objectHash from 'object-hash-strict'; +import { load } from 'yaml-boost'; + +const identifier = crypto.randomBytes(8).toString('hex'); + +export default async (args) => { + if (args[identifier] !== undefined) { + return '--hash--'; + } + return objectHash(await load( + path.join(fs.dirname(import.meta.url), 'resolver.yml'), + { [identifier]: true, ...args, stack: 'data' } + )); +}; diff --git a/test/projects/assorted/@sls-closedsource-react/serverless/.base/data.yml b/test/projects/assorted/@sls-closedsource-react/serverless/.base/data.yml index 59da3198..f6366790 100644 --- a/test/projects/assorted/@sls-closedsource-react/serverless/.base/data.yml +++ b/test/projects/assorted/@sls-closedsource-react/serverless/.base/data.yml @@ -348,7 +348,7 @@ resources: - CfnAssumeRole - Arn dataStackHash: - Value: ${fileFn(^/data-stack-hash.cjs)} + Value: ${fileFn(^/data-stack-hash.js)} package: patterns: diff --git a/test/projects/assorted/@sls-closedsource-react/serverless/.base/resolver.js b/test/projects/assorted/@sls-closedsource-react/serverless/.base/resolver.js index 9282d359..72a5dda5 100644 --- a/test/projects/assorted/@sls-closedsource-react/serverless/.base/resolver.js +++ b/test/projects/assorted/@sls-closedsource-react/serverless/.base/resolver.js @@ -1,13 +1,13 @@ /* eslint-disable import/no-extraneous-dependencies */ import { join } from 'path'; import fs from 'smart-fs'; -import yaml from 'yaml-boost'; +import { load } from 'yaml-boost'; import objectScan from 'object-scan'; import objectHash from 'object-hash-strict'; -export default (kwargs) => { +export default async (kwargs) => { const configFile = join(fs.dirname(import.meta.url), 'resolver.yml'); - const r = yaml.load(configFile, kwargs); + const r = await load(configFile, kwargs); const logic = { 'provider.environment.*': ({ parent, property, value }) => { if (value === null) { diff --git a/test/projects/assorted/@sls-closedsource-react/serverless/api/random-deploy-hash.cjs b/test/projects/assorted/@sls-closedsource-react/serverless/api/random-deploy-hash.cjs deleted file mode 100644 index 5b417fea..00000000 --- a/test/projects/assorted/@sls-closedsource-react/serverless/api/random-deploy-hash.cjs +++ /dev/null @@ -1,3 +0,0 @@ -const crypto = require('crypto'); - -module.exports = crypto.randomBytes(16).toString('hex'); diff --git a/test/projects/assorted/@sls-closedsource-react/serverless/api/random-deploy-hash.js b/test/projects/assorted/@sls-closedsource-react/serverless/api/random-deploy-hash.js new file mode 100644 index 00000000..a9292610 --- /dev/null +++ b/test/projects/assorted/@sls-closedsource-react/serverless/api/random-deploy-hash.js @@ -0,0 +1,3 @@ +import crypto from 'crypto'; + +export default crypto.randomBytes(16).toString('hex'); diff --git a/test/projects/assorted/@sls-closedsource-react/test/0-sls-cf-stack.spec.js b/test/projects/assorted/@sls-closedsource-react/test/0-sls-cf-stack.spec.js index 617c38d6..3095db21 100644 --- a/test/projects/assorted/@sls-closedsource-react/test/0-sls-cf-stack.spec.js +++ b/test/projects/assorted/@sls-closedsource-react/test/0-sls-cf-stack.spec.js @@ -11,14 +11,14 @@ describe('Testing serverless cf stack definitions', { cryptoSeed: 'seed' }, () = let dataStack; let runner; let definedRoutes; - before(() => { + before(async () => { const loadStack = (stack) => resolver({ stack, region: 'awsRegion', env: 'local' }); - apiStack = loadStack('api'); - dataStack = loadStack('data'); + apiStack = await loadStack('api'); + dataStack = await loadStack('data'); runner = (stack) => { const stackCf = { api: apiStack, data: dataStack }[stack]; expect( diff --git a/test/projects/assorted/@sls-closedsource/CONFDOCS.md b/test/projects/assorted/@sls-closedsource/CONFDOCS.md index 1a48dcda..92e95f04 100644 --- a/test/projects/assorted/@sls-closedsource/CONFDOCS.md +++ b/test/projects/assorted/@sls-closedsource/CONFDOCS.md @@ -94,7 +94,7 @@ Manage various configuration files for serverless project. ├─ serverless
│  ├─ .base
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -103,7 +103,7 @@ Manage various configuration files for serverless project. │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
├─ src
│  └─ core
│     └─ aws.js
@@ -388,7 +388,7 @@ Manage serverless configuration for deployment to AWS. ├─ serverless
│  ├─ .base
│  │  ├─ api.yml
-│  │  ├─ data-stack-hash.cjs
+│  │  ├─ data-stack-hash.js
│  │  ├─ data.yml
│  │  ├─ resolver.js
│  │  └─ resolver.yml
@@ -397,7 +397,7 @@ Manage serverless configuration for deployment to AWS. │  ├─ data.yml
│  ├─ pkg.js
│  └─ api
-│     └─ random-deploy-hash.cjs
+│     └─ random-deploy-hash.js
├─ src
│  └─ core
│     └─ aws.js
@@ -753,7 +753,7 @@ _Updating serverless/serverless-base-data-stack-hash (`index`) -_Updating serverless/.base/data-stack-hash.cjs using overwrite._ +_Updating serverless/.base/data-stack-hash.js using overwrite._ - Manage data stack hash resolver file. @@ -769,7 +769,7 @@ _Updating data-stack-hash.cjs
+      └─ data-stack-hash.js
@@ -852,7 +852,7 @@ _Updating serverless/serverless-api-random-deploy-hash (`index`) -_Updating serverless/api/random-deploy-hash.cjs using overwrite._ +_Updating serverless/api/random-deploy-hash.js using overwrite._ - Random hash to ensure lambda custom resource is redeployed. @@ -868,7 +868,7 @@ _Updating random-deploy-hash.cjs
+      └─ random-deploy-hash.js
@@ -2197,7 +2197,7 @@ Resolve serverless js configuration to requested stack. Resolve serverless configuration to requested stack. -### serverless/.base/data-stack-hash.cjs +### serverless/.base/data-stack-hash.js :small_red_triangle: serverless, javascript @@ -2227,7 +2227,7 @@ Defines data stack base configuration. Defines api stack base configuration. -### serverless/api/random-deploy-hash.cjs +### serverless/api/random-deploy-hash.js :small_red_triangle: javascript, aws, serverless diff --git a/test/projects/assorted/@sls-closedsource/serverless/.base/api.yml b/test/projects/assorted/@sls-closedsource/serverless/.base/api.yml index 0c7a2a49..0ddcc4c1 100644 --- a/test/projects/assorted/@sls-closedsource/serverless/.base/api.yml +++ b/test/projects/assorted/@sls-closedsource/serverless/.base/api.yml @@ -28,7 +28,7 @@ resources: - '-' - 'Fn::ImportValue': Data.Stack.Hash.Mismatch dataStackHash: - Value: ${fileFn(^/data-stack-hash.cjs)} + Value: ${fileFn(^/data-stack-hash.js)} package: patterns: diff --git a/test/projects/assorted/@sls-closedsource/serverless/.base/data-stack-hash.cjs b/test/projects/assorted/@sls-closedsource/serverless/.base/data-stack-hash.cjs deleted file mode 100644 index 373b5544..00000000 --- a/test/projects/assorted/@sls-closedsource/serverless/.base/data-stack-hash.cjs +++ /dev/null @@ -1,16 +0,0 @@ -const crypto = require('crypto'); -const path = require('path'); -const objectHash = require('object-hash-strict'); -const yaml = require('yaml-boost'); - -const identifier = crypto.randomBytes(8).toString('hex'); - -module.exports = (args) => { - if (args[identifier] !== undefined) { - return '--hash--'; - } - return objectHash(yaml.load( - path.join(__dirname, 'resolver.yml'), - { [identifier]: true, ...args, stack: 'data' } - )); -}; diff --git a/test/projects/assorted/@sls-closedsource/serverless/.base/data-stack-hash.js b/test/projects/assorted/@sls-closedsource/serverless/.base/data-stack-hash.js new file mode 100644 index 00000000..059bec10 --- /dev/null +++ b/test/projects/assorted/@sls-closedsource/serverless/.base/data-stack-hash.js @@ -0,0 +1,18 @@ +/* eslint-disable import/no-extraneous-dependencies */ +import crypto from 'crypto'; +import path from 'path'; +import fs from 'smart-fs'; +import objectHash from 'object-hash-strict'; +import { load } from 'yaml-boost'; + +const identifier = crypto.randomBytes(8).toString('hex'); + +export default async (args) => { + if (args[identifier] !== undefined) { + return '--hash--'; + } + return objectHash(await load( + path.join(fs.dirname(import.meta.url), 'resolver.yml'), + { [identifier]: true, ...args, stack: 'data' } + )); +}; diff --git a/test/projects/assorted/@sls-closedsource/serverless/.base/data.yml b/test/projects/assorted/@sls-closedsource/serverless/.base/data.yml index 59da3198..f6366790 100644 --- a/test/projects/assorted/@sls-closedsource/serverless/.base/data.yml +++ b/test/projects/assorted/@sls-closedsource/serverless/.base/data.yml @@ -348,7 +348,7 @@ resources: - CfnAssumeRole - Arn dataStackHash: - Value: ${fileFn(^/data-stack-hash.cjs)} + Value: ${fileFn(^/data-stack-hash.js)} package: patterns: diff --git a/test/projects/assorted/@sls-closedsource/serverless/.base/resolver.js b/test/projects/assorted/@sls-closedsource/serverless/.base/resolver.js index 9282d359..72a5dda5 100644 --- a/test/projects/assorted/@sls-closedsource/serverless/.base/resolver.js +++ b/test/projects/assorted/@sls-closedsource/serverless/.base/resolver.js @@ -1,13 +1,13 @@ /* eslint-disable import/no-extraneous-dependencies */ import { join } from 'path'; import fs from 'smart-fs'; -import yaml from 'yaml-boost'; +import { load } from 'yaml-boost'; import objectScan from 'object-scan'; import objectHash from 'object-hash-strict'; -export default (kwargs) => { +export default async (kwargs) => { const configFile = join(fs.dirname(import.meta.url), 'resolver.yml'); - const r = yaml.load(configFile, kwargs); + const r = await load(configFile, kwargs); const logic = { 'provider.environment.*': ({ parent, property, value }) => { if (value === null) { diff --git a/test/projects/assorted/@sls-closedsource/serverless/api/random-deploy-hash.cjs b/test/projects/assorted/@sls-closedsource/serverless/api/random-deploy-hash.cjs deleted file mode 100644 index 5b417fea..00000000 --- a/test/projects/assorted/@sls-closedsource/serverless/api/random-deploy-hash.cjs +++ /dev/null @@ -1,3 +0,0 @@ -const crypto = require('crypto'); - -module.exports = crypto.randomBytes(16).toString('hex'); diff --git a/test/projects/assorted/@sls-closedsource/serverless/api/random-deploy-hash.js b/test/projects/assorted/@sls-closedsource/serverless/api/random-deploy-hash.js new file mode 100644 index 00000000..a9292610 --- /dev/null +++ b/test/projects/assorted/@sls-closedsource/serverless/api/random-deploy-hash.js @@ -0,0 +1,3 @@ +import crypto from 'crypto'; + +export default crypto.randomBytes(16).toString('hex'); diff --git a/test/projects/assorted/@sls-closedsource/test/0-sls-cf-stack.spec.js b/test/projects/assorted/@sls-closedsource/test/0-sls-cf-stack.spec.js index 617c38d6..3095db21 100644 --- a/test/projects/assorted/@sls-closedsource/test/0-sls-cf-stack.spec.js +++ b/test/projects/assorted/@sls-closedsource/test/0-sls-cf-stack.spec.js @@ -11,14 +11,14 @@ describe('Testing serverless cf stack definitions', { cryptoSeed: 'seed' }, () = let dataStack; let runner; let definedRoutes; - before(() => { + before(async () => { const loadStack = (stack) => resolver({ stack, region: 'awsRegion', env: 'local' }); - apiStack = loadStack('api'); - dataStack = loadStack('data'); + apiStack = await loadStack('api'); + dataStack = await loadStack('data'); runner = (stack) => { const stackCf = { api: apiStack, data: dataStack }[stack]; expect( diff --git a/test/projects/assorted/@sls-closedsource/test/7-sls-tags.spec.js b/test/projects/assorted/@sls-closedsource/test/7-sls-tags.spec.js index c136045d..70048ab0 100644 --- a/test/projects/assorted/@sls-closedsource/test/7-sls-tags.spec.js +++ b/test/projects/assorted/@sls-closedsource/test/7-sls-tags.spec.js @@ -38,10 +38,10 @@ describe('Testing sls resource tags', () => { let apiStack; let dataStack; - before(() => { + before(async () => { const loadStack = (stack) => resolver({ stack }); - apiStack = loadStack('api'); - dataStack = loadStack('data'); + apiStack = await loadStack('api'); + dataStack = await loadStack('data'); }); it('Testing api stack tags', () => { diff --git a/test/projects/assorted/@sls-router-scaling/serverless/api/scaling/router.yml b/test/projects/assorted/@sls-router-scaling/serverless/api/scaling/router.yml index 4e41d3da..c018ae96 100644 --- a/test/projects/assorted/@sls-router-scaling/serverless/api/scaling/router.yml +++ b/test/projects/assorted/@sls-router-scaling/serverless/api/scaling/router.yml @@ -47,7 +47,7 @@ resources: Fn::GetAtt: - ScalingRouterHookPreLambdaFunction - Arn - custom: ${file(^/../random-deploy-hash.cjs)} + custom: ${file(^/../random-deploy-hash.js)} functions: scalingRouterFn: handler: lib/hangler.scalingRouterFn diff --git a/test/projects/assorted/@sls-trigger-instance/serverless/api/triggers/trigger.yml b/test/projects/assorted/@sls-trigger-instance/serverless/api/triggers/trigger.yml index 44cd3522..40914e81 100644 --- a/test/projects/assorted/@sls-trigger-instance/serverless/api/triggers/trigger.yml +++ b/test/projects/assorted/@sls-trigger-instance/serverless/api/triggers/trigger.yml @@ -9,7 +9,7 @@ resources: 'Fn::GetAtt': - TriggersTriggerFnLambdaFunction - Arn - custom: '${file(^/../random-deploy-hash.cjs)}' + custom: '${file(^/../random-deploy-hash.js)}' functions: triggersTriggerFn: handler: lib/hangler.triggersTriggerFn