@dune2/cli 0.0.10 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,6 +17,9 @@ function resolveSheetId(str) {
17
17
 
18
18
  // src/shared/config.ts
19
19
  var joycon = new JoyCon();
20
+ function defineConfig(c) {
21
+ return c;
22
+ }
20
23
  var configName = "dune.config.js";
21
24
  async function getConfig() {
22
25
  var _a;
@@ -52,7 +55,8 @@ async function getConfig() {
52
55
  }
53
56
 
54
57
  export {
58
+ defineConfig,
55
59
  configName,
56
60
  getConfig
57
61
  };
58
- //# sourceMappingURL=chunk-UPESJ46X.js.map
62
+ //# sourceMappingURL=chunk-NBMV2KMH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/shared/config.ts","../src/shared/resolveSheetId.ts"],"sourcesContent":["import JoyCon from \"joycon\";\nimport { resolveSheetId } from \"./resolveSheetId\";\n\nconst joycon = new JoyCon();\n\nexport interface I18nConfig {\n // 语言文件存放目录,默认为项目根目录的 \"./src/i18n\"\n i18nDir?: string;\n // 语言文件名,默认为 \"{locale}.i18n.json\",其中 {locale} 会被替换为 locales 中的语言\n i18nFileName?: string;\n // 默认语言,默认为 \"zh\",影响到提出出来的文案的默认值\n defaultLocale?: string;\n /**\n * 可以是 id 或者 url,如果是 url 则会自动解析出 id\n * id: 1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\n * url: https://docs.google.com/spreadsheets/d/1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk/edit#gid=1740568548\n */\n sheetId?: string;\n // google sheets 工作表名称\n sheetRange?: string;\n /**\n * 对应 语言、i18nKey 所在的列标识符 如(A,B,C...)\n * 传入时将忽略默认的配置\n * @default {key: \"B\", zh: \"C\", en: \"D\", in: \"E\",}\n */\n position?: {\n key: string;\n [key: string]: string;\n };\n\n /**\n * 从 Google Sheets 哪一行开始解析\n * 默认从第2行开始,模板文件第一行是表头\n * @default 2\n */\n parseStartIndex?: number;\n\n /**\n * 默认是 命令运行的目录,一般是项目根目录\n * @internal\n */\n cwd?: string;\n /**\n * 支持的语言列表,从 position 中解析出来\n * @internal\n */\n locales?: string[];\n\n /**\n * 翻译key的排序\n * @internal\n */\n keySorter?: (a: string, b: string) => number;\n}\n\nexport interface ApiConfig {\n /**\n * swagger JSON 的路径 可以是 本地 可以是远程\n */\n swaggerJSONPath: string;\n /**\n * 用在生成代码里快捷连接跳转到 swagger ui\n * 必须携带 urls.primaryName 参数\n * @example http://192.168.104.10:31082/swagger/?urls.primaryName=%E5%90%8E%E5%8F%B0%E7%AE%A1%E7%90%86%E7%9B%B8%E5%85%B3API\n */\n swaggerUiUrl?: string;\n /**\n * 输出的文件夹路径\n * @default \"./src/apis\"\n */\n output?: string;\n /**\n * 配置`requestFn` 方法引入的路径,生成的代码里会用到,生成代码如下\n * 引入的名称必须是`requestFn`\n * ```ts\n * // 需要命名为 requestFn\n * import requestFn from '@/utils/request'\n * import { foo as requestFn } from '@/utils/request'\n * ```\n * @default `import requestFn from '@/utils/request'`\n */\n requestFnImportPath?: string;\n}\n\nexport interface Config {\n i18n?: I18nConfig[];\n api?: ApiConfig[];\n /**\n * 默认是 命令运行的目录,一般是项目根目录\n * @internal\n */\n cwd?: string;\n}\nexport function defineConfig<T = Config>(c: T) {\n return c;\n}\n\nexport const configName = \"dune.config.js\";\n\nexport async function getConfig(): Promise<Config> {\n const res = await joycon.load([configName]);\n\n const defaultI18nConfig: I18nConfig = {\n i18nDir: \"./src/i18n\",\n i18nFileName: \"{locale}.i18n.json\",\n position: { key: \"B\", zh: \"C\", en: \"D\", in: \"E\" },\n parseStartIndex: 2,\n };\n\n let config = (res.data ?? {}) as Config;\n config.cwd ??= process.cwd();\n\n //#region i18n 配置标准化\n if (!config.i18n || !config.i18n?.length) {\n config.i18n = [defaultI18nConfig];\n }\n\n // 格式化 i18n 配置\n config.i18n = config.i18n.map((item) => {\n item = Object.assign({}, defaultI18nConfig, item);\n item.cwd ??= config.cwd;\n item.locales = Object.keys(item.position!).filter((item) => item !== \"key\");\n item.sheetId = resolveSheetId(item.sheetId);\n item.keySorter = (a, b) => {\n return a.localeCompare(b);\n };\n return item;\n });\n //#endregion\n\n //#region api 配置标准化\n config.api ??= [];\n config.api = config.api.map((item) => {\n item.output ??= \"./src/apis\";\n item.requestFnImportPath ??= `import requestFn from '@/utils/request';`;\n return item;\n });\n //#endregion\n\n return config;\n}\n","/**\n * input:\n * \"https://docs.google.com/spreadsheets/d/1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk/edit#gid=1740568548\"\n * output:\n * \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n * --\n * input: \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n * output: \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n */\nimport { match } from \"path-to-regexp\";\n\nexport function resolveSheetId(str?: string) {\n if (!str || !str?.startsWith(\"http\")) {\n return str;\n }\n const url = new URL(str);\n const matched = match<{ id: string[] }>(\"/spreadsheets/d/:id*\", {\n decode: decodeURIComponent,\n })(url.pathname);\n return matched ? matched.params.id?.[0] : str;\n}\n"],"mappings":";AAAA,OAAO,YAAY;;;ACSnB,SAAS,aAAa;AAEf,SAAS,eAAe,KAAc;AAX7C;AAYE,MAAI,CAAC,OAAO,EAAC,2BAAK,WAAW,UAAS;AACpC,WAAO;AAAA,EACT;AACA,QAAM,MAAM,IAAI,IAAI,GAAG;AACvB,QAAM,UAAU,MAAwB,wBAAwB;AAAA,IAC9D,QAAQ;AAAA,EACV,CAAC,EAAE,IAAI,QAAQ;AACf,SAAO,WAAU,aAAQ,OAAO,OAAf,mBAAoB,KAAK;AAC5C;;;ADjBA,IAAM,SAAS,IAAI,OAAO;AA0FnB,SAAS,aAAyB,GAAM;AAC7C,SAAO;AACT;AAEO,IAAM,aAAa;AAE1B,eAAsB,YAA6B;AAnGnD;AAoGE,QAAM,MAAM,MAAM,OAAO,KAAK,CAAC,UAAU,CAAC;AAE1C,QAAM,oBAAgC;AAAA,IACpC,SAAS;AAAA,IACT,cAAc;AAAA,IACd,UAAU,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI;AAAA,IAChD,iBAAiB;AAAA,EACnB;AAEA,MAAI,SAAU,IAAI,QAAQ,CAAC;AAC3B,SAAO,QAAQ,QAAQ,IAAI;AAG3B,MAAI,CAAC,OAAO,QAAQ,GAAC,YAAO,SAAP,mBAAa,SAAQ;AACxC,WAAO,OAAO,CAAC,iBAAiB;AAAA,EAClC;AAGA,SAAO,OAAO,OAAO,KAAK,IAAI,CAAC,SAAS;AACtC,WAAO,OAAO,OAAO,CAAC,GAAG,mBAAmB,IAAI;AAChD,SAAK,QAAQ,OAAO;AACpB,SAAK,UAAU,OAAO,KAAK,KAAK,QAAS,EAAE,OAAO,CAACA,UAASA,UAAS,KAAK;AAC1E,SAAK,UAAU,eAAe,KAAK,OAAO;AAC1C,SAAK,YAAY,CAAC,GAAG,MAAM;AACzB,aAAO,EAAE,cAAc,CAAC;AAAA,IAC1B;AACA,WAAO;AAAA,EACT,CAAC;AAID,SAAO,QAAQ,CAAC;AAChB,SAAO,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS;AACpC,SAAK,WAAW;AAChB,SAAK,wBAAwB;AAC7B,WAAO;AAAA,EACT,CAAC;AAGD,SAAO;AACT;","names":["item"]}
package/dist/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  configName,
4
4
  getConfig
5
- } from "./chunk-UPESJ46X.js";
5
+ } from "./chunk-NBMV2KMH.js";
6
6
 
