serverless-aliyun-function-compute-wnj
Version:
Provider plugin for the Serverless Framework v1.x which adds support for Aliyun Function Compute
63 lines (51 loc) • 1.96 kB
JavaScript
'use strict';
const BbPromise = require('bluebird');
const cleanupServerlessDir = require('./lib/cleanupServerlessDir');
const validate = require('../shared/validate');
const utils = require('../shared/utils');
const prepareDeployment = require('./lib/prepareDeployment');
const saveCreateTemplateFile = require('./lib/writeFilesToDisk');
const mergeServiceResources = require('./lib/mergeServiceResources');
const compileFunctions = require('./lib/compileFunctions');
const saveUpdateTemplateFile = require('./lib/writeFilesToDisk');
const saveServerlessConfigFile = require('./lib/writeFilesToDisk');
class AliyunPackage {
constructor(serverless, options) {
this.serverless = serverless;
this.options = options;
this.provider = this.serverless.getProvider('aliyun');
Object.assign(
this,
cleanupServerlessDir,
validate,
utils,
prepareDeployment,
saveCreateTemplateFile,
compileFunctions,
mergeServiceResources,
saveUpdateTemplateFile,
saveServerlessConfigFile);
this.hooks = {
'package:cleanup': () => BbPromise.bind(this)
.then(this.cleanupServerlessDir)
.then(this.saveServerlessConfigFile),
'before:package:initialize': () => BbPromise.bind(this)
.then(this.validate)
.then(this.setDefaults),
'package:initialize': () => BbPromise.bind(this)
.then(this.prepareDeployment)
.then(this.saveCreateTemplateFile),
'package:compileFunctions': () => BbPromise.bind(this)
.then(this.compileFunctions),
'package:finalize': () => BbPromise.bind(this)
.then(this.mergeServiceResources)
.then(this.saveUpdateTemplateFile)
// TODO(joyeecheung): move the artifact to the path
// specified by --package
.then(function finishPackaging() {
this.serverless.cli.log('Finished Packaging.');
}),
};
}
}
module.exports = AliyunPackage;