fs-target-file 1.0.22 → 1.0.24

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,29 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.0.24](https://github.com/bluelovers/ws-iconv/compare/fs-target-file@1.0.23...fs-target-file@1.0.24) (2026-03-01)
7
+
8
+ **Note:** Version bump only for package fs-target-file
9
+
10
+
11
+
12
+
13
+
14
+ ## [1.0.23](https://github.com/bluelovers/ws-iconv/compare/fs-target-file@1.0.22...fs-target-file@1.0.23) (2026-03-01)
15
+
16
+
17
+
18
+ ### 📚 Documentation
19
+
20
+ * 为多个包添加双语 README 和 JSDoc 注释 ([71544eb](https://github.com/bluelovers/ws-iconv/commit/71544eb1347aa061cb4ac71afc8d30e79f1ad3ad))
21
+
22
+
23
+ ### ♻️ Chores
24
+
25
+ * Update jest config and add new files for testing ([f370583](https://github.com/bluelovers/ws-iconv/commit/f37058385c7bf24d3d0bc975c752f2f35cfe8356))
26
+
27
+
28
+
6
29
  ## [1.0.22](https://github.com/bluelovers/ws-iconv/compare/fs-target-file@1.0.21...fs-target-file@1.0.22) (2024-08-29)
7
30
 
8
31
 
package/README.md CHANGED
@@ -1,8 +1,16 @@
1
- # README.md
1
+ # fs-target-file - 檔案目標處理工具
2
2
 
3
+ 這個模組提供了檔案目標處理的功能,支援讀取和寫入操作,並可以指定輸入和輸出檔案。
3
4
 
5
+ ## 主要功能
4
6
 
5
- ## install
7
+ - 檔案目標處理
8
+ - 讀取和寫入操作
9
+ - 支援 JSON 檔案
10
+ - 輸入和輸出檔案指定
11
+ - 異步處理
12
+
13
+ ## 安裝
6
14
 
7
15
  ```bash
8
16
  yarn add fs-target-file
@@ -10,3 +18,5 @@ yarn-tool add fs-target-file
10
18
  yt add fs-target-file
11
19
  ```
12
20
 
21
+ ## 快速開始
22
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fs-target-file",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/bluelovers/ws-iconv/tree/master/packages/fs-target-file#readme",
6
6
  "bugs": {
@@ -15,9 +15,11 @@
15
15
  "author": "bluelovers",
16
16
  "main": "index.js",
17
17
  "scripts": {
18
+ "coverage": "yarn run test -- --coverage",
18
19
  "lint": "ynpx --quiet eslint -- **/*.ts",
19
20
  "test": "echo \"Error: no test specified\"",
20
21
  "test:jest": "ynpx --quiet jest -- --coverage --passWithNoTests",
22
+ "test:jest:coverage": "yarn run test:jest -- --coverage",
21
23
  "test:jest:snapshot": "yarn run test:jest -- -u",
22
24
  "test:mocha": "ynpx --quiet -p ts-node -p mocha mocha -- --require ts-node/register \"!(node_modules)/**/*.{test,spec}.{ts,tsx}\"",
23
25
  "test:snapshot": "yarn run test -- -u",
@@ -27,7 +29,8 @@
27
29
  "prepublishOnly:check-bin": "ynpx --quiet @yarn-tool/check-pkg-bin",
28
30
  "prepublishOnly:update": "yarn run ncu && yarn run sort-package-json",
29
31
  "ncu": "yarn-tool ncu -u",
30
- "sort-package-json": "yarn-tool sort"
32
+ "sort-package-json": "yarn-tool sort",
33
+ "tsc:showConfig": "ynpx get-current-tsconfig -p"
31
34
  },
32
35
  "dependencies": {
33
36
  "fs-extra": "^11.2.0",
@@ -37,5 +40,5 @@
37
40
  "devDependencies": {
38
41
  "@types/fs-extra": "^11"
39
42
  },
40
- "gitHead": "43bcf89adcf481e321b509f7510de10206e8030a"
43
+ "gitHead": "6bcfe6a585ad7e5657a40a5b0727c6281b564b60"
41
44
  }
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAaA,8CA0BC;AAQD,kDAsBC;AAED,oCAqCC;AA5GD,uCAA2E;AAa3E,SAAgB,iBAAiB,CAA+D,OAA+C;IAE9I,OAAO,aAAP,OAAO,cAAP,OAAO,IAAP,OAAO,GAAK,EAAE,EAAC;IAEf,MAAM,EACL,WAAW,EACX,YAAY,GAAG;QACd,MAAM,EAAE,CAAC;KACT,GACD,GAAG,OAAO,CAAC;IAEZ,MAAM,EACL,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,mBAAQ,EAAC,IAAI,EAAE;QACxC,GAAG,WAAW;QACd,GAAG,OAAO;KACV,CAAC,EACF,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,qBAAU,EAAC,IAAI,EAAE,IAAI,EAAE;QACvD,GAAG,YAAY;QACf,GAAG,OAAO;KACV,CAAC,GACF,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IAElB,OAAO;QACN,IAAI;QACJ,KAAK;KACL,CAAA;AACF,CAAC;AAQD,SAAgB,mBAAmB,CAAa,aAAwC;;IAEvF,IAAI,SAAY,CAAC;IACjB,IAAI,UAAa,CAAC;IAElB,aAAa;IACb,IAAI,OAAO,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,CAAA,KAAK,WAAW,EACnD,CAAC;QACA,aAAa;QACb,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;QACpC,aAAa;QACb,UAAU,GAAG,MAAA,aAAa,CAAC,UAAU,mCAAI,SAAS,CAAC;IACpD,CAAC;SAED,CAAC;QACA,SAAS,GAAG,UAAU,GAAG,aAAkB,CAAC;IAC7C,CAAC;IAED,OAAO;QACN,SAAS;QACT,UAAU;KACV,CAAA;AACF,CAAC;AAED,SAAgB,YAAY,CAA+D,aAAwC,EAAE,OAA+C;IAEnL,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAe,OAAO,CAAC,CAAC;IAEjE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG;QAEd,IAAI,SAAS;YAEZ,OAAO,SAAS,CAAA;QACjB,CAAC;QAED,IAAI,UAAU;YAEb,OAAO,UAAU,CAAA;QAClB,CAAC;QAED,IAAI,CAAQ,OAAY;YAEvB,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAChC,CAAC;QAED,KAAK,CAAkB,IAAO,EAAE,OAAY;YAE3C,OAAO,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACxC,CAAC;QAED,KAAK,CAAC,KAAK;YAEV,OAAO,MAAM,CAAA;QACd,CAAC;KAED,CAAC;IAEF,OAAO,MAAM,CAAA;AAEd,CAAC;AAED,kBAAe,YAAY,CAAA","sourcesContent":["import { outputJSON, readJSON, ReadOptions, WriteOptions } from 'fs-extra';\nimport { ITSResolvable } from 'ts-type/lib/generic';\nimport { ITSRequiredPick } from 'ts-type/lib/type/record';\n\nexport interface IFileMethodAsyncOptions<RO = ReadOptions, WO = WriteOptions, D = unknown, N = string>\n{\n\tread?<T = D>(file: N, options?: RO): Promise<T>,\n\twrite?<T = D>(file: N, data: ITSResolvable<T>, options?: RO): Promise<any>,\n\n\treadOptions?: RO,\n\twriteOptions?: WO,\n}\n\nexport function fsFileMethodAsync<RO = ReadOptions, WO = WriteOptions, D = unknown, N = string>(options?: IFileMethodAsyncOptions<RO, WO, D, N>)\n{\n\toptions ??= {};\n\n\tconst {\n\t\treadOptions,\n\t\twriteOptions = {\n\t\t\tspaces: 2,\n\t\t},\n\t} = options;\n\n\tconst {\n\t\tread = (file, options) => readJSON(file, {\n\t\t\t...readOptions,\n\t\t\t...options,\n\t\t}),\n\t\twrite = (file, data, options) => outputJSON(file, data, {\n\t\t\t...writeOptions,\n\t\t\t...options,\n\t\t}),\n\t} = options ?? {};\n\n\treturn {\n\t\tread,\n\t\twrite,\n\t}\n}\n\nexport interface ITargetFileOptions<N = string>\n{\n\tinputFile: N,\n\toutputFile?: N,\n}\n\nexport function toTargetFileOptions<N = string>(targetOptions: N | ITargetFileOptions<N>): ITSRequiredPick<ITargetFileOptions<N>>\n{\n\tlet inputFile: N;\n\tlet outputFile: N;\n\n\t// @ts-ignore\n\tif (typeof targetOptions?.inputFile !== 'undefined')\n\t{\n\t\t// @ts-ignore\n\t\tinputFile = targetOptions.inputFile;\n\t\t// @ts-ignore\n\t\toutputFile = targetOptions.outputFile ?? inputFile;\n\t}\n\telse\n\t{\n\t\tinputFile = outputFile = targetOptions as N;\n\t}\n\n\treturn {\n\t\tinputFile,\n\t\toutputFile,\n\t}\n}\n\nexport function fsTargetFile<D = unknown, RO = ReadOptions, WO = WriteOptions, N = string>(targetOptions: N | ITargetFileOptions<N>, options?: IFileMethodAsyncOptions<RO, WO, D, N>)\n{\n\tconst { read, write } = fsFileMethodAsync<RO, WO, D, N>(options);\n\n\tconst { inputFile, outputFile } = toTargetFileOptions(targetOptions);\n\n\tconst target = {\n\n\t\tget inputFile()\n\t\t{\n\t\t\treturn inputFile\n\t\t},\n\n\t\tget outputFile()\n\t\t{\n\t\t\treturn outputFile\n\t\t},\n\n\t\tread<T = D>(options?: RO): Promise<T>\n\t\t{\n\t\t\treturn read(inputFile, options)\n\t\t},\n\n\t\twrite<T extends D = D>(data: T, options?: RO): Promise<unknown>\n\t\t{\n\t\t\treturn write(outputFile, data, options)\n\t\t},\n\n\t\tasync async()\n\t\t{\n\t\t\treturn target\n\t\t}\n\n\t};\n\n\treturn target\n\n}\n\nexport default fsTargetFile\n"]}