Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 4 additions & 16 deletions src/bundle.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import assert from 'assert';
import { Predicate } from 'effect';
import type { BuildOptions } from 'esbuild';
import * as pkg from 'esbuild';
import { build } from 'esbuild';
import fs from 'fs-extra';
import pMap from 'p-map';
import path from 'path';
import { uniq } from 'ramda';

import type EsbuildServerlessPlugin from './index';
import { asArray, assertIsString, isESM } from './helper';
import type { EsbuildOptions, FileBuildResult, FunctionBuildResult, BuildContext } from './types';
import type { EsbuildOptions, FileBuildResult, FunctionBuildResult } from './types';
import { trimExtension } from './utils';

const getStringArray = (input: unknown): string[] => asArray(input).filter(Predicate.isString);
Expand Down Expand Up @@ -105,19 +105,7 @@ export async function bundle(this: EsbuildServerlessPlugin): Promise<void> {
outdir: path.join(buildDirPath, path.dirname(entry)),
};

type ContextFn = (opts: typeof options) => Promise<BuildContext>;
type WithContext = typeof pkg & { context?: ContextFn };
const context = buildOptions.skipRebuild ? undefined : await (pkg as WithContext).context?.(options);

let result;
if (!buildOptions.skipRebuild) {
result = await context?.rebuild();
if (!result) {
result = await pkg.build(options);
}
} else {
result = await pkg.build(options);
}
const result = await build(options);

if (config.metafile) {
fs.writeFileSync(
Expand All @@ -126,7 +114,7 @@ export async function bundle(this: EsbuildServerlessPlugin): Promise<void> {
);
}

return { bundlePath, entry, result, context };
return { bundlePath, entry, result };
};

// Files can contain multiple handlers for multiple functions, we want to get only the unique ones
Expand Down
Loading