faastjs
Version:
Serverless batch computing made simple.
65 lines • 7.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const ava_1 = tslib_1.__importDefault(require("ava"));
const client_lambda_1 = require("@aws-sdk/client-lambda");
const uuid_1 = require("uuid");
const aws_npm_1 = require("../src/aws/aws-npm");
const util_1 = require("./fixtures/util");
const lambda = new client_lambda_1.Lambda({ region: "us-west-2" });
async function testNpmInstall(t, packageJsonContents, bigPackage) {
const LayerName = `faast-test-layer-${(0, uuid_1.v4)()}`;
const FunctionName = `faast-${(0, uuid_1.v4)()}`;
let layerInfo;
let installLog;
try {
const result = await (0, aws_npm_1.npmInstall)({
LayerName,
FunctionName,
packageJsonContents,
region: "us-west-2",
quiet: true,
retentionInDays: 1
});
if (bigPackage) {
t.true(result.zipSize > 50 * 2 ** 20);
}
({ layerInfo, installLog } = result);
t.is(layerInfo.LayerName, LayerName);
t.true(typeof layerInfo.Version === "number");
t.regex(installLog, /added [0-9]+ package/);
const cachedResult = await (0, aws_npm_1.npmInstall)({
LayerName,
FunctionName,
packageJsonContents,
region: "us-west-2",
quiet: true,
retentionInDays: 1
});
t.deepEqual(cachedResult.layerInfo, layerInfo);
}
finally {
if (layerInfo) {
await lambda.deleteLayerVersion({
LayerName,
VersionNumber: layerInfo.Version
});
}
}
}
const puppeteerPackage = JSON.stringify({
dependencies: {
"chrome-aws-lambda": "latest",
"puppeteer-core": "latest",
typescript: "latest",
"aws-sdk": "latest"
}
});
ava_1.default.serial((0, util_1.title)("aws", `npm-install with Lambda Layer larger than 50MB`), testNpmInstall, puppeteerPackage, true);
const tslibPackage = JSON.stringify({
dependencies: {
tslib: "latest"
}
});
ava_1.default.serial((0, util_1.title)("aws", "npm-install with Lambda Layer less than 50MB"), testNpmInstall, tslibPackage, false);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLW5wbS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9hd3MtbnBtLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQTZDO0FBQzdDLDBEQUFnRDtBQUNoRCwrQkFBa0M7QUFDbEMsZ0RBQThEO0FBQzlELDBDQUF3QztBQUV4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUVuRCxLQUFLLFVBQVUsY0FBYyxDQUN6QixDQUFtQixFQUNuQixtQkFBMkIsRUFDM0IsVUFBbUI7SUFFbkIsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLElBQUEsU0FBSSxHQUFFLEVBQUUsQ0FBQztJQUMvQyxNQUFNLFlBQVksR0FBRyxTQUFTLElBQUEsU0FBSSxHQUFFLEVBQUUsQ0FBQztJQUN2QyxJQUFJLFNBQW1DLENBQUM7SUFDeEMsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUk7UUFDQSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsb0JBQVUsRUFBQztZQUM1QixTQUFTO1lBQ1QsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixNQUFNLEVBQUUsV0FBVztZQUNuQixLQUFLLEVBQUUsSUFBSTtZQUNYLGVBQWUsRUFBRSxDQUFDO1NBQ3JCLENBQUMsQ0FBQztRQUNILElBQUksVUFBVSxFQUFFO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFDRCxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sU0FBUyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBQSxvQkFBVSxFQUFDO1lBQ2xDLFNBQVM7WUFDVCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLE1BQU0sRUFBRSxXQUFXO1lBQ25CLEtBQUssRUFBRSxJQUFJO1lBQ1gsZUFBZSxFQUFFLENBQUM7U0FDckIsQ0FBQyxDQUFDO1FBRUgsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0tBQ2xEO1lBQVM7UUFDTixJQUFJLFNBQVMsRUFBRTtZQUNYLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDO2dCQUM1QixTQUFTO2dCQUNULGFBQWEsRUFBRSxTQUFTLENBQUMsT0FBTzthQUNuQyxDQUFDLENBQUM7U0FDTjtLQUNKO0FBQ0wsQ0FBQztBQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNwQyxZQUFZLEVBQUU7UUFDVixtQkFBbUIsRUFBRSxRQUFRO1FBQzdCLGdCQUFnQixFQUFFLFFBQVE7UUFDMUIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsU0FBUyxFQUFFLFFBQVE7S0FDdEI7Q0FDSixDQUFDLENBQUM7QUFFSCxhQUFJLENBQUMsTUFBTSxDQUNQLElBQUEsWUFBSyxFQUFDLEtBQUssRUFBRSxnREFBZ0QsQ0FBQyxFQUM5RCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLElBQUksQ0FDUCxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNoQyxZQUFZLEVBQUU7UUFDVixLQUFLLEVBQUUsUUFBUTtLQUNsQjtDQUNKLENBQUMsQ0FBQztBQUVILGFBQUksQ0FBQyxNQUFNLENBQ1AsSUFBQSxZQUFLLEVBQUMsS0FBSyxFQUFFLDhDQUE4QyxDQUFDLEVBQzVELGNBQWMsRUFDZCxZQUFZLEVBQ1osS0FBSyxDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdGVzdCwgeyBFeGVjdXRpb25Db250ZXh0IH0gZnJvbSBcImF2YVwiO1xuaW1wb3J0IHsgTGFtYmRhIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1sYW1iZGFcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tIFwidXVpZFwiO1xuaW1wb3J0IHsgQXdzTGF5ZXJJbmZvLCBucG1JbnN0YWxsIH0gZnJvbSBcIi4uL3NyYy9hd3MvYXdzLW5wbVwiO1xuaW1wb3J0IHsgdGl0bGUgfSBmcm9tIFwiLi9maXh0dXJlcy91dGlsXCI7XG5cbmNvbnN0IGxhbWJkYSA9IG5ldyBMYW1iZGEoeyByZWdpb246IFwidXMtd2VzdC0yXCIgfSk7XG5cbmFzeW5jIGZ1bmN0aW9uIHRlc3ROcG1JbnN0YWxsKFxuICAgIHQ6IEV4ZWN1dGlvbkNvbnRleHQsXG4gICAgcGFja2FnZUpzb25Db250ZW50czogc3RyaW5nLFxuICAgIGJpZ1BhY2thZ2U6IGJvb2xlYW5cbikge1xuICAgIGNvbnN0IExheWVyTmFtZSA9IGBmYWFzdC10ZXN0LWxheWVyLSR7dXVpZCgpfWA7XG4gICAgY29uc3QgRnVuY3Rpb25OYW1lID0gYGZhYXN0LSR7dXVpZCgpfWA7XG4gICAgbGV0IGxheWVySW5mbzogQXdzTGF5ZXJJbmZvIHwgdW5kZWZpbmVkO1xuICAgIGxldCBpbnN0YWxsTG9nOiBzdHJpbmc7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbnBtSW5zdGFsbCh7XG4gICAgICAgICAgICBMYXllck5hbWUsXG4gICAgICAgICAgICBGdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICBwYWNrYWdlSnNvbkNvbnRlbnRzLFxuICAgICAgICAgICAgcmVnaW9uOiBcInVzLXdlc3QtMlwiLFxuICAgICAgICAgICAgcXVpZXQ6IHRydWUsXG4gICAgICAgICAgICByZXRlbnRpb25JbkRheXM6IDFcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChiaWdQYWNrYWdlKSB7XG4gICAgICAgICAgICB0LnRydWUocmVzdWx0LnppcFNpemUhID4gNTAgKiAyICoqIDIwKTtcbiAgICAgICAgfVxuICAgICAgICAoeyBsYXllckluZm8sIGluc3RhbGxMb2cgfSA9IHJlc3VsdCk7XG4gICAgICAgIHQuaXMobGF5ZXJJbmZvLkxheWVyTmFtZSwgTGF5ZXJOYW1lKTtcbiAgICAgICAgdC50cnVlKHR5cGVvZiBsYXllckluZm8uVmVyc2lvbiA9PT0gXCJudW1iZXJcIik7XG4gICAgICAgIHQucmVnZXgoaW5zdGFsbExvZywgL2FkZGVkIFswLTldKyBwYWNrYWdlLyk7XG5cbiAgICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gYXdhaXQgbnBtSW5zdGFsbCh7XG4gICAgICAgICAgICBMYXllck5hbWUsXG4gICAgICAgICAgICBGdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICBwYWNrYWdlSnNvbkNvbnRlbnRzLFxuICAgICAgICAgICAgcmVnaW9uOiBcInVzLXdlc3QtMlwiLFxuICAgICAgICAgICAgcXVpZXQ6IHRydWUsXG4gICAgICAgICAgICByZXRlbnRpb25JbkRheXM6IDFcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdC5kZWVwRXF1YWwoY2FjaGVkUmVzdWx0LmxheWVySW5mbywgbGF5ZXJJbmZvKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAobGF5ZXJJbmZvKSB7XG4gICAgICAgICAgICBhd2FpdCBsYW1iZGEuZGVsZXRlTGF5ZXJWZXJzaW9uKHtcbiAgICAgICAgICAgICAgICBMYXllck5hbWUsXG4gICAgICAgICAgICAgICAgVmVyc2lvbk51bWJlcjogbGF5ZXJJbmZvLlZlcnNpb25cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jb25zdCBwdXBwZXRlZXJQYWNrYWdlID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgIGRlcGVuZGVuY2llczoge1xuICAgICAgICBcImNocm9tZS1hd3MtbGFtYmRhXCI6IFwibGF0ZXN0XCIsXG4gICAgICAgIFwicHVwcGV0ZWVyLWNvcmVcIjogXCJsYXRlc3RcIixcbiAgICAgICAgdHlwZXNjcmlwdDogXCJsYXRlc3RcIixcbiAgICAgICAgXCJhd3Mtc2RrXCI6IFwibGF0ZXN0XCJcbiAgICB9XG59KTtcblxudGVzdC5zZXJpYWwoXG4gICAgdGl0bGUoXCJhd3NcIiwgYG5wbS1pbnN0YWxsIHdpdGggTGFtYmRhIExheWVyIGxhcmdlciB0aGFuIDUwTUJgKSxcbiAgICB0ZXN0TnBtSW5zdGFsbCxcbiAgICBwdXBwZXRlZXJQYWNrYWdlLFxuICAgIHRydWVcbik7XG5cbmNvbnN0IHRzbGliUGFja2FnZSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBkZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgdHNsaWI6IFwibGF0ZXN0XCJcbiAgICB9XG59KTtcblxudGVzdC5zZXJpYWwoXG4gICAgdGl0bGUoXCJhd3NcIiwgXCJucG0taW5zdGFsbCB3aXRoIExhbWJkYSBMYXllciBsZXNzIHRoYW4gNTBNQlwiKSxcbiAgICB0ZXN0TnBtSW5zdGFsbCxcbiAgICB0c2xpYlBhY2thZ2UsXG4gICAgZmFsc2Vcbik7XG4iXX0=