From 06542bab1df94b06b49d054f8ba13a644a53b909 Mon Sep 17 00:00:00 2001 From: masahirompp Date: 2020年11月24日 17:05:42 +0900 Subject: [PATCH 1/7] fix: check optional parameter (#5) Co-authored-by: m.onohara --- src/packagers/yarn.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packagers/yarn.ts b/src/packagers/yarn.ts index befb7ca..b528690 100644 --- a/src/packagers/yarn.ts +++ b/src/packagers/yarn.ts @@ -117,7 +117,7 @@ export class Yarn implements Packager { const args = [ 'install', '--frozen-lockfile', '--non-interactive' ]; // Convert supported packagerOptions - if (packagerOptions.ignoreScripts) { + if (packagerOptions?.ignoreScripts) { args.push('--ignore-scripts'); } From 33b7338a76f4998c18fd69bcb166e55f906d86b8 Mon Sep 17 00:00:00 2001 From: Victor Korzunin Date: 2020年12月12日 20:31:17 +0100 Subject: [PATCH 2/7] fix(logs): remove info logs to avouid output pollution fix #6 --- src/pack-externals.ts | 41 ++++++----------------------------------- 1 file changed, 6 insertions(+), 35 deletions(-) diff --git a/src/pack-externals.ts b/src/pack-externals.ts index 3a47c5c..349e838 100644 --- a/src/pack-externals.ts +++ b/src/pack-externals.ts @@ -40,7 +40,7 @@ function addModulesToPackageJson(externalModules: string[], packageJson: JSONObj /** * Resolve the needed versions of production dependencies for external modules. */ -function getProdModules(externalModules: { external: string }[], packageJsonPath: string, dependencyGraph: JSONObject) { +function getProdModules(externalModules: { external: string }[], packageJsonPath: string) { // eslint-disable-next-line @typescript-eslint/no-var-requires const packageJson = require(packageJsonPath); const prodModules: string[] = []; @@ -67,11 +67,9 @@ function getProdModules(externalModules: { external: string }[], packageJsonPath ); const peerDependencies = require(modulePackagePath).peerDependencies as Record; if (!isEmpty(peerDependencies)) { - console.log(`Adding explicit peers for dependency ${externalModule.external}`); const peerModules = getProdModules( compose(map(([external]) => ({ external })), toPairs)(peerDependencies), - packageJsonPath, - dependencyGraph + packageJsonPath ); Array.prototype.push.apply(prodModules, peerModules); } @@ -88,15 +86,8 @@ function getProdModules(externalModules: { external: string }[], packageJsonPath if (!includes(externalModule.external, ignoredDevDependencies)) { // Runtime dependency found in devDependencies but not forcefully excluded - console.log( - `ERROR: Runtime dependency '${externalModule.external}' found in devDependencies.` - ); throw new Error(`dependency error: ${externalModule.external}.`); } - - console.log( - `INFO: Runtime dependency '${externalModule.external}' found in devDependencies. It has been excluded automatically.` - ); } } }, externalModules); @@ -131,18 +122,12 @@ export function packExternalModules(externals: string[], cwd: string, compositeM const packageJson = fs.readJsonSync(packageJsonPath); const packageSections = pick(packager.copyPackageSectionNames, packageJson); - // Get first level dependency graph - console.log(`Fetch dependency graph from ${packageJsonPath}`); - - const dependencyGraph = packager.getProdDependencies(path.dirname(packageJsonPath), 1); - // (1) Generate dependency composition const externalModules = externals.map(external => ({ external })); - const compositeModules: JSONObject = uniq(getProdModules(externalModules, packageJsonPath, dependencyGraph)); + const compositeModules: JSONObject = uniq(getProdModules(externalModules, packageJsonPath)); if (isEmpty(compositeModules)) { // The compiled code does not reference any external modules at all - console.log('No external modules needed'); return; } @@ -166,27 +151,13 @@ export function packExternalModules(externals: string[], cwd: string, compositeM const packageLockPath = path.join(path.dirname(packageJsonPath), packager.lockfileName); if (fs.existsSync(packageLockPath)) { - console.log('Package lock found - Using locked versions'); - try { - let packageLockFile = fs.readJsonSync(packageLockPath); - packageLockFile = packager.rebaseLockfile(relativePath, packageLockFile); - fs.writeJsonSync(path.join(compositeModulePath, packager.lockfileName), packageLockFile); - } catch (err) { - console.log(`Warning: Could not read lock file: ${err.message}`); - } + let packageLockFile = fs.readJsonSync(packageLockPath); + packageLockFile = packager.rebaseLockfile(relativePath, packageLockFile); + fs.writeJsonSync(path.join(compositeModulePath, packager.lockfileName), packageLockFile); } - const start = Date.now(); - console.log('Packing external modules: ' + compositeModules.join(', ')); - packager.install(compositeModulePath); - console.log(`Package took [${Date.now() - start} ms]`); - // Prune extraneous packages - removes not needed ones - const startPrune = Date.now(); - packager.prune(compositeModulePath); - - console.log(`Prune: ${compositeModulePath} [${Date.now() - startPrune} ms]`); } From 007b1343180e6b40471c2494a74557185d340c5d Mon Sep 17 00:00:00 2001 From: Victor Korzunin Date: 2020年12月12日 20:33:28 +0100 Subject: [PATCH 3/7] fix(packager): fix project root resolving, so .git folder has lowest priority --- package.json | 1 + src/utils.ts | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 127dfff..8153c2c 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ ], "scripts": { "prepublishOnly": "npm run build", + "postinstall": "npm run build", "precommit": "npm run lint", "build": "npm run clean && tsc", "clean": "rm -rf ./dist", diff --git a/src/utils.ts b/src/utils.ts index 1800528..0bbf451 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -92,10 +92,10 @@ export function findUp(name: string, directory: string = process.cwd()): string */ export function findProjectRoot(rootDir?: string): string | undefined { return rootDir - ?? findUp(`.git${path.sep}`) ?? findUp('yarn.lock') ?? findUp('package-lock.json') - ?? findUp('package.json'); + ?? findUp('package.json') + ?? findUp(`.git${path.sep}`); } /** From 169ad0cc034b68c7f6a6060b6f16ee7187551511 Mon Sep 17 00:00:00 2001 From: Victor Korzunin Date: 2020年12月13日 12:17:48 +0100 Subject: [PATCH 4/7] revert: revert postinstall script fix #8 --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 8153c2c..127dfff 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,6 @@ ], "scripts": { "prepublishOnly": "npm run build", - "postinstall": "npm run build", "precommit": "npm run lint", "build": "npm run clean && tsc", "clean": "rm -rf ./dist", From e34480ce73d33680c9568d87fb30c989d3f53d98 Mon Sep 17 00:00:00 2001 From: Victor Korzunin Date: 2020年12月13日 15:41:11 +0100 Subject: [PATCH 5/7] fix: let overwrite exclude option defauls fix #9 --- src/function.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/function.ts b/src/function.ts index 0201a8c..c5e9b67 100644 --- a/src/function.ts +++ b/src/function.ts @@ -30,7 +30,7 @@ export class NodejsFunction extends lambda.Function { const withDefaultOptions = mergeRight(DEFAULT_BUILD_OPTIONS); const buildOptions = withDefaultOptions(props.esbuildOptions ?? {}); - const exclude = union(props.exclude || [], ['aws-sdk']); + const exclude = props.exclude ?? ['aws-sdk']; const packager = props.packager ?? true; const handler = props.handler ?? 'index.handler'; const defaultRuntime = nodeMajorVersion()>= 12 From efc7f11937356eacd4de946061b8e6936afb85da Mon Sep 17 00:00:00 2001 From: Victor Korzunin Date: 2021年3月14日 22:10:31 +0100 Subject: [PATCH 6/7] chore: funding --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 7f39679..ccc0b43 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,4 @@ +github: floydspace patreon: floydspace issuehunt: floydspace ko_fi: floydspace From 6fc103d6e90808912405d3b80962a3e487c029fc Mon Sep 17 00:00:00 2001 From: Victor Korzunin Date: 2021年7月19日 15:55:38 +0500 Subject: [PATCH 7/7] fix(runtime): fix default runtime fix #10 --- package.json | 6 +++--- src/function.ts | 21 +++++++++++++++------ src/utils.ts | 20 +++----------------- 3 files changed, 21 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index 127dfff..cb7c49a 100644 --- a/package.json +++ b/package.json @@ -44,9 +44,9 @@ "typescript" ], "devDependencies": { - "@aws-cdk/assert": "^1.70.0", - "@aws-cdk/aws-lambda": "^1.70.0", - "@aws-cdk/core": "^1.70.0", + "@aws-cdk/assert": "^1.114.0", + "@aws-cdk/aws-lambda": "^1.114.0", + "@aws-cdk/core": "^1.114.0", "@commitlint/cli": "^11.0.0", "@commitlint/config-conventional": "^11.0.0", "@types/fs-extra": "^9.0.2", diff --git a/src/function.ts b/src/function.ts index c5e9b67..f6963b6 100644 --- a/src/function.ts +++ b/src/function.ts @@ -6,12 +6,23 @@ import { mergeRight, union, without } from 'ramda'; import { packExternalModules } from './pack-externals'; import { NodejsFunctionProps } from './props'; -import { extractFileName, findProjectRoot, NodeMajorESMap, nodeMajorVersion } from './utils'; +import { extractFileName, findProjectRoot, nodeMajorVersion } from './utils'; const BUILD_FOLDER = '.build'; const DEFAULT_BUILD_OPTIONS: es.BuildOptions = { bundle: true, - target: NodeMajorESMap[nodeMajorVersion()], + target: `node${nodeMajorVersion()}`, +}; + +const NodeMajorMap = { + 8: lambda.Runtime.NODEJS_8_10, + 9: lambda.Runtime.NODEJS_8_10, + 10: lambda.Runtime.NODEJS_10_X, + 11: lambda.Runtime.NODEJS_10_X, + 12: lambda.Runtime.NODEJS_12_X, + 13: lambda.Runtime.NODEJS_12_X, + 14: lambda.Runtime.NODEJS_14_X, + 15: lambda.Runtime.NODEJS_14_X, }; /** @@ -33,9 +44,7 @@ export class NodejsFunction extends lambda.Function { const exclude = props.exclude ?? ['aws-sdk']; const packager = props.packager ?? true; const handler = props.handler ?? 'index.handler'; - const defaultRuntime = nodeMajorVersion()>= 12 - ? lambda.Runtime.NODEJS_12_X - : lambda.Runtime.NODEJS_10_X; + const defaultRuntime = NodeMajorMap[nodeMajorVersion()]; const runtime = props.runtime ?? defaultRuntime; const entry = extractFileName(projectRoot, handler); @@ -52,7 +61,7 @@ export class NodejsFunction extends lambda.Function { without(exclude, buildOptions.external || []), projectRoot, path.join(projectRoot, BUILD_FOLDER), - packager !== true ? packager : undefined, + packager !== true ? packager : undefined ); } diff --git a/src/utils.ts b/src/utils.ts index 0bbf451..5cbba91 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -91,11 +91,9 @@ export function findUp(name: string, directory: string = process.cwd()): string * Forwards `rootDir` or finds project root folder. */ export function findProjectRoot(rootDir?: string): string | undefined { - return rootDir - ?? findUp('yarn.lock') - ?? findUp('package-lock.json') - ?? findUp('package.json') - ?? findUp(`.git${path.sep}`); + return ( + rootDir ?? findUp('yarn.lock') ?? findUp('package-lock.json') ?? findUp('package.json') ?? findUp(`.git${path.sep}`) + ); } /** @@ -105,18 +103,6 @@ export function nodeMajorVersion(): number { return parseInt(process.versions.node.split('.')[0], 10); } -export const NodeMajorESMap = { - 8: 'es2016', - 9: 'es2017', - 10: 'es2018', - 11: 'es2018', - 12: 'es2019', - 13: 'es2019', - 14: 'es2020', - 15: 'es2020', - 16: 'esnext', -}; - /** * Returns the package manager currently active if the program is executed * through an npm or yarn script like:

AltStyle によって変換されたページ (->オリジナル) /