serverless-prune-versions
Version:
Serverless plugin to delete old versions of deployed functions from AWS
49 lines • 5.12 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Settings = void 0;
const assert_1 = require("assert");
class Settings {
constructor(config, rawOptions) {
const settings = this.getSettings(config, rawOptions);
this.validate(settings);
Object.assign(this, settings);
}
getSettings(config, rawOptions) {
const options = this.cleanRawOptions(rawOptions);
const defaultConfig = {
automatic: false,
includeLayers: false,
number: 5
};
const settings = options ? Object.assign(Object.assign(Object.assign({}, defaultConfig), config), options) : Object.assign(Object.assign({}, defaultConfig), config);
return settings;
}
cleanRawOptions(rawOptions) {
if (rawOptions && Object.keys(rawOptions).length > 0) {
const replacementKeys = { n: 'number', d: 'dryRun', i: 'includeLayers' };
const replacedOptions = Object.keys(rawOptions).map(key => {
const newKey = replacementKeys[key] || key;
const value = rawOptions[key];
const numberValue = parseInt(value);
const newValue = isNaN(numberValue) ? value : numberValue;
return { [newKey]: newValue };
});
const options = replacedOptions === null || replacedOptions === void 0 ? void 0 : replacedOptions.reduce((option1, option2) => Object.assign({}, option1, option2));
return options;
}
else {
return undefined;
}
}
validate({ automatic, includeLayers, number }) {
assert_1.ok(typeof automatic === 'boolean', this.validationMsg('automatic', 'true or false', typeof automatic));
assert_1.ok(typeof includeLayers === 'boolean', this.validationMsg('includeLayers', 'true or false', typeof includeLayers));
assert_1.ok(typeof number === 'number', this.validationMsg('number', 'an integer greater than 1', typeof number));
assert_1.ok(number > 1, this.validationMsg('number', 'an integer greater than 1', number));
}
validationMsg(property, expected, actual) {
return `The prune config '${property}' property can only be ${expected}, not ${actual}`;
}
}
exports.Settings = Settings;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQTRCO0FBRTVCLE1BQWEsUUFBUTtJQVduQixZQUFZLE1BQW1CLEVBQUUsVUFBK0I7UUFDOUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQW1CLEVBQUUsVUFBK0I7UUFDdEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBZ0I7WUFDakMsU0FBUyxFQUFFLEtBQUs7WUFDaEIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsTUFBTSxFQUFFLENBQUM7U0FDVixDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsK0NBQU0sYUFBYSxHQUFLLE1BQU0sR0FBSyxPQUFPLEVBQUcsQ0FBQyxpQ0FBTSxhQUFhLEdBQUssTUFBTSxDQUFFLENBQUM7UUFDekcsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxVQUErQjtRQUNyRCxJQUFJLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEQsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQ3pFLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN4RCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO2dCQUMzQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztnQkFDMUQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDbkcsT0FBTyxPQUFPLENBQUM7U0FDaEI7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFlO1FBQ2hFLFdBQUUsQ0FBQyxPQUFPLFNBQVMsS0FBSyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RyxXQUFFLENBQUMsT0FBTyxhQUFhLEtBQUssU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDbkgsV0FBRSxDQUFDLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDekcsV0FBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQWdCLEVBQUUsUUFBZ0IsRUFBRSxNQUFXO1FBQ25FLE9BQU8scUJBQXFCLFFBQVEsMEJBQTBCLFFBQVEsU0FBUyxNQUFNLEVBQUUsQ0FBQztJQUMxRixDQUFDO0NBQ0Y7QUF2REQsNEJBdURDIn0=
;