config

Sumor Cloud 도구.
더 많은 문서
Config Loader는 yaml 및 json 파일을 지원합니다. 디렉터리의 모든 파일을 로드할 수 있습니다.
그리고 파일을 지정된 형식으로 자동으로 변환할 수 있습니다.

CI
Test
Coverage
Audit

설치

npm i @sumor/config --save

Prerequisites

Node.JS 버전

Node.JS 버전 16.x 이상 필요합니다.

Node.JS ES 모듈 필요

해당 패키지가 ES 모듈로 작성되었으므로, package.json 파일에서 다음 코드를 변경해주세요:

{
  "type": "module"
}

사용법

엔트리 메소드

load

import { load } from '@sumor/config'

meta

디렉터리의 모든 파일을 로드합니다.

import { meta } from '@sumor/config'

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

/*
데모 디렉토리 구조
- root
  - car.json
  - car.sql
  - ship.js
  - plane.yml
*/

// 아래와 같이 모든 config 파일들을 로드합니다.
/*
{
  car: {
    name: 'car',
    sql: "..."
  },
  ship: {
    name: 'ship'
    js: '<root>/ship.js'
  },
  plane: {
    name: 'plane'
  }
}
*/

레거시 메소드

find

import { find } from '@sumor/config'

findReference

import { findReference } from '@sumor/config'

Config 파일 로드

import { load } from '@sumor/config'

const config1 = await load(process.cwd(), 'demo')
// 루트 디렉터리의 demo.yml 또는 demo.json을 로드합니다.

const config2 = await load(process.cwd(), 'demo', 'yaml')
// 루트 디렉터리의 demo.yml 또는 demo.json을 로드하고, yaml 형식 파일로 변환합니다.

Config 파일 찾기

import { find } from '@sumor/config'

const config = await find(process.cwd(), 'entity')
// 루트 디렉터리의 모든 *.entity.yml 또는 *.entity.json 파일들을 로드합니다.
/*
 * 예시:
 *   car.entity.yml, bike.entity.json
 *   {
 *       "car": {...}
 *       "bike": {...}
 * }
 * */

다른 파일에서 Config 파일 찾기

예를 들어 .vue, .js 파일 등과 같은 동일한 이름의 config 파일을 가지고 있는 경우

import { findReference } from '@sumor/config'

const config = await findReference(process.cwd(), ['vue', 'js'])
// 루트 디렉터리에서 *.vue 또는 *.js와 동일한 이름을 가진 *.entity.yml 또는 *.entity.json 파일들을 모두 로드합니다.
/*
 * 예시:
 *   car.entity.yml, bike.entity.json
 *   car.vue, bike.js
 *   {
 *       "car": {...}
 *       "bike": {...}
 * }
 * */