52 lines
1.3 KiB
JavaScript

'use strict';
const pluginConfig = {
targetValuePath: ['custom', 'extend', 'value'],
overwriteValuePath: ['custom', 'extend', 'overwrite'],
afterInitValuePath: ['custom', 'extend', 'afterInit'],
refValuePath: ['custom', 'extend', 'ref'],
};
module.exports = class TestPlugin {
constructor(serverless, options, utils) {
this.serverless = serverless;
this.options = options;
this.utils = utils;
this.hooks = {
initialize: () => this.extendAfterInit(),
};
}
async asyncInit() {
const configExt = {
var: 'value',
};
this.serverless.extendConfiguration(pluginConfig.targetValuePath, configExt);
this.serverless.extendConfiguration(pluginConfig.overwriteValuePath, configExt);
this.serverless.extendConfiguration(pluginConfig.refValuePath, '${self:custom.extend.value}');
try {
this.serverless.extendConfiguration([], { custom: {} });
} catch (error) {
// ignore this
}
try {
this.serverless.extendConfiguration('custom.target.invalid', {});
} catch (error) {
// ignore this
}
}
extendAfterInit() {
try {
this.serverless.extendConfiguration(pluginConfig.afterInitValuePath, 'value');
} catch (error) {
// ignore this
}
}
};
module.exports.pluginConfig = pluginConfig;