Конфигурация

Инструмент Sumor Cloud.
Больше документации
Конфигуратор поддерживает файлы yaml и json. Он может загрузить все файлы в директории. И автоматически конвертирует файл в указанный формат.

CI
Тест
Покрытие
Аудит

Установка

npm i @sumor/config --save

Пререквизиты

Версия Node.JS

Требуется версия Node.JS 16.x или выше

Требование к ES-модулям Node.JS

Поскольку этот пакет написан с использованием 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
  - truck.config.js
*/

// это загрузит все конфигурационные файлы следующим образом
/*
{
  car: {
    name: 'car',
    sql: "..."
  },
  ship: {
    name: 'ship'
    js: '<root>/ship.js'
  },
  plane: {
    name: 'plane'
  },
  truck: {
    name: 'truck'
  }
*/

Устаревшие методы

find

import { find } from '@sumor/config'

findReference

import { findReference } from '@sumor/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

Найти конфигурационные файлы

import { find } from '@sumor/config'

const config = await find(process.cwd(), 'entity')
// это загрузит все *.entity.yml или *.entity.json в корневой директории
/*
 * пример:
 *   car.entity.yml, bike.entity.json
 *   {
 *       "car": {...}
 *       "bike": {...}
 *   }
 * */

Найти конфигурационные файлы из других файлов

например, файлов .vue, .js, у которых есть файл с таким же именем

import { findReference } from '@sumor/config'

const config = await findReference(process.cwd(), ['vue', 'js'])
// это загрузит все *.entity.yml или *.entity.json, у которых есть файл с таким же именем как *.vue или *.js в корневой директории
/*
 * пример:
 *   car.entity.yml, bike.entity.json
 *   car.vue, bike.js
 *   {
 *       "car": {...}
 *       "bike": {...}
 *   }
 * */