1.8.1 • Published 9 months ago

@iringo/arguments-builder v1.8.1

Weekly downloads
-
License
-
Repository
github
Last release
9 months ago

@iringo/arguments-builder

用于统一维护项目参数配置的构建

安装

pnpm add -D @iringo/arguments-builder
# or
npm add -D @iringo/arguments-builder

配置文件

默认读取 arguments-builder.config.(ts|js|mjs) 文件,支持 -c--config 指定配置文件

import { defineConfig } from "@iringo/arguments-builder";

export default defineConfig({
  // ...
});
/**
 * @type {import('@iringo/arguments-builder').ArgumentsBuilderConfig}
 */
module.exports = {
  // ...
};

配置

ArgumentsBuilderConfig

参数类型描述
outputOutput输出文件配置
argsArgumentItem[]参数配置

Output

参数类型描述
surge{ path?: string; template?: string; }surge 输出内容配置。path 为输出路径,template 为模版路径
loon{ path?: string; template?: string; }loon 输出内容配置。path 为输出路径,template 为模版路径
boxjsSettings{ path?: string; scope?: string }boxjs 的 settings 部分内容的输出内容配置。path 为输出路径,scope 为存储键的前缀
dts{ path?: string; isExported?: boolean }输出 dts 文件的配置。isExported 默认根据输出文件后缀自动判断,及 .d.ts 文件认为是全局类型,则 isExportedfalse.ts 文件则反之

ArgumentItem

参数类型描述
keystring (必填)参数 key
type'string' | 'number' | 'boolean' | 'array' (必填)参数类型
boxJsType'text' | 'slider' | 'boolean' | 'textarea' | 'radios' | 'checkboxes' | 'colorpicker' | 'number' | 'selects' | 'modalSelects'自动的映射关系无法满足时,可以使用 boxJsType 来自定义
namestring参数描述
descriptionstring参数简介
defaultValueany默认值
optionsarray选项
placeholderstring输入框占位符
excludeArray<'surge'| 'loon' | 'boxjs' | 'dts'>当前参数在哪些平台上不生效

CLI

输出 dts 文件

用于开发阶段输出根据当前参数配置输出类型文件,方便类型推导

npx arguments-builder dts

生成 module 文件

一键生成

根据模版自动生成 surgeloon 的 module 文件,以及 boxjs 的 settings 部分的 JSON 文件

npx arguments-builder build

单独生成

命令行工具保留了分别生成单独平台文件的能力

npx arguments-builder (surge|loon|boxjs)

通用参数

所有命令均支持 -c--config 指定配置文件。

例如以下场景

// arguments-builder.config.ts
import { defineConfig } from "@iringo/arguments-builder";

export default defineConfig({
  // ...
});

// arguments-builder.beta.config.ts
import defaultConfig from "./arguments-builder.config.ts";
import { defineConfig } from "@iringo/arguments-builder";

export default defineConfig({
  ...defaultConfig,
  args: [
    ...defaultConfig.args,
    {
      // ...
    },
  ],
});

Node API

import { ArgumentsBuilder } from "@iringo/arguments-builder";

const argumentsBuilder = new ArgumentsBuilder();
1.8.1

9 months ago

1.8.0

9 months ago

1.7.8

10 months ago

1.7.7

10 months ago

1.7.6

10 months ago

1.7.5

10 months ago

1.7.4

10 months ago

1.7.3

10 months ago

1.7.2

10 months ago

1.7.1

10 months ago

1.7.0

10 months ago

1.6.0

10 months ago

1.5.0

10 months ago

1.4.2

10 months ago

1.4.1

10 months ago

1.4.0

10 months ago

1.3.0

10 months ago

1.2.0

10 months ago

1.1.2

10 months ago

1.1.1

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

11 months ago