# @soluzioni-futura/config-component

> ## Quick start

Latest version **4.1.1** (published 2023-06-29) · ISC license · 0 weekly downloads

## Install

```sh
npm install @soluzioni-futura/config-component
pnpm add @soluzioni-futura/config-component
yarn add @soluzioni-futura/config-component
bun add @soluzioni-futura/config-component
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 4.1.1 |
| Published | 2023-06-29 |
| First published | 2021-04-12 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 5 |
| Unpacked size | 19.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Soluzioni Futura |
| Maintainers | giovanni.bruno, nico.fuccella, vforvalerio87, zhoujian26, riccardorispoli, allemonta |
| Keywords | openapi, swagger |

## Links

- npm: https://www.npmjs.com/package/@soluzioni-futura/config-component
- Repository: https://github.com/soluzionifutura/config-component
- Homepage: https://github.com/soluzionifutura/config-component#readme
- Issues: https://github.com/soluzionifutura/config-component/issues
- npm.io page: https://npm.io/package/@soluzioni-futura/config-component

## Dependencies (5)

- [ajv](https://npm.io/package/ajv.md) ^8.11.0
- [debug](https://npm.io/package/debug.md) ^4.3.1
- [json-schema](https://npm.io/package/json-schema.md) ^0.4.0
- [@aws-sdk/client-ssm](https://npm.io/package/@aws-sdk/client-ssm.md) ^3.362.0
- [@aws-sdk/client-secrets-manager](https://npm.io/package/@aws-sdk/client-secrets-manager.md) ^3.362.0

## Recent versions

- 4.1.1 (latest) — 2023-06-29
- 4.1.0 — 2023-06-29
- 4.0.3 — 2022-11-03
- 4.0.2 — 2022-11-03
- 4.0.1 — 2022-11-03
- 4.0.0 — 2022-11-03
- 4.0.1-test — 2022-11-03
- 4.0.0-test — 2022-11-03
- 3.0.7 — 2022-05-23
- 3.0.6 — 2022-05-23
- 3.0.5 — 2022-04-22
- 3.0.4 — 2022-04-22
- 3.0.3 — 2022-04-22
- 3.0.2 — 2022-04-22
- 3.0.1 — 2022-04-04
- … 7 more at https://npm.io/package/@soluzioni-futura/config-component/versions

## README

# config-component

## Quick start

Install the package

```sh
npm i @soluzioni-futura/config-component
```

## Usage

Simple setup example

```ts
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

```ts
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

```ts
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()
```

---
_Source: https://npm.io/package/@soluzioni-futura/config-component · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
