fs-target-file 1.0.25 → 1.0.26
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 +10 -0
- package/index.d.ts +1 -1
- package/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
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.26](https://github.com/bluelovers/ws-iconv/compare/fs-target-file@1.0.25...fs-target-file@1.0.26) (2026-03-02)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### 📚 Documentation
|
|
11
|
+
|
|
12
|
+
* 為檔案系統相關套件新增雙語 JSDoc 註解與型別標註 ([83f3845](https://github.com/bluelovers/ws-iconv/commit/83f38456ccc0f5eca4f2a6505bee4caf7e634ba6))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
6
16
|
## [1.0.25](https://github.com/bluelovers/ws-iconv/compare/fs-target-file@1.0.24...fs-target-file@1.0.25) (2026-03-02)
|
|
7
17
|
|
|
8
18
|
|
package/index.d.ts
CHANGED
|
@@ -41,7 +41,7 @@ export interface IFileMethodAsyncOptions<RO = ReadOptions, WO = WriteOptions, D
|
|
|
41
41
|
* @returns {object} 包含 read 和 write 方法的物件
|
|
42
42
|
*/
|
|
43
43
|
export declare function fsFileMethodAsync<RO = ReadOptions, WO = WriteOptions, D = unknown, N = string>(options?: IFileMethodAsyncOptions<RO, WO, D, N>): {
|
|
44
|
-
read: ((file:
|
|
44
|
+
read: (<T = D>(file: N, options?: RO) => Promise<T>) | ((file: any, options: any) => Promise<any>);
|
|
45
45
|
write: <T = D>(file: N, data: ITSResolvable<T>, options?: RO) => Promise<any>;
|
|
46
46
|
};
|
|
47
47
|
/**
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AA0CH,8CA4BC;AA0BD,kDAuBC;AAeD,oCA8DC;AAlMD,uCAA2E;AA4B3E;;;;;;;;;;;GAWG;AACH,SAAgB,iBAAiB,CAA+D,OAA+C;IAE9I,SAAS;IACT,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,SAAS;IACT,MAAM,EACL,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,mBAAQ,EAAC,IAAI,EAAE;QACxC,GAAG,WAAW;QACd,GAAG,OAAO;KACV,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AA0CH,8CA4BC;AA0BD,kDAuBC;AAeD,oCA8DC;AAlMD,uCAA2E;AA4B3E;;;;;;;;;;;GAWG;AACH,SAAgB,iBAAiB,CAA+D,OAA+C;IAE9I,SAAS;IACT,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,SAAS;IACT,MAAM,EACL,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,mBAAQ,EAAC,IAAI,EAAE;QACxC,GAAG,WAAW;QACd,GAAG,OAAO;KACV,CAAwB,EACzB,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;AAiBD;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAa,aAAwC;;IAEvF,IAAI,SAAY,CAAC;IACjB,IAAI,UAAa,CAAC;IAElB,YAAY;IACZ,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;;;;;;;;;;;;GAYG;AACH,SAAgB,YAAY,CAA+D,aAAwC,EAAE,OAA+C;IAEnL,YAAY;IACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAe,OAAO,CAAC,CAAC;IAEjE,YAAY;IACZ,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAErE,YAAY;IACZ,MAAM,MAAM,GAAG;QAEd,aAAa;QACb,IAAI,SAAS;YAEZ,OAAO,SAAS,CAAA;QACjB,CAAC;QAED,aAAa;QACb,IAAI,UAAU;YAEb,OAAO,UAAU,CAAA;QAClB,CAAC;QAED;;;;;;WAMG;QACH,IAAI,CAAQ,OAAY;YAEvB,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAChC,CAAC;QAED;;;;;;;WAOG;QACH,KAAK,CAAkB,IAAO,EAAE,OAAY;YAE3C,OAAO,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACxC,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,KAAK;YAEV,OAAO,MAAM,CAAA;QACd,CAAC;KAED,CAAC;IAEF,OAAO,MAAM,CAAA;AAEd,CAAC;AAED,sBAAsB;AACtB,kBAAe,YAAY,CAAA","sourcesContent":["/**\n * fs-target-file - 檔案目標處理工具\n *\n * 這個模組提供了檔案目標處理的功能,支援讀取和寫入操作,並可以指定輸入和輸出檔案。\n *\n * @module fs-target-file\n * @author bluelovers\n */\n\nimport { outputJSON, readJSON, ReadOptions, WriteOptions } from 'fs-extra';\nimport { ITSResolvable } from 'ts-type/lib/generic';\nimport { ITSRequiredPick } from 'ts-type/lib/type/record';\n\n/**\n * 檔案方法異步選項\n *\n * @interface IFileMethodAsyncOptions\n * @template RO 讀取選項類型\n * @template WO 寫入選項類型\n * @template D 資料類型\n * @template N 檔案路徑類型\n */\nexport interface IFileMethodAsyncOptions<RO = ReadOptions, WO = WriteOptions, D = unknown, N = string>\n{\n\t/** 讀取函數 */\n\tread?<T = D>(file: N, options?: RO): Promise<T>,\n\n\t/** 寫入函數 */\n\twrite?<T = D>(file: N, data: ITSResolvable<T>, options?: RO): Promise<any>,\n\n\t/** 讀取選項 */\n\treadOptions?: RO,\n\n\t/** 寫入選項 */\n\twriteOptions?: WO,\n}\n\n/**\n * 檔案方法異步處理\n *\n * 這個函數會處理檔案的異步讀取和寫入操作,支援自定義函數和選項。\n *\n * @template RO 讀取選項類型\n * @template WO 寫入選項類型\n * @template D 資料類型\n * @template N 檔案路徑類型\n * @param {IFileMethodAsyncOptions<RO, WO, D, N>} [options] 選項\n * @returns {object} 包含 read 和 write 方法的物件\n */\nexport function fsFileMethodAsync<RO = ReadOptions, WO = WriteOptions, D = unknown, N = string>(options?: IFileMethodAsyncOptions<RO, WO, D, N>)\n{\n\t// 設置預設選項\n\toptions ??= {};\n\n\tconst {\n\t\treadOptions,\n\t\twriteOptions = {\n\t\t\tspaces: 2,\n\t\t},\n\t} = options;\n\n\t// 設置預設函數\n\tconst {\n\t\tread = (file, options) => readJSON(file, {\n\t\t\t...readOptions,\n\t\t\t...options,\n\t\t}) as any as Promise<any>,\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\n/**\n * 檔案目標選項\n *\n * @interface ITargetFileOptions\n * @template N 檔案路徑類型\n */\nexport interface ITargetFileOptions<N = string>\n{\n\t/** 輸入檔案路徑 */\n\tinputFile: N,\n\n\t/** 輸出檔案路徑 */\n\toutputFile?: N,\n}\n\n/**\n * 轉換檔案目標選項\n *\n * 這個函數會將目標選項轉換為標準格式,支援直接傳入檔案路徑或選項物件。\n *\n * @template N 檔案路徑類型\n * @param {N | ITargetFileOptions<N>} targetOptions 目標選項\n * @returns {ITSRequiredPick<ITargetFileOptions<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// 檢查是否為選項物件\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\n/**\n * 檔案目標處理\n *\n * 這個函數會創建一個檔案目標處理器,支援讀取和寫入操作,並可以指定輸入和輸出檔案。\n *\n * @template D 資料類型\n * @template RO 讀取選項類型\n * @template WO 寫入選項類型\n * @template N 檔案路徑類型\n * @param {N | ITargetFileOptions<N>} targetOptions 目標選項\n * @param {IFileMethodAsyncOptions<RO, WO, D, N>} [options] 選項\n * @returns {object} 檔案目標處理器\n */\nexport function fsTargetFile<D = unknown, RO = ReadOptions, WO = WriteOptions, N = string>(targetOptions: N | ITargetFileOptions<N>, options?: IFileMethodAsyncOptions<RO, WO, D, N>)\n{\n\t// 獲取讀取和寫入方法\n\tconst { read, write } = fsFileMethodAsync<RO, WO, D, N>(options);\n\n\t// 獲取標準化後的選項\n\tconst { inputFile, outputFile } = toTargetFileOptions(targetOptions);\n\n\t// 創建檔案目標處理器\n\tconst target = {\n\n\t\t/** 輸入檔案路徑 */\n\t\tget inputFile()\n\t\t{\n\t\t\treturn inputFile\n\t\t},\n\n\t\t/** 輸出檔案路徑 */\n\t\tget outputFile()\n\t\t{\n\t\t\treturn outputFile\n\t\t},\n\n\t\t/**\n\t\t * 讀取檔案\n\t\t *\n\t\t * @template T 資料類型\n\t\t * @param {RO} [options] 選項\n\t\t * @returns {Promise<T>} Promise,解析為資料\n\t\t */\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\t/**\n\t\t * 寫入檔案\n\t\t *\n\t\t * @template T 資料類型\n\t\t * @param {T} data 資料\n\t\t * @param {RO} [options] 選項\n\t\t * @returns {Promise<unknown>} Promise\n\t\t */\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\t/**\n\t\t * 異步處理\n\t\t *\n\t\t * @returns {Promise<object>} Promise,解析為檔案目標處理器\n\t\t */\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\n/** 預設導出 - 檔案目標處理函數 */\nexport default fsTargetFile\n\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fs-target-file",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.26",
|
|
4
4
|
"description": "",
|
|
5
5
|
"homepage": "https://github.com/bluelovers/ws-iconv/tree/master/packages/fs-target-file#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/fs-extra": "^11"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "6c690c4123ff9db0f807fbc9a05f509a832aee69"
|
|
44
44
|
}
|