@soluzioni-futura/config-component
TypeScript icon, indicating that this package has built-in type declarations

4.1.1 • Public • Published

config-component

Quick start

Install the package

npm i @soluzioni-futura/config-component

Usage

Simple setup example

import ConfigComponent, { ProcessEnvConfigDriver } from "@soluzioni-futura/config-component"

type ConfigState = {
  SECRET: string
}

const config = new ConfigComponent<ConfigState>([
  new ProcessEnvConfigDriver()
])

await config.fetch()
console.log(config.state.SECRET)

With validation schema

import ConfigComponent, { ProcessEnvDriver } from "@soluzioni-futura/config-component"

type ConfigState = {
  SECRET: string
}

const config = new ConfigComponent<ConfigState>([
  new ProcessEnvDriver(),
  validationSchema: {
    type: "object",
    additionalProperties: true,
    properties: {
      SECRET: { type: "string" }
    },
    required: ["SECRET"]
  }
])

await config.fetch()
console.log(config.state.SECRET)

Complete setup example

import ConfigComponent, { ProcessEnvDriver, SSMConfigDriver } from "@soluzioni-futura/config-component"

const { NODE_ENV = "local" } = process.env

const validationSchema = {
  type: "object",
  additionalProperties: true,
  properties: {
    SECRET: { type: "string" }
  },
  required: ["SECRET"]
}

const drivers = ["staging", "production"].includes(NODE_ENV) ?
  [
    new SSMConfigDriver({
      keys: ["ENV"],
      prefix: `/secrets/${NODE_ENV}`
      ssm: new SSM({
        region: "eu-west-1"
      })
    })
  ] : [
    new ProcessEnvDriver()
  ]

const config = new ConfigComponent(drivers, validationSchema)

await config.fetch()

Readme

Keywords

Package Sidebar

Install

npm i @soluzioni-futura/config-component

Weekly Downloads

2

Version

4.1.1

License

ISC

Unpacked Size

20.3 kB

Total Files

21

Last publish

Collaborators

  • giovanni.bruno
  • nico.fuccella
  • vforvalerio87
  • zhoujian26
  • riccardorispoli
  • allemonta