UNPKG

7.66 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const ava_1 = require("ava");
4const aws_sdk_1 = require("aws-sdk");
5const uuid_1 = require("uuid");
6const aws_npm_1 = require("../src/aws/aws-npm");
7const util_1 = require("./fixtures/util");
8const lambda = new aws_sdk_1.Lambda({ region: "us-west-2" });
9async function testNpmInstall(t, packageJsonContents, bigPackage) {
10 const LayerName = `faast-test-layer-${(0, uuid_1.v4)()}`;
11 const FunctionName = `faast-${(0, uuid_1.v4)()}`;
12 let layerInfo;
13 let installLog;
14 try {
15 const result = await (0, aws_npm_1.npmInstall)({
16 LayerName,
17 FunctionName,
18 packageJsonContents,
19 region: "us-west-2",
20 quiet: true,
21 retentionInDays: 1
22 });
23 if (bigPackage) {
24 t.true(result.zipSize > 50 * 2 ** 20);
25 }
26 ({ layerInfo, installLog } = result);
27 t.is(layerInfo.LayerName, LayerName);
28 t.true(typeof layerInfo.Version === "number");
29 t.regex(installLog, /added [0-9]+ package/);
30 const cachedResult = await (0, aws_npm_1.npmInstall)({
31 LayerName,
32 FunctionName,
33 packageJsonContents,
34 region: "us-west-2",
35 quiet: true,
36 retentionInDays: 1
37 });
38 t.deepEqual(cachedResult.layerInfo, layerInfo);
39 }
40 finally {
41 if (layerInfo) {
42 await lambda
43 .deleteLayerVersion({ LayerName, VersionNumber: layerInfo.Version })
44 .promise();
45 }
46 }
47}
48const puppeteerPackage = JSON.stringify({
49 dependencies: {
50 "chrome-aws-lambda": "latest",
51 "puppeteer-core": "latest",
52 typescript: "latest",
53 "aws-sdk": "latest"
54 }
55});
56ava_1.default.serial((0, util_1.title)("aws", `npm-install with Lambda Layer larger than 50MB`), testNpmInstall, puppeteerPackage, true);
57const tslibPackage = JSON.stringify({
58 dependencies: {
59 tslib: "latest"
60 }
61});
62ava_1.default.serial((0, util_1.title)("aws", "npm-install with Lambda Layer less than 50MB"), testNpmInstall, tslibPackage, false);
63//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLW5wbS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9hd3MtbnBtLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBNkM7QUFDN0MscUNBQWlDO0FBQ2pDLCtCQUFrQztBQUNsQyxnREFBOEQ7QUFDOUQsMENBQXdDO0FBRXhDLE1BQU0sTUFBTSxHQUFHLElBQUksZ0JBQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBRW5ELEtBQUssVUFBVSxjQUFjLENBQ3pCLENBQW1CLEVBQ25CLG1CQUEyQixFQUMzQixVQUFtQjtJQUVuQixNQUFNLFNBQVMsR0FBRyxvQkFBb0IsSUFBQSxTQUFJLEdBQUUsRUFBRSxDQUFDO0lBQy9DLE1BQU0sWUFBWSxHQUFHLFNBQVMsSUFBQSxTQUFJLEdBQUUsRUFBRSxDQUFDO0lBQ3ZDLElBQUksU0FBbUMsQ0FBQztJQUN4QyxJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSTtRQUNBLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxvQkFBVSxFQUFDO1lBQzVCLFNBQVM7WUFDVCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLE1BQU0sRUFBRSxXQUFXO1lBQ25CLEtBQUssRUFBRSxJQUFJO1lBQ1gsZUFBZSxFQUFFLENBQUM7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxVQUFVLEVBQUU7WUFDWixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUMxQztRQUNELENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxTQUFTLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFFNUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFBLG9CQUFVLEVBQUM7WUFDbEMsU0FBUztZQUNULFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsTUFBTSxFQUFFLFdBQVc7WUFDbkIsS0FBSyxFQUFFLElBQUk7WUFDWCxlQUFlLEVBQUUsQ0FBQztTQUNyQixDQUFDLENBQUM7UUFFSCxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDbEQ7WUFBUztRQUNOLElBQUksU0FBUyxFQUFFO1lBQ1gsTUFBTSxNQUFNO2lCQUNQLGtCQUFrQixDQUFDLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ25FLE9BQU8sRUFBRSxDQUFDO1NBQ2xCO0tBQ0o7QUFDTCxDQUFDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3BDLFlBQVksRUFBRTtRQUNWLG1CQUFtQixFQUFFLFFBQVE7UUFDN0IsZ0JBQWdCLEVBQUUsUUFBUTtRQUMxQixVQUFVLEVBQUUsUUFBUTtRQUNwQixTQUFTLEVBQUUsUUFBUTtLQUN0QjtDQUNKLENBQUMsQ0FBQztBQUVILGFBQUksQ0FBQyxNQUFNLENBQ1AsSUFBQSxZQUFLLEVBQUMsS0FBSyxFQUFFLGdEQUFnRCxDQUFDLEVBQzlELGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsSUFBSSxDQUNQLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ2hDLFlBQVksRUFBRTtRQUNWLEtBQUssRUFBRSxRQUFRO0tBQ2xCO0NBQ0osQ0FBQyxDQUFDO0FBRUgsYUFBSSxDQUFDLE1BQU0sQ0FDUCxJQUFBLFlBQUssRUFBQyxLQUFLLEVBQUUsOENBQThDLENBQUMsRUFDNUQsY0FBYyxFQUNkLFlBQVksRUFDWixLQUFLLENBQ1IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0ZXN0LCB7IEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tIFwiYXZhXCI7XG5pbXBvcnQgeyBMYW1iZGEgfSBmcm9tIFwiYXdzLXNka1wiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gXCJ1dWlkXCI7XG5pbXBvcnQgeyBBd3NMYXllckluZm8sIG5wbUluc3RhbGwgfSBmcm9tIFwiLi4vc3JjL2F3cy9hd3MtbnBtXCI7XG5pbXBvcnQgeyB0aXRsZSB9IGZyb20gXCIuL2ZpeHR1cmVzL3V0aWxcIjtcblxuY29uc3QgbGFtYmRhID0gbmV3IExhbWJkYSh7IHJlZ2lvbjogXCJ1cy13ZXN0LTJcIiB9KTtcblxuYXN5bmMgZnVuY3Rpb24gdGVzdE5wbUluc3RhbGwoXG4gICAgdDogRXhlY3V0aW9uQ29udGV4dCxcbiAgICBwYWNrYWdlSnNvbkNvbnRlbnRzOiBzdHJpbmcsXG4gICAgYmlnUGFja2FnZTogYm9vbGVhblxuKSB7XG4gICAgY29uc3QgTGF5ZXJOYW1lID0gYGZhYXN0LXRlc3QtbGF5ZXItJHt1dWlkKCl9YDtcbiAgICBjb25zdCBGdW5jdGlvbk5hbWUgPSBgZmFhc3QtJHt1dWlkKCl9YDtcbiAgICBsZXQgbGF5ZXJJbmZvOiBBd3NMYXllckluZm8gfCB1bmRlZmluZWQ7XG4gICAgbGV0IGluc3RhbGxMb2c6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBucG1JbnN0YWxsKHtcbiAgICAgICAgICAgIExheWVyTmFtZSxcbiAgICAgICAgICAgIEZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgIHBhY2thZ2VKc29uQ29udGVudHMsXG4gICAgICAgICAgICByZWdpb246IFwidXMtd2VzdC0yXCIsXG4gICAgICAgICAgICBxdWlldDogdHJ1ZSxcbiAgICAgICAgICAgIHJldGVudGlvbkluRGF5czogMVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGJpZ1BhY2thZ2UpIHtcbiAgICAgICAgICAgIHQudHJ1ZShyZXN1bHQuemlwU2l6ZSEgPiA1MCAqIDIgKiogMjApO1xuICAgICAgICB9XG4gICAgICAgICh7IGxheWVySW5mbywgaW5zdGFsbExvZyB9ID0gcmVzdWx0KTtcbiAgICAgICAgdC5pcyhsYXllckluZm8uTGF5ZXJOYW1lLCBMYXllck5hbWUpO1xuICAgICAgICB0LnRydWUodHlwZW9mIGxheWVySW5mby5WZXJzaW9uID09PSBcIm51bWJlclwiKTtcbiAgICAgICAgdC5yZWdleChpbnN0YWxsTG9nLCAvYWRkZWQgWzAtOV0rIHBhY2thZ2UvKTtcblxuICAgICAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBhd2FpdCBucG1JbnN0YWxsKHtcbiAgICAgICAgICAgIExheWVyTmFtZSxcbiAgICAgICAgICAgIEZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgIHBhY2thZ2VKc29uQ29udGVudHMsXG4gICAgICAgICAgICByZWdpb246IFwidXMtd2VzdC0yXCIsXG4gICAgICAgICAgICBxdWlldDogdHJ1ZSxcbiAgICAgICAgICAgIHJldGVudGlvbkluRGF5czogMVxuICAgICAgICB9KTtcblxuICAgICAgICB0LmRlZXBFcXVhbChjYWNoZWRSZXN1bHQubGF5ZXJJbmZvLCBsYXllckluZm8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChsYXllckluZm8pIHtcbiAgICAgICAgICAgIGF3YWl0IGxhbWJkYVxuICAgICAgICAgICAgICAgIC5kZWxldGVMYXllclZlcnNpb24oeyBMYXllck5hbWUsIFZlcnNpb25OdW1iZXI6IGxheWVySW5mby5WZXJzaW9uIH0pXG4gICAgICAgICAgICAgICAgLnByb21pc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuY29uc3QgcHVwcGV0ZWVyUGFja2FnZSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBkZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgXCJjaHJvbWUtYXdzLWxhbWJkYVwiOiBcImxhdGVzdFwiLFxuICAgICAgICBcInB1cHBldGVlci1jb3JlXCI6IFwibGF0ZXN0XCIsXG4gICAgICAgIHR5cGVzY3JpcHQ6IFwibGF0ZXN0XCIsXG4gICAgICAgIFwiYXdzLXNka1wiOiBcImxhdGVzdFwiXG4gICAgfVxufSk7XG5cbnRlc3Quc2VyaWFsKFxuICAgIHRpdGxlKFwiYXdzXCIsIGBucG0taW5zdGFsbCB3aXRoIExhbWJkYSBMYXllciBsYXJnZXIgdGhhbiA1ME1CYCksXG4gICAgdGVzdE5wbUluc3RhbGwsXG4gICAgcHVwcGV0ZWVyUGFja2FnZSxcbiAgICB0cnVlXG4pO1xuXG5jb25zdCB0c2xpYlBhY2thZ2UgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgZGVwZW5kZW5jaWVzOiB7XG4gICAgICAgIHRzbGliOiBcImxhdGVzdFwiXG4gICAgfVxufSk7XG5cbnRlc3Quc2VyaWFsKFxuICAgIHRpdGxlKFwiYXdzXCIsIFwibnBtLWluc3RhbGwgd2l0aCBMYW1iZGEgTGF5ZXIgbGVzcyB0aGFuIDUwTUJcIiksXG4gICAgdGVzdE5wbUluc3RhbGwsXG4gICAgdHNsaWJQYWNrYWdlLFxuICAgIGZhbHNlXG4pO1xuIl19
\No newline at end of file