@architect/hydrate
Advanced tools
Comparing version 3.1.6-RC.0 to 3.1.6
{ | ||
"name": "@architect/hydrate", | ||
"version": "3.1.6-RC.0", | ||
"version": "3.1.6", | ||
"description": "Architect dependency hydrator and shared file manager", | ||
@@ -36,3 +36,3 @@ "main": "src/index.js", | ||
"dependencies": { | ||
"@architect/inventory": "~3.3.4-RC.0", | ||
"@architect/inventory": "~3.3.4", | ||
"@architect/utils": "~3.1.2", | ||
@@ -39,0 +39,0 @@ "acorn-loose": "~8.3.0", |
@@ -19,2 +19,3 @@ let { readFileSync } = require('fs') | ||
let isESM = !!(hasImport) | ||
let statement = isESM ? 'imports' : 'requires' | ||
@@ -33,3 +34,3 @@ let called = [] | ||
if (r.init?.value) called.push(r.init.value) | ||
else update.warn(`Dynamic ${isESM ? 'imports' : 'requires'} are not supported, dependency may not be installed: ${dir} imports '${id}'`) | ||
else update.warn(`Lambda treeshaking does not support dynamic ${statement}, dependency may not be installed: ${dir} ${statement} '${id}'`) | ||
}) | ||
@@ -36,0 +37,0 @@ } |
@@ -6,2 +6,6 @@ let { existsSync, renameSync, writeFileSync } = require('fs') | ||
let getLambdaDeps = require('./get-lambda-deps') | ||
let sdkInfo = 'Architect does not manage AWS SDK, thus this code may be broken when deployed. See more at: https://arc.codes/aws-sdk-versions' | ||
let sdkV2 = `'aws-sdk' (v2)` | ||
let sdkV3short = `'@aws-sdk/*' (v3)` | ||
let sdkV3long = `one or more ${sdkV3short} modules` | ||
@@ -32,4 +36,4 @@ module.exports = function autoinstaller (params) { | ||
let { | ||
sharedDeps, sharedFiles, /* sharedAwsSdkV2, sharedAwsSdkV3, */ | ||
viewsDeps, viewsFiles, /* viewsAwsSdkV2, viewsAwsSdkV3, */ | ||
sharedDeps, sharedFiles, sharedAwsSdkV2, sharedAwsSdkV3, | ||
viewsDeps, viewsFiles, viewsAwsSdkV2, viewsAwsSdkV3, | ||
} = shared | ||
@@ -39,7 +43,30 @@ projectDirs += shared.projectDirs | ||
// TODO warn for shared/views | ||
// Complain about possible shared code / AWS SDK issues | ||
let foundSharedIssueWithAwsSdkV2 = 0, foundSharedIssueWithAwsSdkV3 = 0, foundViewsIssueWithAwsSdkV2 = 0, foundViewsIssueWithAwsSdkV3 = 0 | ||
Object.values(inventory.inv.lambdasBySrcDir).forEach(lambda => { | ||
// Multi-tenant Lambda check | ||
if (Array.isArray(lambda)) lambda = lambda[0] | ||
let { runtime, shared, views } = lambda.config | ||
if (!runtime.startsWith('nodejs')) return | ||
let hasSdkV3 = runtime >= 'nodejs18.x' | ||
let hasSdkV2 = runtime < 'nodejs18.x' | ||
if (!foundSharedIssueWithAwsSdkV2 && shared && sharedAwsSdkV2 && hasSdkV3) foundSharedIssueWithAwsSdkV2++ | ||
if (!foundSharedIssueWithAwsSdkV3 && shared && sharedAwsSdkV3 && hasSdkV2) foundSharedIssueWithAwsSdkV3++ | ||
if (!foundViewsIssueWithAwsSdkV2 && views && viewsAwsSdkV2 && hasSdkV3) foundViewsIssueWithAwsSdkV2++ | ||
if (!foundViewsIssueWithAwsSdkV3 && views && viewsAwsSdkV3 && hasSdkV2) foundViewsIssueWithAwsSdkV3++ | ||
}) | ||
let sharedWarnings = [] | ||
if (foundSharedIssueWithAwsSdkV2) sharedWarnings.push(`- Found shared code that imports or requires ${sdkV2}; ${foundSharedIssueWithAwsSdkV2} Lambda(s) only have ${sdkV3short} built in`) | ||
if (foundSharedIssueWithAwsSdkV3) sharedWarnings.push(`- Found shared code that imports or requires ${sdkV3long}; ${foundSharedIssueWithAwsSdkV3} Lambda(s) only have ${sdkV2} built in`) | ||
if (foundViewsIssueWithAwsSdkV2) sharedWarnings.push(`- Found views code that imports or requires ${sdkV2}; ${foundViewsIssueWithAwsSdkV2} Lambda(s) only have ${sdkV3short} built in`) | ||
if (foundViewsIssueWithAwsSdkV3) sharedWarnings.push(`- Found views code that imports or requires ${sdkV3long}; ${foundViewsIssueWithAwsSdkV3} Lambda(s) only have ${sdkV2} built in`) | ||
if (sharedWarnings.length) { | ||
sharedWarnings.unshift('Found possible AWS SDK version mismatches in Architect shared code') | ||
sharedWarnings.push(sdkInfo) | ||
update.warn(sharedWarnings.join('\n')) | ||
} | ||
let v2Warnings = [] | ||
let v3Warnings = [] | ||
dirs.forEach(dir => { | ||
@@ -117,3 +144,3 @@ projectDirs++ | ||
depWarnings.push( | ||
msg(plural(v2Warnings), `'aws-sdk'`), | ||
msg(plural(v2Warnings), sdkV2), | ||
...v2Warnings, | ||
@@ -124,9 +151,9 @@ ) | ||
depWarnings.push( | ||
msg(plural(v3Warnings), `one or more '@aws-sdk/*' (V3) modules`), | ||
msg(plural(v3Warnings), sdkV3long), | ||
...v3Warnings, | ||
) | ||
} | ||
if (depWarnings) { | ||
depWarnings.unshift('Found following possible AWS SDK version mismatches!') | ||
depWarnings.push('Architect does not manage AWS SDK, thus this code may be broken when deployed. See more at: https://arc.codes/aws-sdk-versions') | ||
if (depWarnings.length) { | ||
depWarnings.unshift('Found possible AWS SDK version mismatches in Lambda handler code') | ||
depWarnings.push(sdkInfo) | ||
update.warn(depWarnings.join('\n')) | ||
@@ -133,0 +160,0 @@ } |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
59175
1128
0
Updated@architect/inventory@~3.3.4