Skip to content

Commit

Permalink
Merge pull request #2 from smbkr/fix-paths
Browse files Browse the repository at this point in the history
  • Loading branch information
adriencaccia authored Feb 11, 2022
2 parents aa01146 + 41aaba8 commit e164344
Showing 1 changed file with 21 additions and 9 deletions.
30 changes: 21 additions & 9 deletions plugin/bundleVisualizer.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { exec } from 'child_process';
import { readdirSync, statSync } from 'fs';
import { join } from 'path';
import { join, parse } from 'path';
import { FunctionDefinitionHandler } from 'serverless';

import type { ServerlessAnalyzeBundlePlugin } from './serverlessAnalyzeBundle';

Expand Down Expand Up @@ -43,12 +44,10 @@ async function bundleVisualizer(this: ServerlessAnalyzeBundlePlugin): Promise<vo
if (functionName === undefined) {
return;
}
const slsFunction = this.serverless.service.getFunction(functionName);

const functionZipName = this.serverless.service
.getAllFunctionsNames()
.find(fullFunctionName => fullFunctionName.endsWith(functionName));

if (functionZipName === undefined) {
const fullZipPath = slsFunction.package?.artifact;
if (fullZipPath === undefined) {
this.serverless.cli.log(
`🤯 Analyze failed: function ${functionName} was not found`,
'ServerlessAnalyzeBundlePlugin',
Expand All @@ -57,6 +56,7 @@ async function bundleVisualizer(this: ServerlessAnalyzeBundlePlugin): Promise<vo

return;
}
const functionZipName = parse(fullZipPath).base;

this.serverless.cli.log(`⏳ Analyzing function ${functionName}`, 'ServerlessAnalyzeBundlePlugin');

Expand All @@ -65,10 +65,22 @@ async function bundleVisualizer(this: ServerlessAnalyzeBundlePlugin): Promise<vo

await pExec(`unzip .serverless/${functionZipName} -d ${TEMP_DIR_LOCATION}`);

const test = getAllFiles(`${TEMP_DIR_LOCATION}`);
const metafileName = test.filter(
fileName => fileName.includes(`/${functionName}/`) && fileName.endsWith('-meta.json'),
const allFiles = getAllFiles(`${TEMP_DIR_LOCATION}`);
const handlerPath = (slsFunction as FunctionDefinitionHandler).handler.split('.')[0];
const metafileName = allFiles.filter(
fileName => fileName.includes(handlerPath) && fileName.endsWith('-meta.json'),
)[0];

if (!metafileName) {
this.serverless.cli.log(
`🤯 Analyze failed: function ${functionName} metadata was not found`,
'ServerlessAnalyzeBundlePlugin',
{ color: 'red' },
);

return;
}

await pExec(
[
'node_modules/.bin/esbuild-visualizer',
Expand Down

0 comments on commit e164344

Please sign in to comment.