title: 函数仓库

函数仓库

组件仓库类似,函数仓库提供了让函数分类的组织形式,最终能够让 JSON 对一个函数进行完整描述。 目前 AMS 在前期仅提供以下函数仓库:

  1. antd
  2. ams

组件仓库规范一致,函数仓库需要注意:

1. 所有的仓库名称必须小写。
2. 仓库名除了特殊对待的几个以外,其他均与 npm 线上仓库名称一致。

函数转换为 json 原理

我们常见的函数通常表述如下:

  1. /**
  2. * 延迟等待
  3. * @param {number} milliseconds - 毫秒
  4. */
  5. export const delay = (milliseconds: number) => {
  6. return new Promise((resolve) => setTimeout(resolve, milliseconds));
  7. };

我们不难发现的是,delay能够进一步表述为以下调用形式

  1. delay.apply(null, [<milliseconds>]);

delay 为函数名,我们仍需定义一个函数仓库用于管理一系列的函数所属,即:registryName='ams'[<milliseconds>] 为传入参数,这时我们已经可以使用 json 进行进一步的转换表达:

  1. //export const delay = (milliseconds: number) => {
  2. // return new Promise((resolve) => setTimeout(resolve, milliseconds));
  3. //};
  4. // delay(1000);
  5. {
  6. "$$$": "function",
  7. "reigstryName": "ams",
  8. "functionName": "delay",
  9. "args": [
  10. 1000 /* 1秒 */
  11. ]
  12. }

函数仓库 - antd

详细请参考 antd (ant design)。为了避免读者对 antd 用法表示迷茫, 我们提供以下用例便于读者理解。首先我们找到一个 antd 提供的全局实例方法,如:message:

  1. // import { message } from 'antd';
  2. // message.info('This is a normal message');
  3. {
  4. "$$$": "function",
  5. "registryName": "antd",
  6. "functionName": "message",
  7. "args": [
  8. "This is a normal message"
  9. ]
  10. }

函数仓库 - ams

文档待补全。