包详细信息

@qiwi/uniconfig-core

qiwi34MIT3.5.5

Core uniconfig library

universal config, unified config, uniconfig-core

自述文件

@qiwi/uniconfig-core

Core uniconfig layer: basic ifaces, utils, entry point, plugin API

Install

  npm i @qiwi/uniconfig-core
  yarn add @qiwi/uniconfig-core

Plugin API

uniconfig features may be significantly extended with plugins.

import uniconfig, {rollupPlugin} from '@qiwi/uniconfig-core'
import uniconfigPluginFile from '@qiwi/uniconfig-plugin-api-file'    
import uniconfigPluginYaml from '@qiwi/uniconfig-plugin-yaml'    
import uniconfigPluginDatatree from '@qiwi/uniconfig-plugin-datatree'    

rollupPlugin(uniconfigPluginFile)
rollupPlugin(uniconfigPluginYaml)
rollupPlugin(uniconfigPluginDatatree)
const config = uniconfig('./foobar.yml', {mode: 'sync', pipeline: 'file>yaml>datatree'})

Each plugin should expose at least two methods to be registered: rollup and rollback.

export interface IContext {
  pipe: IRegistry
}

export interface IPlugin {
  rollback(context: IContext): void,
  rollup(context: IContext): void
}

IPipe with additional name field is also provided as plugin declaration:

  const name = 'test'
  const pipe = {
    handle() {},
    handleSync() {}
  }
  const pipeAsPlugin = {...pipe, name}

  rollupPlugin(pipeAsPlugin)
  context.pipe.get(name)  // IPipe

Example

{
  "data": {
    "foo": "bar",
    "baz": 1,
    "host": "$remoteConfig.hostname",
    "port": "$jsonFile.defaultPort"
  },
  "sources": {
     "jsonFile": {"pipeline": "file>json", "data": "./foo.json"},
     "yamlFile": {"pipeline": "file>yaml", "data": "./bar.yaml"},
     "remoteConfig": {"pipeline": "http>json", "data": "https://reqres.in/api/users/2"}
  }
}

更新日志

@qiwi/uniconfig-core-v3.5.1 (2020-07-25)

Bug Fixes

  • package: up deps, fix some vulns (9a93496)

@qiwi/uniconfig-core-v3.5.0 (2020-05-28)

Features

@qiwi/uniconfig-core-v3.4.0 (2020-05-21)

Features

  • core: add logging for failed pipe (05dd364), closes #248

@qiwi/uniconfig-core-v3.3.1 (2020-05-04)

Performance Improvements

@qiwi/uniconfig-core-v3.3.0 (2020-01-29)

Features

  • core: pass execution context to pipe handlers (9ca0ef8)

@qiwi/uniconfig-core-v3.2.2 (2019-12-29)

Performance Improvements

@qiwi/uniconfig-core-v3.2.1 (2019-11-02)

Performance Improvements

  • package: up deps and repack (f9c0e14)

@qiwi/uniconfig-core-v3.2.0 (2019-09-03)

Features

  • core: add env type assertion on pipe registration (db03e3a), closes #54

@qiwi/uniconfig-core-v3.1.0 (2019-07-29)

Features

@qiwi/uniconfig-core-v3.0.0 (2019-06-22)

Features

BREAKING CHANGES

  • introduce updated ifaces

@qiwi/uniconfig-core-v2.22.2 (2019-05-29)

Performance Improvements

  • package: replace lodash-es with lodash & repack (5053089)

@qiwi/uniconfig-core-v2.22.1 (2019-05-29)

Performance Improvements

  • expose main as es5, repack (104fc74)

@qiwi/uniconfig-core-v2.22.0 (2019-01-23)

Features

@qiwi/uniconfig-core-v2.21.1 (2019-01-15)

Performance Improvements

@qiwi/uniconfig-core-v2.19.0 (2018-11-27)

Features

@qiwi/uniconfig-core-v2.14.0 (2018-11-15)

Features

  • add details to pipeExecutor error (966ee2b)
  • pipeExecutor: replace char separator with regex (39650e3), closes #86

@qiwi/uniconfig-core-v2.7.0 (2018-10-27)

Features

  • support IPipe as plugin declaration (9ecc7c3), closes #51

@qiwi/uniconfig-core-v2.4.0 (2018-10-20)

Features

  • support single argument iface for Config constructor (192ace3), closes #59

@qiwi/uniconfig-core-v2.2.0 (2018-10-17)

Features

  • expose ready promise as config instance field (c2e7e8a), closes #52

@qiwi/uniconfig-core-v2.1.1 (2018-10-17)

Performance Improvements

@qiwi/uniconfig-core-v2.1.0 (2018-10-16)

Features

  • add datatree plugin to default preset + repack with transform-runtime (4f0b8e5)

@qiwi/uniconfig-core-v2.0.2 (2018-10-16)

Performance Improvements

@qiwi/uniconfig-core-v2.0.0 (2018-10-16)

Code Refactoring

BREAKING CHANGES

  • changed ISourceDefinition and IConfigOpts contracts

@qiwi/uniconfig-core-v1.21.0 (2018-10-15)

Features

@qiwi/uniconfig-core-v1.19.0 (2018-10-14)

Features

  • pull up file api plugin (9e88149)

@qiwi/uniconfig-core-v1.18.0 (2018-10-14)

Features

  • support sources with no parser option (6817d6d)

@qiwi/uniconfig-core-v1.17.0 (2018-10-13)

Features

  • separate uniconfig and uniconfig-core (feafe84), closes #45

@qiwi/uniconfig-v1.15.0 (2018-10-08)

Features

@qiwi/uniconfig-v1.14.1 (2018-10-08)

Bug Fixes

  • handle case with empty sources (ed77281), closes #40

@qiwi/uniconfig-v1.14.0 (2018-09-17)

Bug Fixes

Features

  • core: add http api (9ffd43c)
  • add Source factory (99e00b7)
  • core: implement basic evaluator (f0e3b65)
  • core: support object definition as Config input (b44e0dc)

@qiwi/uniconfig-v1.13.9 (2018-08-26)

Performance Improvements

@qiwi/uniconfig-v1.13.8 (2018-08-26)

Performance Improvements

@qiwi/uniconfig-v1.13.7 (2018-08-26)

Performance Improvements

@qiwi/uniconfig-v1.13.6 (2018-08-26)

Performance Improvements

@qiwi/uniconfig-v1.13.5 (2018-08-26)

Performance Improvements

@qiwi/uniconfig-v1.13.3 (2018-08-26)

Bug Fixes

@qiwi/uniconfig-v1.13.3 (2018-08-26)

Bug Fixes

@qiwi/uniconfig-v1.13.2 (2018-08-26)

Performance Improvements

  • migrate to latest release-hooks (16f4817)

@qiwi/uniconfig-v1.13.1 (2018-07-30)

Performance Improvements

@qiwi/uniconfig-v1.13.0 (2018-07-24)

Features

@qiwi/uniconfig-v1.12.17 (2018-07-24)

Performance Improvements

@qiwi/uniconfig-v1.12.16 (2018-07-16)

Performance Improvements

@qiwi/uniconfig-v1.12.15 (2018-07-16)

Performance Improvements

@qiwi/uniconfig-v1.12.14 (2018-07-13)

Performance Improvements

  • release-hooks: tech release (f8f6e60)

@qiwi/uniconfig-v1.12.13 (2018-07-13)

Performance Improvements

  • release-hooks: store counters in process.env (d757892)

@qiwi/uniconfig-v1.12.12 (2018-07-13)

Bug Fixes

  • release-hooks: prevent env vars drop (eda1307)

@qiwi/uniconfig-v1.12.11 (2018-07-13)

Performance Improvements

  • release-hooks: replace fs store with env vars (26f793a)

@qiwi/uniconfig-v1.12.10 (2018-07-13)

Performance Improvements

  • release-hooks: replace expr with bash calculations (e308217)

@qiwi/uniconfig-v1.12.9 (2018-07-12)

Performance Improvements

@qiwi/uniconfig-v1.12.8 (2018-07-12)

Performance Improvements

@qiwi/uniconfig-v1.12.8 (2018-07-12)

Performance Improvements

@qiwi/uniconfig-v1.12.7 (2018-07-12)

Performance Improvements

@qiwi/uniconfig-v1.12.6 (2018-07-12)

Performance Improvements

@qiwi/uniconfig-v1.12.5 (2018-07-12)

Performance Improvements

@qiwi/uniconfig-v1.12.4 (2018-07-12)

Performance Improvements

@qiwi/uniconfig-v1.12.3 (2018-07-12)

Performance Improvements

@qiwi/uniconfig-v1.12.2 (2018-07-12)

Performance Improvements

  • drop redundant release tag (3d87b7b)

@qiwi/uniconfig-v1.12.1 (2018-07-12)

Performance Improvements

@qiwi/uniconfig-v1.12.0 (2018-07-12)

Features

  • parserEntryRegistry becomes a singleton (e19c1df)

@qiwi/uniconfig-v1.11.5 (2018-07-11)

Performance Improvements

@qiwi/uniconfig-v1.11.4 (2018-07-11)

Performance Improvements

@qiwi/uniconfig-v1.11.3 (2018-07-11)

Performance Improvements

@qiwi/uniconfig-v1.11.2 (2018-07-11)

Performance Improvements

@qiwi/uniconfig-v1.11.1 (2018-07-11)

Performance Improvements

@qiwi/uniconfig-v1.11.0 (2018-07-11)

Features

  • add parserEntryRegistry (3b91699)

@qiwi/uniconfig-v1.9.0 (2018-07-11)

Features

@qiwi/uniconfig-v1.8.0 (2018-07-03)

Features

  • add smart parser to fileSource (4d63912)

1.7.0 (2018-06-29)

Features

  • implement schema registry (e2ab10d)

1.6.0 (2018-06-29)

Features

  • expose config factory as default facade (75369d1)

1.5.0 (2018-06-29)

Bug Fixes

  • flow: broken flowconfig scope & up dev deps (9974651)

Features

1.4.0 (2018-06-28)

Features

  • add FileSource to process file data (a78eb44)

1.3.0 (2018-06-26)

Features

  • add ISource iface contract (7b55f3a)

1.2.0 (2018-06-25)

Features

  • add initial loader structure (4da333e)

1.1.0 (2018-06-14)

Features

1.0.0 (2018-06-10)

Features

  • Config: implement basic config api (ad1c6ec)