config

Uma Ferramenta Sumor Cloud.
Documentação Adicional Config Loader suporta arquivos yaml e json. Ele pode carregar todos os arquivos em um diretório.
E automaticamente converter o arquivo no formato especificado.

CI Teste Cobertura Auditoria

Instalação

npm i @sumor/config --save

Pré-requisitos

Versão Node.JS

Necessário Node.JS versão 16.x ou superior

Require Node.JS ES module

Como este pacote é escrito em Módulo ES, favor alterar o seguinte código em seu arquivo package.json:

{
  "type": "module"
}

Uso

Métodos de entrada

load

import { load } from '@sumor/config'

search

carrega todos os arquivos no diretório

import { meta } from '@sumor/config'

const config = await meta(process.cwd(), ['js', 'sql'])

/*
Estrutura do diretório de demonstração
- root
  - car.json
  - car.sql
  - ship.js
  - plane.yml
*/

// ele carregará todos os arquivos de configuração como abaixo
/*
{
  car: {
    name: 'car',
    sql: "..."
  },
  ship: {
    name: 'ship'
    js: '<root>/ship.js'
  },
  plane: {
    name: 'plane'
  }
}
*/

Métodos Legados

find

import { find } from '@sumor/config'

findReference

import { findReference } from '@sumor/config'

Carregar arquivo de configuração

import { load } from '@sumor/config'

const config1 = await load(process.cwd(), 'demo')
// ele irá carregar demo.yml ou demo.json no diretório raiz

const config2 = await load(process.cwd(), 'demo', 'yaml')
// ele irá carregar demo.yml ou demo.json no diretório raiz, e convertê-lo para um arquivo no formato yaml

Encontrar arquivos de configuração

import { find } from '@sumor/config'

const config = await find(process.cwd(), 'entidade')
// ele irá carregar todos os *.entity.yml ou *.entity.json no diretório raiz
/*
 * exemplo:
 *   car.entity.yml, bike.entity.json
 *   {
 *       "car": {...}
 *       "bike": {...}
 *   }
 * */

Encontrar arquivos de configuração de outros arquivos

como arquivos .vue, .js, têm o arquivo de configuração com o mesmo nome

import { findReference } from '@sumor/config'

const config = await findReference(process.cwd(), ['vue', 'js'])
// ele irá carregar todos os *.entity.yml ou *.entity.json que possuem o mesmo nome do *.vue ou *.js no diretório raiz
/*
 * exemplo:
 *   car.entity.yml, bike.entity.json
 *   car.vue, bike.js
 *   {
 *       "car": {...}
 *       "bike": {...}
 *   }
 * */