UNPKG

faastjs

Version:

Serverless batch computing made simple.

65 lines 7.8 kB
"use strict"; 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