serverless/lib/plugins/aws/package/lib/saveServiceState.js

38 lines
1.1 KiB
JavaScript

'use strict';
const path = require('path');
const _ = require('lodash');
const findReferences = require('../../utils/findReferences');
module.exports = {
saveServiceState() {
const serviceStateFileName = this.provider.naming.getServiceStateFileName();
const serviceStateFilePath = path.join(
this.serverless.serviceDir,
'.serverless',
serviceStateFileName
);
const artifact = _.last(_.get(this.serverless.service, 'package.artifact', '').split(path.sep));
const strippedService = Object.assign(
{},
_.omit(this.serverless.service, ['serverless', 'package'])
);
const selfReferences = findReferences(strippedService, this.serverless.service);
selfReferences.forEach((refPath) => _.set(strippedService, refPath, '${self:}'));
const state = {
service: strippedService,
package: {
individually: this.serverless.service.package.individually,
artifactDirectoryName: this.serverless.service.package.artifactDirectoryName,
artifact,
},
};
this.serverless.utils.writeFileSync(serviceStateFilePath, state, true);
},
};