mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const BbPromise = require('bluebird');
|
|
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.config.servicePath,
|
|
'.serverless',
|
|
serviceStateFileName
|
|
);
|
|
|
|
const artifact = _.last(
|
|
_.split(
|
|
_.get(this.serverless.service, 'package.artifact', ''), path.sep
|
|
)
|
|
);
|
|
|
|
const strippedService = _.assign(
|
|
{}, _.omit(this.serverless.service, ['serverless', 'package'])
|
|
);
|
|
const selfReferences = findReferences(strippedService, this.serverless.service);
|
|
_.forEach(selfReferences, 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);
|
|
|
|
return BbPromise.resolve();
|
|
},
|
|
};
|