faastjs
Version:
Serverless batch computing made simple.
65 lines • 7.8 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLW5wbS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9hd3MtbnBtLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQTZDO0FBQzdDLDBEQUFnRDtBQUNoRCwrQkFBa0M7QUFDbEMsZ0RBQThEO0FBQzlELDBDQUF3QztBQUV4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUVuRCxLQUFLLFVBQVUsY0FBYyxDQUN6QixDQUFtQixFQUNuQixtQkFBMkIsRUFDM0IsVUFBbUI7SUFFbkIsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLElBQUEsU0FBSSxHQUFFLEVBQUUsQ0FBQztJQUMvQyxNQUFNLFlBQVksR0FBRyxTQUFTLElBQUEsU0FBSSxHQUFFLEVBQUUsQ0FBQztJQUN2QyxJQUFJLFNBQW1DLENBQUM7SUFDeEMsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxvQkFBVSxFQUFDO1lBQzVCLFNBQVM7WUFDVCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLE1BQU0sRUFBRSxXQUFXO1lBQ25CLEtBQUssRUFBRSxJQUFJO1lBQ1gsZUFBZSxFQUFFLENBQUM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sU0FBUyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBQSxvQkFBVSxFQUFDO1lBQ2xDLFNBQVM7WUFDVCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLE1BQU0sRUFBRSxXQUFXO1lBQ25CLEtBQUssRUFBRSxJQUFJO1lBQ1gsZUFBZSxFQUFFLENBQUM7U0FDckIsQ0FBQyxDQUFDO1FBRUgsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7WUFBUyxDQUFDO1FBQ1AsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDO2dCQUM1QixTQUFTO2dCQUNULGFBQWEsRUFBRSxTQUFTLENBQUMsT0FBTzthQUNuQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDcEMsWUFBWSxFQUFFO1FBQ1YsbUJBQW1CLEVBQUUsUUFBUTtRQUM3QixnQkFBZ0IsRUFBRSxRQUFRO1FBQzFCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFNBQVMsRUFBRSxRQUFRO0tBQ3RCO0NBQ0osQ0FBQyxDQUFDO0FBRUgsYUFBSSxDQUFDLE1BQU0sQ0FDUCxJQUFBLFlBQUssRUFBQyxLQUFLLEVBQUUsZ0RBQWdELENBQUMsRUFDOUQsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixJQUFJLENBQ1AsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDaEMsWUFBWSxFQUFFO1FBQ1YsS0FBSyxFQUFFLFFBQVE7S0FDbEI7Q0FDSixDQUFDLENBQUM7QUFFSCxhQUFJLENBQUMsTUFBTSxDQUNQLElBQUEsWUFBSyxFQUFDLEtBQUssRUFBRSw4Q0FBOEMsQ0FBQyxFQUM1RCxjQUFjLEVBQ2QsWUFBWSxFQUNaLEtBQUssQ0FDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRlc3QsIHsgRXhlY3V0aW9uQ29udGV4dCB9IGZyb20gXCJhdmFcIjtcbmltcG9ydCB7IExhbWJkYSB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtbGFtYmRhXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSBcInV1aWRcIjtcbmltcG9ydCB7IEF3c0xheWVySW5mbywgbnBtSW5zdGFsbCB9IGZyb20gXCIuLi9zcmMvYXdzL2F3cy1ucG1cIjtcbmltcG9ydCB7IHRpdGxlIH0gZnJvbSBcIi4vZml4dHVyZXMvdXRpbFwiO1xuXG5jb25zdCBsYW1iZGEgPSBuZXcgTGFtYmRhKHsgcmVnaW9uOiBcInVzLXdlc3QtMlwiIH0pO1xuXG5hc3luYyBmdW5jdGlvbiB0ZXN0TnBtSW5zdGFsbChcbiAgICB0OiBFeGVjdXRpb25Db250ZXh0LFxuICAgIHBhY2thZ2VKc29uQ29udGVudHM6IHN0cmluZyxcbiAgICBiaWdQYWNrYWdlOiBib29sZWFuXG4pIHtcbiAgICBjb25zdCBMYXllck5hbWUgPSBgZmFhc3QtdGVzdC1sYXllci0ke3V1aWQoKX1gO1xuICAgIGNvbnN0IEZ1bmN0aW9uTmFtZSA9IGBmYWFzdC0ke3V1aWQoKX1gO1xuICAgIGxldCBsYXllckluZm86IEF3c0xheWVySW5mbyB8IHVuZGVmaW5lZDtcbiAgICBsZXQgaW5zdGFsbExvZzogc3RyaW5nO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5wbUluc3RhbGwoe1xuICAgICAgICAgICAgTGF5ZXJOYW1lLFxuICAgICAgICAgICAgRnVuY3Rpb25OYW1lLFxuICAgICAgICAgICAgcGFja2FnZUpzb25Db250ZW50cyxcbiAgICAgICAgICAgIHJlZ2lvbjogXCJ1cy13ZXN0LTJcIixcbiAgICAgICAgICAgIHF1aWV0OiB0cnVlLFxuICAgICAgICAgICAgcmV0ZW50aW9uSW5EYXlzOiAxXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoYmlnUGFja2FnZSkge1xuICAgICAgICAgICAgdC50cnVlKHJlc3VsdC56aXBTaXplISA+IDUwICogMiAqKiAyMCk7XG4gICAgICAgIH1cbiAgICAgICAgKHsgbGF5ZXJJbmZvLCBpbnN0YWxsTG9nIH0gPSByZXN1bHQpO1xuICAgICAgICB0LmlzKGxheWVySW5mby5MYXllck5hbWUsIExheWVyTmFtZSk7XG4gICAgICAgIHQudHJ1ZSh0eXBlb2YgbGF5ZXJJbmZvLlZlcnNpb24gPT09IFwibnVtYmVyXCIpO1xuICAgICAgICB0LnJlZ2V4KGluc3RhbGxMb2csIC9hZGRlZCBbMC05XSsgcGFja2FnZS8pO1xuXG4gICAgICAgIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGF3YWl0IG5wbUluc3RhbGwoe1xuICAgICAgICAgICAgTGF5ZXJOYW1lLFxuICAgICAgICAgICAgRnVuY3Rpb25OYW1lLFxuICAgICAgICAgICAgcGFja2FnZUpzb25Db250ZW50cyxcbiAgICAgICAgICAgIHJlZ2lvbjogXCJ1cy13ZXN0LTJcIixcbiAgICAgICAgICAgIHF1aWV0OiB0cnVlLFxuICAgICAgICAgICAgcmV0ZW50aW9uSW5EYXlzOiAxXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHQuZGVlcEVxdWFsKGNhY2hlZFJlc3VsdC5sYXllckluZm8sIGxheWVySW5mbyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKGxheWVySW5mbykge1xuICAgICAgICAgICAgYXdhaXQgbGFtYmRhLmRlbGV0ZUxheWVyVmVyc2lvbih7XG4gICAgICAgICAgICAgICAgTGF5ZXJOYW1lLFxuICAgICAgICAgICAgICAgIFZlcnNpb25OdW1iZXI6IGxheWVySW5mby5WZXJzaW9uXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuY29uc3QgcHVwcGV0ZWVyUGFja2FnZSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBkZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgXCJjaHJvbWUtYXdzLWxhbWJkYVwiOiBcImxhdGVzdFwiLFxuICAgICAgICBcInB1cHBldGVlci1jb3JlXCI6IFwibGF0ZXN0XCIsXG4gICAgICAgIHR5cGVzY3JpcHQ6IFwibGF0ZXN0XCIsXG4gICAgICAgIFwiYXdzLXNka1wiOiBcImxhdGVzdFwiXG4gICAgfVxufSk7XG5cbnRlc3Quc2VyaWFsKFxuICAgIHRpdGxlKFwiYXdzXCIsIGBucG0taW5zdGFsbCB3aXRoIExhbWJkYSBMYXllciBsYXJnZXIgdGhhbiA1ME1CYCksXG4gICAgdGVzdE5wbUluc3RhbGwsXG4gICAgcHVwcGV0ZWVyUGFja2FnZSxcbiAgICB0cnVlXG4pO1xuXG5jb25zdCB0c2xpYlBhY2thZ2UgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgZGVwZW5kZW5jaWVzOiB7XG4gICAgICAgIHRzbGliOiBcImxhdGVzdFwiXG4gICAgfVxufSk7XG5cbnRlc3Quc2VyaWFsKFxuICAgIHRpdGxlKFwiYXdzXCIsIFwibnBtLWluc3RhbGwgd2l0aCBMYW1iZGEgTGF5ZXIgbGVzcyB0aGFuIDUwTUJcIiksXG4gICAgdGVzdE5wbUluc3RhbGwsXG4gICAgdHNsaWJQYWNrYWdlLFxuICAgIGZhbHNlXG4pO1xuIl19
;