@alicloud/console-conf-link-factory
Version:
44 lines (28 loc) • 1.54 kB
Markdown
# @alicloud/console-conf-link-factory
渠道链接标准生产工厂
注意:OneConsole 应用请直接使用 `@alicloud/console-one-conf`
## Usage
### 创建 `confLink` 方法
```typescript
import confLinkFactory from '@alicloud/console-conf-link-factory';
import defaultLink from './default-link';
export default confLinkFactory(defaultLink);
```
注意:默认 link 中的插值是 `[...]`,这意味着链接的值可能是这样 `//....com/path/[param1]?p=[param2]`,你可以在调用 `confLinkFactory` 的时候传第二个参数修改成你喜欢的方式(目前不支持多种类型)。
请一定传一个在你应用下全量的链接 `key-value` 对象,这有如下好处:
1. 你若使用的是 TS,则不可能传错 key,传错则报错
2. 即使没有 viper 的输出,你的应用也是完整可运行的
3. 你大可不必一定在 Viper 上写全部的链接(当然写全更好)
### 使用 `confLink` 方法
```typescript
import confLink from 'path-to-conf-link';
// 某个地方
const link = confLink('xxx:yyy'); // TS 下这里绝不会写错
const link2 = confLink('xxx:yyy_{id}', {
id: 'xxx' // 带插值
});
```
## 最佳实践
* 在应用中有一份完整的链接兜底
* 链接的 `key` 遵循 `snake_case`,如果有 `namespace` 的概念,可以考加两条下划线如 `namespace__xx_yy`
* 链接的 `key` 需要能够反映这个链接个功能,更要反映它需要的插值参数,比如 `product__document_[id]`,表明它是产品的文档地址,且需要参数 `id`