4.1.1 • Published 11 months ago

@soluzioni-futura/config-component v4.1.1

Weekly downloads
-
License
ISC
Repository
github
Last release
11 months ago

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()
4.1.0

11 months ago

4.1.1

11 months ago

4.0.1-test

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

4.0.3

2 years ago

4.0.2

2 years ago

4.0.0-test

2 years ago

3.0.7

2 years ago

3.0.6

2 years ago

3.0.4

2 years ago

3.0.3

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

3.0.5

2 years ago

3.0.0

2 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago