Open DiamondYuan opened 5 years ago
although we can use trick,such as base64
有比较好的 API 设计形式吗?我这边希望的是:
themeConfig
中知道是哪个 plugin 的 config,作用域明确;有比较好的 API 设计形式吗?我这边希望的是:
- 能够比较清晰的在
themeConfig
中知道是哪个 plugin 的 config,作用域明确;- 现在的 plugin 是基于 path 去拿的,相当于没有 id,这个可能是区分 config 作用域会遇到的一个阻力;
- 另一点就是,新的设计如何不 break。
我随便举一个例子。
const plugins = [
{
config: {},
use: "bisheng-plugin-xxx"
}
];
因为 bisheng 的配置是用 js 文件写的,config 里面用户可以随便怎么写,怎么传都可以。 如果不要 break,只需要解析的时候用 typeof 判断一下 config 是否是一个对象。如果是字符串则用原来的方法,如果是对象则用新的方法。 我现在使用的方法很 trick
配置的时候
`bisheng-plugin-typescript-interface?encodeConfig=${Buffer.from(
JSON.stringify(bishengPluginTypescriptInterfaceConfig),
).toString('base64')}`
解析的时候
const pluginTableConfig = JSON.parse(
Buffer.from(encodeConfig, 'base64').toString()
);
你关联的 antd 的 pr 我看到了,我反而觉得现在 trick 的实现也不错。 按你的这个设计走的话,如果这么写的话,算非法行为吧。
const plugins = [
{
config: {a: 'b'},
use: "bisheng-plugin-xxx?a=b"
}
];
suck as