@amazon-codecatalyst/blueprints.sam-serverless-application
Version:
This blueprint creates a project that leverages a serverless application model (SAM) to quickly create and deploy an API. You can choose Java, TypeScript, or Python as the programming language
94 lines • 11.1 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
const cli = __importStar(require("@amazon-codecatalyst/blueprint-util.cli/lib/synth-drivers/synth-driver"));
const resynth_1 = require("@amazon-codecatalyst/blueprint-util.cli/lib/resynth-drivers/resynth");
const globule = __importStar(require("globule"));
const pino = __importStar(require("pino"));
const log = pino.default({
prettyPrint: true,
level: process.env.LOG_LEVEL || 'debug',
});
const configurationsLocation = 'src/wizard-configurations';
const defaultsLocation = 'src/defaults.json';
const blueprintLocation = './';
const outputDirectory = './';
// prettier-ignore
const GLOBS_UNDER_SNAPSHOT = [
'**',
'!environments/**',
'!aws-account-to-environment/**',
'!src/**/DANGER-hard-delete-deployed-resources.yaml'
];
async function runSnapshotSynthesis() {
// run synthesis into several directories.
await cli.driveSynthesis(log, {
blueprint: blueprintLocation,
outdir: path.join(outputDirectory, 'synth'),
defaultOptions: defaultsLocation,
additionalOptions: configurationsLocation,
jobPrefix: '01.snapshot.',
cleanUp: true,
});
const snapshotRuns = [];
fs.readdirSync(configurationsLocation, { withFileTypes: true }).forEach(override => {
const outputLocation = path.join(outputDirectory, 'synth', '01.snapshot.' + override.name, resynth_1.PROPOSED_BUNDLE_SUBPATH);
snapshotRuns.push({
optionOverridePath: path.join(configurationsLocation, override.name),
outputPath: path.resolve(outputLocation),
});
});
return snapshotRuns;
}
describe('Blueprint snapshots', () => {
it('Blueprint snapshots - Test', async () => {
(await runSnapshotSynthesis()).forEach(run => {
for (const snappedFile of filesUnderSnapshot(run.outputPath, GLOBS_UNDER_SNAPSHOT)) {
console.log(`${path.parse(run.optionOverridePath).base} configuration - matches ${snappedFile.relPath}`);
expect(fs.readFileSync(snappedFile.absPath, { encoding: 'utf-8' })).toMatchSnapshot();
}
});
});
});
function filesUnderSnapshot(outdir, globs) {
return globule
.find(['**/*', '**/*.??*', '*'], {
cwd: outdir,
dot: true,
})
.filter(element => globule.isMatch(globs, element, {
dot: true,
}))
.filter(element => !fs.lstatSync(path.join(outdir, element)).isDirectory())
.map(element => {
return {
absPath: path.join(outdir, element),
relPath: element,
};
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmx1ZXByaW50LXNuYXBzaG90LWRyaXZlci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2JsdWVwcmludC1zbmFwc2hvdC1kcml2ZXIuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3Qiw0R0FBOEY7QUFDOUYsaUdBQThHO0FBQzlHLGlEQUFtQztBQUNuQywyQ0FBNkI7QUFFN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN2QixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksT0FBTztDQUN4QyxDQUFDLENBQUM7QUFFSCxNQUFNLHNCQUFzQixHQUFHLDJCQUEyQixDQUFDO0FBQzNELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUM7QUFDN0MsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7QUFDL0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDO0FBRTdCLGtCQUFrQjtBQUNsQixNQUFNLG9CQUFvQixHQUFhO0lBQ3JDLElBQUk7SUFDTCxrQkFBa0I7SUFDbEIsZ0NBQWdDO0lBQ2hDLG9EQUFvRDtDQUNwRCxDQUFDO0FBRUYsS0FBSyxVQUFVLG9CQUFvQjtJQUNqQywwQ0FBMEM7SUFFMUMsTUFBTSxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRTtRQUM1QixTQUFTLEVBQUUsaUJBQWlCO1FBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUM7UUFDM0MsY0FBYyxFQUFFLGdCQUFnQjtRQUNoQyxpQkFBaUIsRUFBRSxzQkFBc0I7UUFDekMsU0FBUyxFQUFFLGNBQWM7UUFDekIsT0FBTyxFQUFFLElBQUk7S0FDZSxDQUFDLENBQUM7SUFFaEMsTUFBTSxZQUFZLEdBR1osRUFBRSxDQUFDO0lBQ1QsRUFBRSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNqRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsaUNBQXVCLENBQUMsQ0FBQztRQUNwSCxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ2hCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXVCLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNyRSxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtJQUNuQyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDMUMsQ0FBQyxNQUFNLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDM0MsS0FBSyxNQUFNLFdBQVcsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLEVBQUU7Z0JBQ2xGLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksNEJBQTRCLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN2RjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQVlILFNBQVMsa0JBQWtCLENBQUMsTUFBYyxFQUFFLEtBQWU7SUFDekQsT0FBTyxPQUFPO1NBQ1gsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUMvQixHQUFHLEVBQUUsTUFBTTtRQUNYLEdBQUcsRUFBRSxJQUFJO0tBQ1YsQ0FBQztTQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUNoQixPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDOUIsR0FBRyxFQUFFLElBQUk7S0FDVixDQUFDLENBQ0g7U0FDQSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMxRSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDYixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztZQUNuQyxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNsaSBmcm9tICdAYW1hem9uLWNvZGVjYXRhbHlzdC9ibHVlcHJpbnQtdXRpbC5jbGkvbGliL3N5bnRoLWRyaXZlcnMvc3ludGgtZHJpdmVyJztcbmltcG9ydCB7IFBST1BPU0VEX0JVTkRMRV9TVUJQQVRIIH0gZnJvbSAnQGFtYXpvbi1jb2RlY2F0YWx5c3QvYmx1ZXByaW50LXV0aWwuY2xpL2xpYi9yZXN5bnRoLWRyaXZlcnMvcmVzeW50aCc7XG5pbXBvcnQgKiBhcyBnbG9idWxlIGZyb20gJ2dsb2J1bGUnO1xuaW1wb3J0ICogYXMgcGlubyBmcm9tICdwaW5vJztcblxuY29uc3QgbG9nID0gcGluby5kZWZhdWx0KHtcbiAgcHJldHR5UHJpbnQ6IHRydWUsXG4gIGxldmVsOiBwcm9jZXNzLmVudi5MT0dfTEVWRUwgfHwgJ2RlYnVnJyxcbn0pO1xuXG5jb25zdCBjb25maWd1cmF0aW9uc0xvY2F0aW9uID0gJ3NyYy93aXphcmQtY29uZmlndXJhdGlvbnMnO1xuY29uc3QgZGVmYXVsdHNMb2NhdGlvbiA9ICdzcmMvZGVmYXVsdHMuanNvbic7XG5jb25zdCBibHVlcHJpbnRMb2NhdGlvbiA9ICcuLyc7XG5jb25zdCBvdXRwdXREaXJlY3RvcnkgPSAnLi8nO1xuXG4vLyBwcmV0dGllci1pZ25vcmVcbmNvbnN0IEdMT0JTX1VOREVSX1NOQVBTSE9UOiBzdHJpbmdbXSA9IFtcbiAgJyoqJyxcblx0JyFlbnZpcm9ubWVudHMvKionLFxuXHQnIWF3cy1hY2NvdW50LXRvLWVudmlyb25tZW50LyoqJyxcblx0JyFzcmMvKiovREFOR0VSLWhhcmQtZGVsZXRlLWRlcGxveWVkLXJlc291cmNlcy55YW1sJ1xuXTtcblxuYXN5bmMgZnVuY3Rpb24gcnVuU25hcHNob3RTeW50aGVzaXMoKSB7XG4gIC8vIHJ1biBzeW50aGVzaXMgaW50byBzZXZlcmFsIGRpcmVjdG9yaWVzLlxuXG4gIGF3YWl0IGNsaS5kcml2ZVN5bnRoZXNpcyhsb2csIHtcbiAgICBibHVlcHJpbnQ6IGJsdWVwcmludExvY2F0aW9uLFxuICAgIG91dGRpcjogcGF0aC5qb2luKG91dHB1dERpcmVjdG9yeSwgJ3N5bnRoJyksXG4gICAgZGVmYXVsdE9wdGlvbnM6IGRlZmF1bHRzTG9jYXRpb24sXG4gICAgYWRkaXRpb25hbE9wdGlvbnM6IGNvbmZpZ3VyYXRpb25zTG9jYXRpb24sXG4gICAgam9iUHJlZml4OiAnMDEuc25hcHNob3QuJyxcbiAgICBjbGVhblVwOiB0cnVlLFxuICB9IGFzIGNsaS5TeW50aERyaXZlckNsaU9wdGlvbnMpO1xuXG4gIGNvbnN0IHNuYXBzaG90UnVuczoge1xuICAgIG9wdGlvbk92ZXJyaWRlUGF0aDogc3RyaW5nO1xuICAgIG91dHB1dFBhdGg6IHN0cmluZztcbiAgfVtdID0gW107XG4gIGZzLnJlYWRkaXJTeW5jKGNvbmZpZ3VyYXRpb25zTG9jYXRpb24sIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KS5mb3JFYWNoKG92ZXJyaWRlID0+IHtcbiAgICBjb25zdCBvdXRwdXRMb2NhdGlvbiA9IHBhdGguam9pbihvdXRwdXREaXJlY3RvcnksICdzeW50aCcsICcwMS5zbmFwc2hvdC4nICsgb3ZlcnJpZGUubmFtZSwgUFJPUE9TRURfQlVORExFX1NVQlBBVEgpO1xuICAgIHNuYXBzaG90UnVucy5wdXNoKHtcbiAgICAgIG9wdGlvbk92ZXJyaWRlUGF0aDogcGF0aC5qb2luKGNvbmZpZ3VyYXRpb25zTG9jYXRpb24hLCBvdmVycmlkZS5uYW1lKSxcbiAgICAgIG91dHB1dFBhdGg6IHBhdGgucmVzb2x2ZShvdXRwdXRMb2NhdGlvbiksXG4gICAgfSk7XG4gIH0pO1xuICByZXR1cm4gc25hcHNob3RSdW5zO1xufVxuXG5kZXNjcmliZSgnQmx1ZXByaW50IHNuYXBzaG90cycsICgpID0+IHtcbiAgaXQoJ0JsdWVwcmludCBzbmFwc2hvdHMgLSBUZXN0JywgYXN5bmMgKCkgPT4ge1xuICAgIChhd2FpdCBydW5TbmFwc2hvdFN5bnRoZXNpcygpKS5mb3JFYWNoKHJ1biA9PiB7XG4gICAgICBmb3IgKGNvbnN0IHNuYXBwZWRGaWxlIG9mIGZpbGVzVW5kZXJTbmFwc2hvdChydW4ub3V0cHV0UGF0aCwgR0xPQlNfVU5ERVJfU05BUFNIT1QpKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAke3BhdGgucGFyc2UocnVuLm9wdGlvbk92ZXJyaWRlUGF0aCkuYmFzZX0gY29uZmlndXJhdGlvbiAtIG1hdGNoZXMgJHtzbmFwcGVkRmlsZS5yZWxQYXRofWApO1xuICAgICAgICBleHBlY3QoZnMucmVhZEZpbGVTeW5jKHNuYXBwZWRGaWxlLmFic1BhdGgsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG4vKipcbiAqIEluIHVuaXQgdGVzdHMsIHdlIG5lZWQgYm90aCB0aGUgYWJzb2x1dGUgYW5kIHRoZSByZWxhdGl2ZSBwYXRocy5cbiAqIFRoZSBhYnNvbHV0ZSBwYXRoIGhlbHBzIHVzIHRvIGFjY2VzcyB0aGUgZmlsZXMgb24gdGhlIGZpbGVzeXN0ZW0uIEl0IHZhcmllcyBmb3IgZWFjaCB0ZXN0IHJ1bi5cbiAqIFRoZSByZWxhdGl2ZSBwYXRoIGlzIHVzZWQgdG8gcmVmZXJlbmNlIGEgZmlsZSdzIHNuYXBzaG90IGFjcm9zcyB0ZXN0IHJ1bnMuIEl0IGlzIGNvbnN0YW50LlxuICovXG5pbnRlcmZhY2UgQmx1ZXByaW50T3V0cHV0RmlsZSB7XG4gIGFic1BhdGg6IHN0cmluZztcbiAgcmVsUGF0aDogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBmaWxlc1VuZGVyU25hcHNob3Qob3V0ZGlyOiBzdHJpbmcsIGdsb2JzOiBzdHJpbmdbXSk6IEJsdWVwcmludE91dHB1dEZpbGVbXSB7XG4gIHJldHVybiBnbG9idWxlXG4gICAgLmZpbmQoWycqKi8qJywgJyoqLyouPz8qJywgJyonXSwge1xuICAgICAgY3dkOiBvdXRkaXIsXG4gICAgICBkb3Q6IHRydWUsXG4gICAgfSlcbiAgICAuZmlsdGVyKGVsZW1lbnQgPT5cbiAgICAgIGdsb2J1bGUuaXNNYXRjaChnbG9icywgZWxlbWVudCwge1xuICAgICAgICBkb3Q6IHRydWUsXG4gICAgICB9KSxcbiAgICApXG4gICAgLmZpbHRlcihlbGVtZW50ID0+ICFmcy5sc3RhdFN5bmMocGF0aC5qb2luKG91dGRpciwgZWxlbWVudCkpLmlzRGlyZWN0b3J5KCkpXG4gICAgLm1hcChlbGVtZW50ID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFic1BhdGg6IHBhdGguam9pbihvdXRkaXIsIGVsZW1lbnQpLFxuICAgICAgICByZWxQYXRoOiBlbGVtZW50LFxuICAgICAgfTtcbiAgICB9KTtcbn1cbiJdfQ==
;