mirror of
https://github.com/serverless/serverless.git
synced 2026-01-25 15:07:39 +00:00
39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
'use strict'
|
|
|
|
const { promisify } = require('util')
|
|
const path = require('path')
|
|
const copyFile = promisify(require('fs').copyFile)
|
|
|
|
// sha256 hash: `T0qEYHOE4Xv2E8Ar03xGogAlElcdf/dQh/lh9ao7Glo=`
|
|
const ZIP_NAME = 'my-own.zip'
|
|
|
|
/**
|
|
* Simple plugin to move prepackaged zip file to `.serverless/NAME.zip` during
|
|
* packaging and set `package.artifact`.
|
|
*/
|
|
class PackageArtifactPlugin {
|
|
constructor(serverless) {
|
|
this.serverless = serverless
|
|
this.hooks = {
|
|
'before:package:createDeploymentArtifacts': async () => this.package(),
|
|
}
|
|
}
|
|
|
|
async package() {
|
|
const zipSrcPath = path.resolve(ZIP_NAME)
|
|
const serverlessDirPath = path.resolve(
|
|
this.serverless.serviceDir,
|
|
'.serverless',
|
|
)
|
|
const zipDestPath = path.join(serverlessDirPath, ZIP_NAME)
|
|
|
|
// Copy zip to `.serverless` directory
|
|
await copyFile(zipSrcPath, zipDestPath)
|
|
|
|
// Mutate package.artifact to point to `.serverless/NAME.zip`
|
|
this.serverless.service.package.artifact = zipDestPath
|
|
}
|
|
}
|
|
|
|
module.exports = PackageArtifactPlugin
|