npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

c4configger

v0.0.9

Published

C4Framework Configger

Downloads

7

Readme

C4Configger是用来加载和解析本地或远程配置文件的工具,支持:

  • 本地配置文件支持yaml和json格式,其中json格式支持注释;

  • 本地配置文件支持宏定义和文件引用(@link://{filePath});

  • 远程配置文件支持Spring Cloud的Configer Server;

  • 远程配置文件支持宏定义但不支持文件引用;

  • 支持将远程配置文件展开为标准JSON对象,如:

      {
          name : 'sdfsdfsdf/app01-dev.yml',
          source : {
              xxx[0].Path : '123',
              xxx[1].main : 'sadsd',
              oooo.host : 'sdfdsf'
          }
      }
    {
        name : 'sdfsdfsdf/app01-dev.yml',
        source: {
            xxx : [
                {
                    Path : '123'
                },
                {
                    main : 'asdsd'
                }
            ],
            ooo : {
                host : 'sdfdsf'
            }
        }
    }
  • 支持将加载完毕的配置Dump为一个完整的配置文件输出。

配置文件详解参考 ./Config/Configger.yml中的注释

使用时需要手动配置AppInfo进行C4Configger的构造。

  • C4Configger

    • 说明:C4Configger对象

    • 路径:./src/C4Configger.ts

    • 成员变量:

      • m_LocalLoader,本地加载器,用来加载json或yaml格式配置文件;
      • m_RemoteLoader,远程加载器,用来从Spring Cloud的Config Server加载配置;
      • m_AJV,C4AJV用来对Configger的配置项进行校验;
      • m_ConfigInfo,C4ConfigInfo用来配置一些宏需要的信息。
    • 成员方法:

      • init
      /**
      * 初始化
      */
      async init() 
      • load
      /**
      * 加载
      */
      async load()
      • refresh
      /**
      * 刷新
      */
      async refresh()
      • loadType
      /**
      * 获取当前的加载器类型
      */
      loadType() 
      • dump
      /**
      * 将当前数据dump到文件中
      * @param type 输出的文件类型
      * @param savePath 保存的路径
      */
      async dump(type : C4ConfigFileType, savePath ?: string) 
  • C4BaseLoader

    • 说明:配置加载器的基类

    • 路径:./src/C4BaseLoader.ts

    • 成员变量:无

    • 成员方法:

      • init,初始化方法,需要子类去实现;
      • _processMacro
      /**
      * 处理宏
      * @param value 当前值
      * @param configInfo C4ConfigInfo
      */
      async _processMacro(value : string, configInfo : C4ConfigInfo)
      • _isLink
      /**
      * 判断是否是文件引用
      * @param value 当前配置项的值
      */
      _isLink(value : string)
  • C4LocalLoader

    • 说明:本地加载器,可以设置不同的类型文件(根据文件扩展名)设置加载器进行加载;

    • 路径:./src/C4LocalLoader.ts

    • 成员变量:

      • m_Loaders,文件加载器的存储字典,key为文件扩展名,value为C4ConfigLoaderInterface
    • 成员方法:

      • init
      • load
      /**
      * 加载配置
      * @param rootDir 根目录
      * @param loadString 加载文件
      * @param configInfo C4ConfigInfo
      */
      async load(rootDir : string, loadString : string, configInfo : C4ConfigInfo) 
      • _load
      /**
      * 实际加载的方法
      * @param rootDir 根目录
      * @param loadString 加载文件
      * @param configInfo C4ConfigInfo
      */
      async _load(rootDir : string, loadString : string, configInfo : C4ConfigInfo) 
      • registerLoader
      /**
      * 注册文件加载器
      * @param key 文件扩展名
      * @param loaderFactory 创建加载器的工厂方法
      */
      async registerLoader(key : string, loaderFactory : () => C4ConfigLoaderInterface) 
  • C4RemoteLoader

    • 说明:远程加载器,从Spring Cloud的Config Server加载配置,并将结果转换为标准JSON对象;

    • 路径:./src/C4RemoteLoader.ts

    • 成员变量:

      • m_Client,C4RESTFulClient,用于进行请求。
    • 成员方法:

      • init
      /**
      * 初始化
      * @param option ClientOption
      * @param changeServer 是否切换Client配置
      */
      async init(option ?: ClientOption, changeServer : boolean = false)
      • load
      /**
      * 加载配置
      * @param configInfo C4ConfigInfo
      */
      async load(configInfo : C4ConfigInfo)
      • _parse
      /**
      * 对结果进行解析
      * @param config 返回的配置项
      * @param configInfo C4ConfigInfo
      */
      _parse(config : any, configInfo : C4ConfigInfo)
  • C4ConfigLoaderInterface

    • 说明:本地配置文件加载对象的接口类;

    • 路径:./src/LoaderInstance/C4ConfigLoaderInterface.ts

    • 成员变量:无

    • 成员方法:

      • init
      /**
      * 初始化方法
      * @param initString 初始参数
      */
      abstract async init(initString : string) : Promise<any>
      • load
      /**
      * 加载方法
      * @param rootDir 根目录
      * @param loadString 加载文件
      * @param configInfo C4ConfigInfo
      */
      abstract async load(rootDir : string, loadString : string, configInfo : C4ConfigInfo) : Promise<any>
  • C4JSONLoader

    • 说明:本地配置文件JSON类型的加载器;

    • 路径:./src/LoaderInstance/C4JSONLoader.ts

    • 成员变量:无

    • 成员方法:

      • init
      /**
      * 初始化方法
      * @param initString 初始参数
      */
      abstract async init(initString : string) : Promise<any>
      • load
      /**
      * 加载方法
      * @param rootDir 根目录
      * @param loadString 加载文件
      * @param configInfo C4ConfigInfo
      */
      abstract async load(rootDir : string, loadString : string, configInfo : C4ConfigInfo) : Promise<any>
  • C4YamlLoader

    • 说明:本地配置文件JSON类型的加载器;

    • 路径:./src/LoaderInstance/C4YamlLoader.ts

    • 成员变量:无

    • 成员方法:

      • init
      /**
      * 初始化方法
      * @param initString 初始参数
      */
      abstract async init(initString : string) : Promise<any>
      • load
      /**
      * 加载方法
      * @param rootDir 根目录
      * @param loadString 加载文件
      * @param configInfo C4ConfigInfo
      */
      abstract async load(rootDir : string, loadString : string, configInfo : C4ConfigInfo) : Promise<any>