7
7
  // src/commands/extract.ts
8
8
  import fs3 from "fs-extra";
@@ -774,7 +774,7 @@ async function upload() {
774
774
  }
775
775
 
776
776
  // package.json
777
- var version = "0.0.9";
777
+ var version = "0.0.11";
778
778
 
779
779
  // src/commands/interactive.ts
780
780
  import prompts from "prompts";
package/dist/index.d.ts CHANGED
@@ -77,5 +77,6 @@ interface Config {
77
77
  */
78
78
  cwd?: string;
79
79
  }
80
+ declare function defineConfig<T = Config>(c: T): T;
80
81
 
81
- export { Config };
82
+ export { Config, defineConfig };
package/dist/index.js CHANGED
@@ -1,2 +1,7 @@
1
- import "./chunk-UPESJ46X.js";
1
+ import {
2
+ defineConfig
3
+ } from "./chunk-NBMV2KMH.js";
4
+ export {
5
+ defineConfig
6
+ };
2
7
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dune2/cli",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -19,7 +19,7 @@
19
19
  "dist"
20
20
  ],
21
21
  "dependencies": {
22
- "@dune2/wasm": "0.0.7",
22
+ "@dune2/wasm": "0.0.9",
23
23
  "cac": "^6.7.14",
24
24
  "cli-table3": "^0.6.3",
25
25
  "connect": "^3.7.0",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared/config.ts","../src/shared/resolveSheetId.ts"],"sourcesContent":["import JoyCon from \"joycon\";\nimport { resolveSheetId } from \"./resolveSheetId\";\n\nconst joycon = new JoyCon();\n\nexport interface I18nConfig {\n // 语言文件存放目录,默认为项目根目录的 \"./src/i18n\"\n i18nDir?: string;\n // 语言文件名,默认为 \"{locale}.i18n.json\",其中 {locale} 会被替换为 locales 中的语言\n i18nFileName?: string;\n // 默认语言,默认为 \"zh\",影响到提出出来的文案的默认值\n defaultLocale?: string;\n /**\n * 可以是 id 或者 url,如果是 url 则会自动解析出 id\n * id: 1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\n * url: https://docs.google.com/spreadsheets/d/1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk/edit#gid=1740568548\n */\n sheetId?: string;\n // google sheets 工作表名称\n sheetRange?: string;\n /**\n * 对应 语言、i18nKey 所在的列标识符 如(A,B,C...)\n * 传入时将忽略默认的配置\n * @default {key: \"B\", zh: \"C\", en: \"D\", in: \"E\",}\n */\n position?: {\n key: string;\n [key: string]: string;\n };\n\n /**\n * 从 Google Sheets 哪一行开始解析\n * 默认从第2行开始,模板文件第一行是表头\n * @default 2\n */\n parseStartIndex?: number;\n\n /**\n * 默认是 命令运行的目录,一般是项目根目录\n * @internal\n */\n cwd?: string;\n /**\n * 支持的语言列表,从 position 中解析出来\n * @internal\n */\n locales?: string[];\n\n /**\n * 翻译key的排序\n * @internal\n */\n keySorter?: (a: string, b: string) => number;\n}\n\nexport interface ApiConfig {\n /**\n * swagger JSON 的路径 可以是 本地 可以是远程\n */\n swaggerJSONPath: string;\n /**\n * 用在生成代码里快捷连接跳转到 swagger ui\n * 必须携带 urls.primaryName 参数\n * @example http://192.168.104.10:31082/swagger/?urls.primaryName=%E5%90%8E%E5%8F%B0%E7%AE%A1%E7%90%86%E7%9B%B8%E5%85%B3API\n */\n swaggerUiUrl?: string;\n /**\n * 输出的文件夹路径\n * @default \"./src/apis\"\n */\n output?: string;\n /**\n * 配置`requestFn` 方法引入的路径,生成的代码里会用到,生成代码如下\n * 引入的名称必须是`requestFn`\n * ```ts\n * // 需要命名为 requestFn\n * import requestFn from '@/utils/request'\n * import { foo as requestFn } from '@/utils/request'\n * ```\n * @default `import requestFn from '@/utils/request'`\n */\n requestFnImportPath?: string;\n}\n\nexport interface Config {\n i18n?: I18nConfig[];\n api?: ApiConfig[];\n /**\n * 默认是 命令运行的目录,一般是项目根目录\n * @internal\n */\n cwd?: string;\n}\nexport const configName = \"dune.config.js\";\n\nexport async function getConfig(): Promise<Config> {\n const res = await joycon.load([configName]);\n\n const defaultI18nConfig: I18nConfig = {\n i18nDir: \"./src/i18n\",\n i18nFileName: \"{locale}.i18n.json\",\n position: { key: \"B\", zh: \"C\", en: \"D\", in: \"E\" },\n parseStartIndex: 2,\n };\n\n let config = (res.data ?? {}) as Config;\n config.cwd ??= process.cwd();\n\n //#region i18n 配置标准化\n if (!config.i18n || !config.i18n?.length) {\n config.i18n = [defaultI18nConfig];\n }\n\n // 格式化 i18n 配置\n config.i18n = config.i18n.map((item) => {\n item = Object.assign({}, defaultI18nConfig, item);\n item.cwd ??= config.cwd;\n item.locales = Object.keys(item.position!).filter((item) => item !== \"key\");\n item.sheetId = resolveSheetId(item.sheetId);\n item.keySorter = (a, b) => {\n return a.localeCompare(b);\n };\n return item;\n });\n //#endregion\n\n //#region api 配置标准化\n config.api ??= [];\n config.api = config.api.map((item) => {\n item.output ??= \"./src/apis\";\n item.requestFnImportPath ??= `import requestFn from '@/utils/request';`;\n return item;\n });\n //#endregion\n\n return config;\n}\n","/**\n * input:\n * \"https://docs.google.com/spreadsheets/d/1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk/edit#gid=1740568548\"\n * output:\n * \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n * --\n * input: \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n * output: \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n */\nimport { match } from \"path-to-regexp\";\n\nexport function resolveSheetId(str?: string) {\n if (!str || !str?.startsWith(\"http\")) {\n return str;\n }\n const url = new URL(str);\n const matched = match<{ id: string[] }>(\"/spreadsheets/d/:id*\", {\n decode: decodeURIComponent,\n })(url.pathname);\n return matched ? matched.params.id?.[0] : str;\n}\n"],"mappings":";AAAA,OAAO,YAAY;;;ACSnB,SAAS,aAAa;AAEf,SAAS,eAAe,KAAc;AAX7C;AAYE,MAAI,CAAC,OAAO,EAAC,2BAAK,WAAW,UAAS;AACpC,WAAO;AAAA,EACT;AACA,QAAM,MAAM,IAAI,IAAI,GAAG;AACvB,QAAM,UAAU,MAAwB,wBAAwB;AAAA,IAC9D,QAAQ;AAAA,EACV,CAAC,EAAE,IAAI,QAAQ;AACf,SAAO,WAAU,aAAQ,OAAO,OAAf,mBAAoB,KAAK;AAC5C;;;ADjBA,IAAM,SAAS,IAAI,OAAO;AA0FnB,IAAM,aAAa;AAE1B,eAAsB,YAA6B;AA/FnD;AAgGE,QAAM,MAAM,MAAM,OAAO,KAAK,CAAC,UAAU,CAAC;AAE1C,QAAM,oBAAgC;AAAA,IACpC,SAAS;AAAA,IACT,cAAc;AAAA,IACd,UAAU,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI;AAAA,IAChD,iBAAiB;AAAA,EACnB;AAEA,MAAI,SAAU,IAAI,QAAQ,CAAC;AAC3B,SAAO,QAAQ,QAAQ,IAAI;AAG3B,MAAI,CAAC,OAAO,QAAQ,GAAC,YAAO,SAAP,mBAAa,SAAQ;AACxC,WAAO,OAAO,CAAC,iBAAiB;AAAA,EAClC;AAGA,SAAO,OAAO,OAAO,KAAK,IAAI,CAAC,SAAS;AACtC,WAAO,OAAO,OAAO,CAAC,GAAG,mBAAmB,IAAI;AAChD,SAAK,QAAQ,OAAO;AACpB,SAAK,UAAU,OAAO,KAAK,KAAK,QAAS,EAAE,OAAO,CAACA,UAASA,UAAS,KAAK;AAC1E,SAAK,UAAU,eAAe,KAAK,OAAO;AAC1C,SAAK,YAAY,CAAC,GAAG,MAAM;AACzB,aAAO,EAAE,cAAc,CAAC;AAAA,IAC1B;AACA,WAAO;AAAA,EACT,CAAC;AAID,SAAO,QAAQ,CAAC;AAChB,SAAO,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS;AACpC,SAAK,WAAW;AAChB,SAAK,wBAAwB;AAC7B,WAAO;AAAA,EACT,CAAC;AAGD,SAAO;AACT;","names":["item"]}