{"_rev":"3-c6d7dd3e56ac2c4155db2e6d878c0d26","time":{"created":"2024-07-11T08:24:58.145Z","modified":"2024-07-11T08:24:58.839Z","1.0.4":"2024-07-11T07:15:48.806Z","1.0.5":"2024-07-11T08:24:58.429Z"},"_id":"@blued-core/bc-qconf","name":"@blued-core/bc-qconf","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.5":{"name":"@blued-core/bc-qconf","version":"1.0.5","description":"support baisc command and mysql and redis configuration","keywords":["qconf","blued","bc"],"main":"dist/index.js","module":"dist/index.js","types":"types/index.d.ts","scripts":{"dev":"rollup -w -c","build":"rm -rf dist && rollup -c","lint":"eslint src --ext .ts,.js","lint:ts":"tsc --noEmit","prepublish":"pnpm lint && pnpm lint:ts && pnpm build"},"author":{"name":"chisecc"},"maintainers":[{"name":"chisecc","email":"kbdysjk@163.com"},{"name":"jarvan8888","email":"yuanyongvia@gmail.com"},{"name":"jiasm","email":"jiashunming@outlook.com"},{"name":"ryli","email":"lov.2014@gmail.com"},{"name":"nieweidong","email":"darrencode@qq.com"},{"name":"fengcang2020","email":"2929039176@qq.com"}],"license":"ISC","repository":{"type":"git","url":"git+https://git.ourbluecity.com/utils/bc-tool-libs.git"},"devDependencies":{},"peerDependencies":{},"gitHead":"d0bd719288ac0718e57b1cd1e1a7f761e2ec58cc","_id":"@blued-core/bc-qconf@1.0.5","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-SDeXcX/w682C8TPeLY4GYZHjNf+a/jIitvfshWGoiCd8SJzZxlObeJNwJFUKo1V2Ot0o3ddsOwfQaRpqPSNzsQ==","shasum":"5920cc5d6075761f1b385e30867faee16ef25c3d","tarball":"https://registry.npmjs.org/@blued-core/bc-qconf/-/bc-qconf-1.0.5.tgz","fileCount":4,"unpackedSize":9868,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFp4sB2rP7x5vvqiLbcj0DOyI1HmkZT7yDrDm7ApHkm5AiA9d7kn8+Fo/Ph8vtAFGbylNMPF1tfPJHutT6HmGjw2Tw=="}]},"_npmUser":{"name":"chisecc","email":"kbdysjk@163.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bc-qconf_1.0.5_1720686298287_0.705881584177122"},"_hasShrinkwrap":false}},"maintainers":[{"name":"chisecc","email":"kbdysjk@163.com"},{"name":"jarvan8888","email":"yuanyongvia@gmail.com"},{"name":"jiasm","email":"jiashunming@outlook.com"},{"name":"ryli","email":"lov.2014@gmail.com"},{"name":"nieweidong","email":"darrencode@qq.com"},{"name":"fengcang2020","email":"2929039176@qq.com"}],"description":"support baisc command and mysql and redis configuration","keywords":["qconf","blued","bc"],"repository":{"type":"git","url":"git+https://git.ourbluecity.com/utils/bc-tool-libs.git"},"author":{"name":"chisecc"},"license":"ISC","readme":"# bc-qconf\n\n封装基于 child_process 调用本地命令方式的 qconf 获取库。兼容现有大部分使用方式。并支持 ts 类型校验及类型提示。\n\n## 使用方式\n\n包含的 API 对应 qconf 命令的 getConf、getHost、getAllHost、getBatchKeys 以及拓展的 getRedisConf、getMysqlConf 内容。在 ts 语法下支持参数提示，可自动提示所配置的 key 名。\n\n![示例](https://web.bldimg.com/cblued/static/Xnip2023-12-25_19-28-41.1higbpk2b23ml7d.png)\n\n```\nimport { BcQconf, QConfigs } from '@blued/bc-qconf';\n\nconst qconfs: QConfigs<'conf' | 'host' | 'allHost' | 'mysql' | 'redis'> = {\n  conf: {\n    qconf: '/blued/backend/umem/qconf_test_cc/test_content'\n  },\n  host: {\n    qconf: '/blued/backend/umem/qconf_test_cc'\n  },\n  allHost: {\n    qconf: '/blued/backend/umem/qconf_test_cc'\n  },\n  mysql: {\n    qconf: '/blued/backend/umem/qconf_test_cc',\n    database: 'blued',\n    modelPath: '/abc',\n  },\n  redis: {\n    qconf: '/blued/backend/umem/qconf_test_cc'\n  }\n}\n\nconst qc = new BcQconf(qConfs)\n\n// 返回 path 本身的节点值。如：{\"activity_id\":316,\"start_time\":\"20231208\",\"end_time\":\"20231214\"}\nqc.getConf('conf')\n\n// 返回 path 下第一个节点值为 0 的节点名称。如：100.100.100.100:90\nqc.getHost('host')\n\n// 返回 path 下所有节点值为 0 的节点名称。如：[ '100.100.100.100:90', '123.123.123.123:80' ]\nqc.getAllHost('allHost')\n\n// 返回 path 下所有节点名称。如：[ '100.100.100.100:90', '123.123.123.123:80', 'database', 'master', 'password', 'slave', 'test_content', 'username' ]\nqc.getBatchKeys('allHost')\n\n// 是 getHost 的 alias\nqc.getApi('host')\n\n// 返回 path 下所有节点名称。支持 password 参数\n// 如：{ host: '100.100.100.100', port: '90', password: 'wo_is_pwd' }\nqc.getRedisConf('redis')\n\n// 以 mysql 配置形式返回值。\n// 如：{\n  master: { host: '111.111.111.111', port: '80' },\n  slave: [\n    { host: '120.120.120.120', port: '100' },\n    { host: '121.121.121.121', port: '101' }\n  ],\n  username: 'chisecc',\n  password: 'wo_is_pwd',\n  database: 'blued',\n  modelPath: '/abc'\n}\nqc.getMysqlConf('mysql')\n```\n\n## 配置参数\n```\n{\n  // qconf 读取路径配置。注意：必须包含 qconf 属性\n  configs: { [key: string]: { qconf: string, database?: string, modelPath?: string } },\n\n  // 表示要读区的配置的源（一般不用配置，按本地配置走）。如：production 则读取线上配置\n  // flag 的值对应，qconf 下配置文件 idc.conf 内的名称\n  flag: string\n}\n```\n\n\n## Todo\n\n\n## Changelog\n\n### 1.0.4 (2023-12-25)\n\n- feat: 调整 ts 语法定义，新增 QConfigs<Key> 对象定义类型\n\n### 1.0.3 (2023-12-23)\n\n- fix: qc.getRedisConf() 在部分场景下异常\n\n### 1.0.2 (2023-12-22)\n\n- feat: 新增 QconfError 错误类型\n- feat: 调整 spawnSync 命令执行时，错误处理逻辑\n","readmeFilename":"README.md"}