kg-serverless-import-config-plugin
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.1 • Public • Published

    Serverless Import Config Plugin

    This is a fork of https://github.com/KrysKruk/serverless-import-config-plugin.git, created to quickly release version fixing the issue with comparing object array elements.

    Split your serverless.yaml config file into smaller modules and import them.

    By using this plugin you can build your serverless config from smaller parts separated by functionalities. Imported config is merged, so all keys are supported and lists are concatenated (without duplicates).

    Works on importing yaml files by path or node module, especially useful in multi-package repositories.

    Installation

    Install with npm:

    npm install --save-dev serverless-import-config-plugin

    And then add the plugin to your serverless.yml file:

    plugins:
      - serverless-import-config-plugin

    Usage

    Specify config files to import in custom.import list:

    custom:
      import:
        - ./path/to/serverless.yml # path to YAML file with serverless config 
        - ./path/to/dir # directory where serverless.yml can be find 
        - module-name # node module where serverless.yml can be find 
        - '@myproject/users-api' # monorepo package with serverless.yml config file 
        - module-name/custom-serverless.yml # path to custom config file of a node module 

    custom.import can be also a string, when only one file needs to be imported:

    custom:
      import: '@myproject/users-api'

    Relative paths

    All function handler paths are automatically prefixed by the imported config directory.

    functions:
      postOrder:
        handler: functions/postOrder.handler # relative to the imported config 

    For other fields you need to use ${dirname} variable manually. ${dirname} points to a directory of imported config file.

    custom:
      webpack:
        webpackConfig: ${dirname}/webpack.config.js

    Customizable boilerplates

    In case you want to customize imported config in more dynamic way, provide it as javascript file (serverless.js).

    module.exports = ({ name, schema }) => ({
      provider: {
        iamRoleStatements: [
          // ...
        ],
      },
      // ...
    })

    You can pass arguments to the imported file using module and inputs fields:

    custom:
      import:
        module: '@myproject/aws-dynamodb' # can be also a path to js file 
          inputs:
            name: custom-table
            schema:
              # ... 

    Install

    npm i kg-serverless-import-config-plugin

    DownloadsWeekly Downloads

    5

    Version

    0.0.1

    License

    MIT

    Unpacked Size

    23.1 kB

    Total Files

    17

    Last publish

    Collaborators

    • kgenge