diff --git a/cdk/cloudformation.ts b/cdk/cloudformation.ts index 4c3d04f..5a0c214 100644 --- a/cdk/cloudformation.ts +++ b/cdk/cloudformation.ts @@ -1,58 +1,13 @@ import { TestApp } from './TestApp' -import * as path from 'path' -import { promises as fs } from 'fs' -import { getLambdaSourceCodeBucketName } from './getLambdaSourceCodeBucketName' -import { TestStackLambdas } from './TestStack' -import { packBaseLayer, packLayeredLambdas, WebpackMode } from '../src' +import { prepareResources } from './prepareResources' const stackName = process.env.STACK_NAME -if (!stackName) { +if (stackName === undefined) { console.error(`STACK_NAME not set!`) process.exit(1) } -const prepareResources = async ({ - stackName, - rootDir, -}: { - stackName: string - rootDir: string -}) => { - // Pack the lambdas - const outDir = path.resolve(rootDir, 'dist', 'lambdas') - try { - await fs.stat(outDir) - } catch (_) { - await fs.mkdir(outDir) - } - const sourceCodeBucketName = await getLambdaSourceCodeBucketName({ - stackName, - }) - const baseLayerZipFileName = await packBaseLayer({ - srcDir: rootDir, - outDir, - Bucket: sourceCodeBucketName, - }) - const lambdas = await packLayeredLambdas({ - id: 'test-lambdas', - mode: WebpackMode.production, - srcDir: rootDir, - outDir, - Bucket: sourceCodeBucketName, - lambdas: { - uuid: path.resolve(rootDir, 'test', 'uuidLambda.ts'), - }, - tsConfig: path.resolve(rootDir, 'tsconfig.json'), - }) - - return { - sourceCodeBucketName, - baseLayerZipFileName, - lambdas, - } -} - prepareResources({ stackName, rootDir: process.cwd(), diff --git a/cdk/prepareResources.ts b/cdk/prepareResources.ts new file mode 100644 index 0000000..12aea08 --- /dev/null +++ b/cdk/prepareResources.ts @@ -0,0 +1,55 @@ +import * as path from 'path' +import { promises as fs } from 'fs' +import { getLambdaSourceCodeBucketName } from './getLambdaSourceCodeBucketName' +import { TestStackLambdas } from './TestStack' +import { + packBaseLayer, + packLayeredLambdas, + WebpackMode, + LayeredLambdas, +} from '../src' + +export const prepareResources = async ({ + stackName, + rootDir, +}: { + stackName: string + rootDir: string +}): Promise<{ + sourceCodeBucketName: string + baseLayerZipFileName: string + lambdas: LayeredLambdas +}> => { + // Pack the lambdas + const outDir = path.resolve(rootDir, 'dist', 'lambdas') + try { + await fs.stat(outDir) + } catch (_) { + await fs.mkdir(outDir) + } + const sourceCodeBucketName = await getLambdaSourceCodeBucketName({ + stackName, + }) + const baseLayerZipFileName = await packBaseLayer({ + srcDir: rootDir, + outDir, + Bucket: sourceCodeBucketName, + }) + const lambdas = await packLayeredLambdas({ + id: 'test-lambdas', + mode: WebpackMode.production, + srcDir: rootDir, + outDir, + Bucket: sourceCodeBucketName, + lambdas: { + uuid: path.resolve(rootDir, 'test', 'uuidLambda.ts'), + }, + tsConfig: path.resolve(rootDir, 'tsconfig.json'), + }) + + return { + sourceCodeBucketName, + baseLayerZipFileName, + lambdas, + } +}