diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..a2237bc --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +* text=auto eol=lf + +*.bat text eol=crlf +*.cmd text eol=crlf diff --git a/README.md b/README.md index 1827b66..971a1d7 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,8 @@ npx yx-generate-api init - `yx-generate-api.config.mjs` - `run-yx-generate-api.bat` +其中 `yx-generate-api.config.mjs` 现在默认自带字段注释,方便首次接入时直接按提示修改。 + 如果文件已存在,使用 `--force` 覆盖: ```bash @@ -59,22 +61,49 @@ npx yx-generate-api init --force ### 2. 修改配置 -下面是一个更接近真实项目的示例: +下面是一个和 `init` 模板一致的带注释示例: ```js export default { + // Swagger/OpenAPI 来源。 + // 支持 http(s)、file://,也支持本地 JSON 文件路径。 swaggerUrl: 'http://127.0.0.1:8080/swagger/v1/swagger.json', + + // 远程 Swagger 加载超时时间,单位毫秒。 swaggerTimeoutMs: 20000, + + // 生成文件输出目录。 + // 相对路径会基于当前配置文件所在目录解析。 outputDir: 'src/api/aixue/generated', + + // 由 `sync` / `gen` 维护的外部 API 入口文件。 externalIndexFile: 'src/api/aixue/index.js', + + // 写入到生成模块中的 request 导入路径。 + // 这个路径必须相对于每个生成后的模块文件来写。 requestImport: '../request', + + // 生成函数的参数风格,可选 'object' 或 'positional'。 paramStyle: 'object', + + // 全量生成时,是否清理已经过期的自动生成模块文件。 + // 如果是部分模块生成,会自动跳过清理,避免误删其他模块。 cleanOutput: true, + sync: { + // 如果你只想生成文件、不想改 externalIndexFile,可以设为 false。 enabled: true, + + // 是否在受管区块中附带 generated/index.js 的注释快照。 includeGeneratedIndexSnapshot: true, + + // externalIndexFile 里受管区块的开始和结束标记。 blockStart: '// AUTO-GENERATED API EXPORTS START', blockEnd: '// AUTO-GENERATED API EXPORTS END', + + // 可选: + // snapshotTitle: '// generated/index.js content:', + // exportFrom: './generated', }, } ``` diff --git a/templates/yx-generate-api.config.mjs b/templates/yx-generate-api.config.mjs index 33ab9e9..a963613 100644 --- a/templates/yx-generate-api.config.mjs +++ b/templates/yx-generate-api.config.mjs @@ -1,15 +1,42 @@ export default { + // Swagger/OpenAPI 来源。 + // 支持 http(s)、file://,也支持本地 JSON 文件路径。 swaggerUrl: 'http://127.0.0.1:8080/swagger/v1/swagger.json', + + // 远程 Swagger 加载超时时间,单位毫秒。 swaggerTimeoutMs: 20000, + + // 生成文件输出目录。 + // 相对路径会基于当前配置文件所在目录解析。 outputDir: 'src/api/generated', + + // 由 `sync` / `gen` 维护的外部 API 入口文件。 externalIndexFile: 'src/api/index.js', + + // 写入到生成模块中的 request 导入路径。 + // 这个路径必须相对于每个生成后的模块文件来写。 requestImport: '../request', + + // 生成函数的参数风格,可选 'object' 或 'positional'。 paramStyle: 'object', + + // 全量生成时,是否清理已经过期的自动生成模块文件。 + // 如果是部分模块生成,会自动跳过清理,避免误删其他模块。 cleanOutput: true, + sync: { + // 如果你只想生成文件、不想改 externalIndexFile,可以设为 false。 enabled: true, + + // 是否在受管区块中附带 generated/index.js 的注释快照。 includeGeneratedIndexSnapshot: true, + + // externalIndexFile 里受管区块的开始和结束标记。 blockStart: '// AUTO-GENERATED API EXPORTS START', blockEnd: '// AUTO-GENERATED API EXPORTS END', + + // 可选: + // snapshotTitle: '// generated/index.js content:', + // exportFrom: './generated', }, }