mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
38 lines
1.1 KiB
JavaScript
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);
|
|
},
|
|
};
|