UNPKG

serverless-hooks

Version:

Run npm scripts on serverless hook events

58 lines (42 loc) 2.26 kB
# Serverless Hooks This [Serverless](https://github.com/serverless/serverless) plugin allows triggering execution of npm scripts when [serverless events](https://serverless.com/framework/docs/providers/tencent/guide/plugins#hooks) are fired. Simply declare npm scripts with a name of the form `hook:EVENT` where `EVENT` is the name of a serverless hook event, i.e.: * `hook:before:offline:start`: Run script before serverless offline launches. This can be particularly useful to setup the local environment, such as launching a local kinesis and initializing it by creating some streams. * `hook:after:offline:start`: Run cleanup scripts after serverless offline terminates. * `hook:before:package:initialize`: Run script before the packaging initialization. # Installation First, add the plugin to your project: `npm install --save-dev serverless-hooks` Then, inside your project's `serverless.yml` file add `serverless-hooks` to the top-level plugins section. If there is no plugin section you will need to add it to the file. ```YAML plugins: - serverless-hooks ``` # Configuration Plugin behavior may be configured by adding keys to the `serverless-hooks` section in the top-level custom section. These are the configuration entries and their default values: ```YAML custom: serverless-hooks: hookPrefix: hook # The npm script prefix to indicate a serverless hook script runAllOptions: # See https://github.com/mysticatea/npm-run-all/blob/HEAD/docs/node-api.md for details stderr: # boolean to enable stderr, or path to file stdout: # boolean to enable stdout, or path to file stdin: # boolean to enable stdin, or path to file ``` # Execution When scripts are executed, the environment variable `SLS_CONTEXT` contains a path to a JSON file with the contents of the `serverless` object. The available properties are: * invocationId: Unique GUID for the current serverless invocation * version: Serverless framework version * cliCommands: Array with provided CLI commands (e.g. [ 'offline' ]) * cliOptions: Object with provided CLI options * servicePath: Path to directory containing serverless.yml file * service: Object with contents of resolved serverless.yml file