@alwatr/node-fs 1.0.3 → 1.0.4

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,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.4](https://github.com/Alwatr/nanolib/compare/@alwatr/node-fs@1.0.3...@alwatr/node-fs@1.0.4) (2024-01-31)
7
+
8
+ ### Bug Fixes
9
+
10
+ * exported types by add .js extensions to all imports ([fc3d83e](https://github.com/Alwatr/nanolib/commit/fc3d83e8f375da97ba276314b2e6966aa82c9b3f)) by @AliMD
11
+
12
+ ### Miscellaneous Chores
13
+
14
+ * **deps:** update ([1a45030](https://github.com/Alwatr/nanolib/commit/1a450305440b710a300787d4ca24b1ed8c6a39d7)) by @AliMD
15
+
6
16
  ## [1.0.3](https://github.com/Alwatr/nanolib/compare/@alwatr/node-fs@1.0.2...@alwatr/node-fs@1.0.3) (2024-01-24)
7
17
 
8
18
  **Note:** Version bump only for package @alwatr/node-fs
@@ -19,25 +29,25 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
19
29
 
20
30
  ### Features
21
31
 
22
- * **node-fs:** enhance type of JSON-related functions ([69751ed](https://github.com/Alwatr/nanolib/commit/69751ed658f76eb439a9834f861c01c06542352b)) by @AliMD
32
+ - **node-fs:** enhance type of JSON-related functions ([69751ed](https://github.com/Alwatr/nanolib/commit/69751ed658f76eb439a9834f861c01c06542352b)) by @AliMD
23
33
 
24
34
  # 1.0.0-beta.0 (2024-01-08)
25
35
 
26
36
  ### Bug Fixes
27
37
 
28
- * **node-fs:** Update import statement for make-file module ([7bddaa0](https://github.com/Alwatr/nanolib/commit/7bddaa0d629c304fedd07c4022d7503aa9b974b6)) by @AliMD
38
+ - **node-fs:** Update import statement for make-file module ([7bddaa0](https://github.com/Alwatr/nanolib/commit/7bddaa0d629c304fedd07c4022d7503aa9b974b6)) by @AliMD
29
39
 
30
40
  ### Features
31
41
 
32
- * **node-fs:** Add make-file-bench demo script ([ca3a57a](https://github.com/Alwatr/nanolib/commit/ca3a57a31de5a8b9c76c9d33cb9755809f09a335)) by @AliMD
33
- * **node-fs:** base package ([74cbe48](https://github.com/Alwatr/nanolib/commit/74cbe4821c991d1f6c3d5805b29602b922c3f505)) by @njfamirm
34
- * **node-fs:** copy from store ([5c23e01](https://github.com/Alwatr/nanolib/commit/5c23e01e42d438c15dcd272d2cc351527865c86c)) by @njfamirm
35
- * **node-fs:** definePackage and logger ([3880703](https://github.com/Alwatr/nanolib/commit/38807039895c784be6168111506b0721980cbb29)) by @njfamirm
36
- * **node-fs:** demo ([31f3740](https://github.com/Alwatr/nanolib/commit/31f37405a7bb2b4b02440de7f96f5cc8a474aba9)) by @njfamirm
37
- * **node-fs:** enhance json types ([e85d927](https://github.com/Alwatr/nanolib/commit/e85d9276374a8c5171901791a3a43acad64843a6)) by @AliMD
38
- * **node-fs:** enhance writeJson type ([9010c72](https://github.com/Alwatr/nanolib/commit/9010c723b1f34cd647f157466554b312fc84a1d3)) by @AliMD
39
- * **node-fs:** makeFile ([186ba09](https://github.com/Alwatr/nanolib/commit/186ba09822bddfe200a0ac4725063785cadd0999)) by @njfamirm
40
- * **node-fs:** readFile under asyncQueue ([ab12153](https://github.com/Alwatr/nanolib/commit/ab12153281600a4ac90ef627811b430a95140ddd)) by @AliMD
41
- * **node-fs:** rewrite new writeFile method ([7534ed1](https://github.com/Alwatr/nanolib/commit/7534ed158cdfe1ee593050255c17449960b13001)) by @AliMD
42
- * **node-fs:** writeFile under asyncQueue ([6d8b3d7](https://github.com/Alwatr/nanolib/commit/6d8b3d7953938fc954e8ce350206555030560978)) by @AliMD
43
- * **node-fs:** writeJson method ([581d4f9](https://github.com/Alwatr/nanolib/commit/581d4f958ccb262c13f23881151616b7ec5e93ee)) by @AliMD
42
+ - **node-fs:** Add make-file-bench demo script ([ca3a57a](https://github.com/Alwatr/nanolib/commit/ca3a57a31de5a8b9c76c9d33cb9755809f09a335)) by @AliMD
43
+ - **node-fs:** base package ([74cbe48](https://github.com/Alwatr/nanolib/commit/74cbe4821c991d1f6c3d5805b29602b922c3f505)) by @njfamirm
44
+ - **node-fs:** copy from store ([5c23e01](https://github.com/Alwatr/nanolib/commit/5c23e01e42d438c15dcd272d2cc351527865c86c)) by @njfamirm
45
+ - **node-fs:** definePackage and logger ([3880703](https://github.com/Alwatr/nanolib/commit/38807039895c784be6168111506b0721980cbb29)) by @njfamirm
46
+ - **node-fs:** demo ([31f3740](https://github.com/Alwatr/nanolib/commit/31f37405a7bb2b4b02440de7f96f5cc8a474aba9)) by @njfamirm
47
+ - **node-fs:** enhance json types ([e85d927](https://github.com/Alwatr/nanolib/commit/e85d9276374a8c5171901791a3a43acad64843a6)) by @AliMD
48
+ - **node-fs:** enhance writeJson type ([9010c72](https://github.com/Alwatr/nanolib/commit/9010c723b1f34cd647f157466554b312fc84a1d3)) by @AliMD
49
+ - **node-fs:** makeFile ([186ba09](https://github.com/Alwatr/nanolib/commit/186ba09822bddfe200a0ac4725063785cadd0999)) by @njfamirm
50
+ - **node-fs:** readFile under asyncQueue ([ab12153](https://github.com/Alwatr/nanolib/commit/ab12153281600a4ac90ef627811b430a95140ddd)) by @AliMD
51
+ - **node-fs:** rewrite new writeFile method ([7534ed1](https://github.com/Alwatr/nanolib/commit/7534ed158cdfe1ee593050255c17449960b13001)) by @AliMD
52
+ - **node-fs:** writeFile under asyncQueue ([6d8b3d7](https://github.com/Alwatr/nanolib/commit/6d8b3d7953938fc954e8ce350206555030560978)) by @AliMD
53
+ - **node-fs:** writeJson method ([581d4f9](https://github.com/Alwatr/nanolib/commit/581d4f958ccb262c13f23881151616b7ec5e93ee)) by @AliMD
package/dist/main.cjs CHANGED
@@ -1,3 +1,3 @@
1
- /* @alwatr/node-fs v1.0.3 */
2
- "use strict";var c=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var k=(r,e)=>{for(var i in e)c(r,i,{get:e[i],enumerable:!0})},A=(r,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of P(e))!b.call(r,a)&&a!==i&&c(r,a,{get:()=>e[a],enumerable:!(n=V(e,a))||n.enumerable});return r};var h=r=>A(c({},"__esModule",{value:!0}),r);var N={};k(N,{existsSync:()=>v.existsSync,makeEmptyFile:()=>Q,readFile:()=>u,readFileSync:()=>m,readJson:()=>j,resolve:()=>E.resolve,unlink:()=>M.unlink,writeFile:()=>y,writeFileSync:()=>g,writeJson:()=>O});module.exports=h(N);var w=require("@alwatr/async-queue"),x=require("@alwatr/logger"),o=(0,x.definePackage)("@alwatr/node-fs","1.0.3"),l=new w.AsyncQueue;var F=require("fs"),_=require("fs/promises"),f=require("@alwatr/flat-string");function m(r){o.logMethodArgs?.("readFileSync","..."+r.slice(-32));try{return(0,f.flatString)((0,F.readFileSync)(r,{encoding:"utf-8",flag:"r"}))}catch(e){throw o.error("readFileSync","read_file_failed",{path:r},e),new Error("read_file_failed",{cause:e.cause})}}function u(r){return o.logMethodArgs?.("readFile","..."+r.slice(-32)),l.push(r,async()=>{try{return(0,f.flatString)(await(0,_.readFile)(r,{encoding:"utf-8",flag:"r"}))}catch(e){throw o.error("readFile","read_file_failed",{path:r},e),new Error("read_file_failed",{cause:e.cause})}})}var t=require("fs"),s=require("fs/promises"),d=require("path");function g(r,e){o.logMethodArgs?.("writeFileSync","..."+r.slice(-32));try{let i=(0,t.existsSync)(r);if(!i){let n=(0,d.dirname)(r);(0,t.existsSync)(n)||(0,t.mkdirSync)(n,{recursive:!0})}(0,t.writeFileSync)(r+".tmp",e,{encoding:"utf-8",flag:"w"}),i&&(0,t.renameSync)(r,r+".bak"),(0,t.renameSync)(r+".tmp",r),o.logOther?.("writeFileSync success","..."+r.slice(-32))}catch(i){throw o.error("writeFileSync","write_file_failed",{path:r},i),new Error("write_file_failed",{cause:i.cause})}}function y(r,e){return o.logMethodArgs?.("writeFile","..."+r.slice(-32)),l.push(r,async()=>{try{o.logOther?.("writeFile start","..."+r.slice(-32));let i=(0,t.existsSync)(r);if(!i){let n=(0,d.dirname)(r);(0,t.existsSync)(n)||await(0,s.mkdir)(n,{recursive:!0})}await(0,s.writeFile)(r+".tmp",e,{encoding:"utf-8",flag:"w"}),i&&await(0,s.rename)(r,r+".bak"),await(0,s.rename)(r+".tmp",r),o.logOther?.("writeFile success","..."+r.slice(-32))}catch(i){throw o.error("writeFile","write_file_failed",{path:r},i),new Error("write_file_failed",{cause:i.cause})}})}function p(r){try{return JSON.parse(r)}catch(e){throw o.error("parseJson","invalid_json",e),new Error("invalid_json",{cause:e.cause})}}function J(r){try{return JSON.stringify(r)}catch(e){throw o.error("jsonStringify","stringify_failed",e),new Error("stringify_failed",{cause:e.cause})}}function j(r,e=!1){return o.logMethodArgs?.("readJson",{path:r.slice(-32),sync:e}),e===!0?p(m(r)):u(r).then(i=>p(i))}var S=require("@alwatr/flat-string");function O(r,e,i=!1){o.logMethodArgs?.("writeJson","..."+r.slice(-32));let n=(0,S.flatString)(J(e));return i===!0?g(r,n):y(r,n)}var T=require("fs/promises");async function Q(r){return o.logMethodArgs?.("makeEmptyFile","..."+r.slice(-32)),(await(0,T.open)(r,"w")).close()}var E=require("path"),v=require("fs"),M=require("fs/promises");0&&(module.exports={existsSync,makeEmptyFile,readFile,readFileSync,readJson,resolve,unlink,writeFile,writeFileSync,writeJson});
1
+ /* @alwatr/node-fs v1.0.4 */
2
+ "use strict";var c=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var k=(r,e)=>{for(var i in e)c(r,i,{get:e[i],enumerable:!0})},A=(r,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of P(e))!b.call(r,a)&&a!==i&&c(r,a,{get:()=>e[a],enumerable:!(n=V(e,a))||n.enumerable});return r};var h=r=>A(c({},"__esModule",{value:!0}),r);var N={};k(N,{existsSync:()=>v.existsSync,makeEmptyFile:()=>Q,readFile:()=>u,readFileSync:()=>m,readJson:()=>j,resolve:()=>E.resolve,unlink:()=>M.unlink,writeFile:()=>y,writeFileSync:()=>g,writeJson:()=>O});module.exports=h(N);var w=require("@alwatr/async-queue"),x=require("@alwatr/logger"),o=(0,x.definePackage)("@alwatr/node-fs","1.0.4"),l=new w.AsyncQueue;var F=require("fs"),_=require("fs/promises"),f=require("@alwatr/flat-string");function m(r){o.logMethodArgs?.("readFileSync","..."+r.slice(-32));try{return(0,f.flatString)((0,F.readFileSync)(r,{encoding:"utf-8",flag:"r"}))}catch(e){throw o.error("readFileSync","read_file_failed",{path:r},e),new Error("read_file_failed",{cause:e.cause})}}function u(r){return o.logMethodArgs?.("readFile","..."+r.slice(-32)),l.push(r,async()=>{try{return(0,f.flatString)(await(0,_.readFile)(r,{encoding:"utf-8",flag:"r"}))}catch(e){throw o.error("readFile","read_file_failed",{path:r},e),new Error("read_file_failed",{cause:e.cause})}})}var t=require("fs"),s=require("fs/promises"),d=require("path");function g(r,e){o.logMethodArgs?.("writeFileSync","..."+r.slice(-32));try{let i=(0,t.existsSync)(r);if(!i){let n=(0,d.dirname)(r);(0,t.existsSync)(n)||(0,t.mkdirSync)(n,{recursive:!0})}(0,t.writeFileSync)(r+".tmp",e,{encoding:"utf-8",flag:"w"}),i&&(0,t.renameSync)(r,r+".bak"),(0,t.renameSync)(r+".tmp",r),o.logOther?.("writeFileSync success","..."+r.slice(-32))}catch(i){throw o.error("writeFileSync","write_file_failed",{path:r},i),new Error("write_file_failed",{cause:i.cause})}}function y(r,e){return o.logMethodArgs?.("writeFile","..."+r.slice(-32)),l.push(r,async()=>{try{o.logOther?.("writeFile start","..."+r.slice(-32));let i=(0,t.existsSync)(r);if(!i){let n=(0,d.dirname)(r);(0,t.existsSync)(n)||await(0,s.mkdir)(n,{recursive:!0})}await(0,s.writeFile)(r+".tmp",e,{encoding:"utf-8",flag:"w"}),i&&await(0,s.rename)(r,r+".bak"),await(0,s.rename)(r+".tmp",r),o.logOther?.("writeFile success","..."+r.slice(-32))}catch(i){throw o.error("writeFile","write_file_failed",{path:r},i),new Error("write_file_failed",{cause:i.cause})}})}function p(r){try{return JSON.parse(r)}catch(e){throw o.error("parseJson","invalid_json",e),new Error("invalid_json",{cause:e.cause})}}function J(r){try{return JSON.stringify(r)}catch(e){throw o.error("jsonStringify","stringify_failed",e),new Error("stringify_failed",{cause:e.cause})}}function j(r,e=!1){return o.logMethodArgs?.("readJson",{path:r.slice(-32),sync:e}),e===!0?p(m(r)):u(r).then(i=>p(i))}var S=require("@alwatr/flat-string");function O(r,e,i=!1){o.logMethodArgs?.("writeJson","..."+r.slice(-32));let n=(0,S.flatString)(J(e));return i===!0?g(r,n):y(r,n)}var T=require("fs/promises");async function Q(r){return o.logMethodArgs?.("makeEmptyFile","..."+r.slice(-32)),(await(0,T.open)(r,"w")).close()}var E=require("path"),v=require("fs"),M=require("fs/promises");0&&(module.exports={existsSync,makeEmptyFile,readFile,readFileSync,readJson,resolve,unlink,writeFile,writeFileSync,writeJson});
3
3
  //# sourceMappingURL=main.cjs.map
package/dist/main.cjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/main.ts", "../src/common.ts", "../src/read-file.ts", "../src/write-file.ts", "../src/json.ts", "../src/read-json.ts", "../src/write-json.ts", "../src/make-file.ts"],
4
- "sourcesContent": ["export * from './read-file';\nexport * from './write-file';\nexport * from './read-json';\nexport * from './write-json';\nexport * from './make-file';\n\nexport {resolve} from 'node:path';\nexport {existsSync} from 'node:fs';\nexport {unlink} from 'node:fs/promises';\n", "import {AsyncQueue} from '@alwatr/async-queue';\nimport {definePackage} from '@alwatr/logger';\n\nimport type {} from '@alwatr/nano-build';\n\nexport const logger = definePackage('@alwatr/node-fs', __package_version__);\n\nexport const asyncQueue = new AsyncQueue();\n", "import {readFileSync as readFileSync_} from 'node:fs';\nimport {readFile as readFile_} from 'node:fs/promises';\n\nimport {flatString} from '@alwatr/flat-string';\n\nimport {asyncQueue, logger} from './common';\n\n/**\n * Enhanced read File (Synchronous).\n *\n * @param path - file path\n * @returns file content\n * @example\n * ```typescript\n * const fileContent = readFileSync('./file.txt', sync);\n * ```\n */\nexport function readFileSync(path: string): string {\n logger.logMethodArgs?.('readFileSync', '...' + path.slice(-32));\n // if (!existsSync(path)) throw new Error('file_not_found');\n try {\n return flatString(readFileSync_(path, {encoding: 'utf-8', flag: 'r'}));\n }\n catch (err) {\n logger.error('readFileSync', 'read_file_failed', {path}, err);\n throw new Error('read_file_failed', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Enhanced read File (Asynchronous).\n *\n * - If writing queue is running for target path, it will wait for it to finish.\n *\n * @param path - file path\n * @returns file content\n * @example\n * ```typescript\n * const fileContent = await readFile('./file.txt', sync);\n * ```\n */\nexport function readFile(path: string): Promise<string> {\n logger.logMethodArgs?.('readFile', '...' + path.slice(-32));\n // if (!existsSync(path)) throw new Error('file_not_found');\n return asyncQueue.push(path, async () => {\n try {\n return flatString(await readFile_(path, {encoding: 'utf-8', flag: 'r'}));\n }\n catch (err) {\n logger.error('readFile', 'read_file_failed', {path}, err);\n throw new Error('read_file_failed', {cause: (err as Error).cause});\n }\n });\n}\n", "import {writeFileSync as writeFileSync_, existsSync, mkdirSync, renameSync} from 'node:fs';\nimport {mkdir, rename, writeFile as writeFile_} from 'node:fs/promises';\nimport {dirname} from 'node:path';\n\nimport {asyncQueue, logger} from './common';\n\n/**\n * Enhanced write file (Synchronous).\n *\n * - If directory not exists, create it recursively.\n * - Write file to `path.tmp` before write success.\n * - If file exists, renamed (keep) to `path.bak`.\n * - If write failed, original file will not be changed.\n *\n * @param path - file path\n * @param content - file content\n * @example\n * ```typescript\n * writeFileSync('./file.txt', 'Hello World!');\n * ```\n */\nexport function writeFileSync(path: string, content: string): void {\n logger.logMethodArgs?.('writeFileSync', '...' + path.slice(-32));\n try {\n const pathExists = existsSync(path);\n if (!pathExists) {\n const dir = dirname(path);\n if (!existsSync(dir)) {\n mkdirSync(dir, {recursive: true});\n }\n }\n writeFileSync_(path + '.tmp', content, {encoding: 'utf-8', flag: 'w'});\n if (pathExists) {\n renameSync(path, path + '.bak');\n }\n renameSync(path + '.tmp', path);\n logger.logOther?.('writeFileSync success', '...' + path.slice(-32));\n }\n catch (err) {\n logger.error('writeFileSync', 'write_file_failed', {path}, err);\n throw new Error('write_file_failed', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Enhanced write file (Asynchronous).\n *\n * - If directory not exists, create it recursively.\n * - Write file to `path.tmp` before write success.\n * - If file exists, renamed (keep) to `path.bak`.\n * - If write failed, original file will not be changed.\n *\n * @param path - file path\n * @param content - file content\n * @example\n * ```typescript\n * await writeFile('./file.txt', 'Hello World!');\n * ```\n */\nexport function writeFile(path: string, content: string): Promise<void> {\n logger.logMethodArgs?.('writeFile', '...' + path.slice(-32));\n return asyncQueue.push(path, async () => {\n try {\n logger.logOther?.('writeFile start', '...' + path.slice(-32));\n const pathExists = existsSync(path);\n if (!pathExists) {\n const dir = dirname(path);\n if (!existsSync(dir)) {\n await mkdir(dir, {recursive: true});\n }\n }\n await writeFile_(path + '.tmp', content, {encoding: 'utf-8', flag: 'w'});\n if (pathExists) {\n await rename(path, path + '.bak');\n }\n await rename(path + '.tmp', path);\n logger.logOther?.('writeFile success', '...' + path.slice(-32));\n }\n catch (err) {\n logger.error('writeFile', 'write_file_failed', {path}, err);\n throw new Error('write_file_failed', {cause: (err as Error).cause});\n }\n });\n}\n", "import {logger} from './common';\n\nimport type {JsonValue} from '@alwatr/type-helper';\n\n/**\n * Parse json string.\n *\n * @param content - json string\n * @returns json object\n * @example\n * ```typescript\n * const json = parseJson('{\"a\":1,\"b\":2}');\n * console.log(json.a); // 1\n * ```\n */\nexport function parseJson<T extends JsonValue>(content: string): T {\n try {\n return JSON.parse(content);\n }\n catch (err) {\n logger.error('parseJson', 'invalid_json', err);\n throw new Error('invalid_json', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Stringify json object.\n *\n * @param data - json object\n * @returns json string\n * @example\n * ```typescript\n * const json = jsonStringify({a:1, b:2});\n * console.log(json); // '{\"a\":1,\"b\":2}'\n * ```\n */\nexport function jsonStringify<T extends JsonValue>(data: T): string {\n try {\n return JSON.stringify(data);\n }\n catch (err) {\n logger.error('jsonStringify', 'stringify_failed', err);\n throw new Error('stringify_failed', {cause: (err as Error).cause});\n }\n}\n", "import {logger} from './common';\nimport {parseJson} from './json';\nimport {readFile, readFileSync} from './read-file';\n\nimport type {JsonValue, MaybePromise} from '@alwatr/type-helper';\n\n/**\n * Enhanced read json file (async).\n *\n * @param path - file path\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json');\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string): Promise<T>;\n/**\n * Enhanced read json file (sync).\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = readJson('./file.json', true);\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync: true): T;\n/**\n * Enhanced read json file.\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json', sync);\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync: boolean): MaybePromise<T>;\n/**\n * Enhanced read json file.\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json');\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync = false): MaybePromise<T> {\n logger.logMethodArgs?.('readJson', {path: path.slice(-32), sync});\n if (sync === true) {\n return parseJson<T>(readFileSync(path));\n }\n else {\n return readFile(path).then((content) => parseJson<T>(content));\n }\n}\n", "import {flatString} from '@alwatr/flat-string';\n\nimport {logger} from './common';\nimport {jsonStringify} from './json';\nimport {writeFile, writeFileSync} from './write-file';\n\nimport type {JsonValue, MaybePromise} from '@alwatr/type-helper';\n\n/**\n * Enhanced write json file (Asynchronous).\n *\n * @param path - file path\n * @param data - json object\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 });\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync?: false): Promise<void>;\n/**\n * Enhanced write json file (Synchronous).\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * writeJsonFile('./file.json', { a:1, b:2, c:3 }, true);\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync: true): void;\n/**\n * Enhanced write json file.\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 }, sync);\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync: boolean): MaybePromise<void>;\n/**\n * Enhanced write json file.\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 });\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync = false): MaybePromise<void> {\n logger.logMethodArgs?.('writeJson', '...' + path.slice(-32));\n const content = flatString(jsonStringify(data));\n return sync === true ? writeFileSync(path, content) : writeFile(path, content);\n}\n", "import {open} from 'node:fs/promises';\n\nimport {logger} from './common';\n\n/**\n * Make empty file.\n *\n * @param path - file path\n *\n * @example\n * ```ts\n * await makeFile('./file.txt');\n * ```\n */\nexport async function makeEmptyFile(path: string): Promise<void> {\n logger.logMethodArgs?.('makeEmptyFile', '...' + path.slice(-32));\n return (await open(path, 'w')).close();\n}\n"],
4
+ "sourcesContent": ["export * from './read-file.js';\nexport * from './write-file.js';\nexport * from './read-json.js';\nexport * from './write-json.js';\nexport * from './make-file.js';\n\nexport {resolve} from 'node:path';\nexport {existsSync} from 'node:fs';\nexport {unlink} from 'node:fs/promises';\n", "import {AsyncQueue} from '@alwatr/async-queue';\nimport {definePackage} from '@alwatr/logger';\n\nimport type {} from '@alwatr/nano-build';\n\nexport const logger = definePackage('@alwatr/node-fs', __package_version__);\n\nexport const asyncQueue = new AsyncQueue();\n", "import {readFileSync as readFileSync_} from 'node:fs';\nimport {readFile as readFile_} from 'node:fs/promises';\n\nimport {flatString} from '@alwatr/flat-string';\n\nimport {asyncQueue, logger} from './common.js';\n\n/**\n * Enhanced read File (Synchronous).\n *\n * @param path - file path\n * @returns file content\n * @example\n * ```typescript\n * const fileContent = readFileSync('./file.txt', sync);\n * ```\n */\nexport function readFileSync(path: string): string {\n logger.logMethodArgs?.('readFileSync', '...' + path.slice(-32));\n // if (!existsSync(path)) throw new Error('file_not_found');\n try {\n return flatString(readFileSync_(path, {encoding: 'utf-8', flag: 'r'}));\n }\n catch (err) {\n logger.error('readFileSync', 'read_file_failed', {path}, err);\n throw new Error('read_file_failed', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Enhanced read File (Asynchronous).\n *\n * - If writing queue is running for target path, it will wait for it to finish.\n *\n * @param path - file path\n * @returns file content\n * @example\n * ```typescript\n * const fileContent = await readFile('./file.txt', sync);\n * ```\n */\nexport function readFile(path: string): Promise<string> {\n logger.logMethodArgs?.('readFile', '...' + path.slice(-32));\n // if (!existsSync(path)) throw new Error('file_not_found');\n return asyncQueue.push(path, async () => {\n try {\n return flatString(await readFile_(path, {encoding: 'utf-8', flag: 'r'}));\n }\n catch (err) {\n logger.error('readFile', 'read_file_failed', {path}, err);\n throw new Error('read_file_failed', {cause: (err as Error).cause});\n }\n });\n}\n", "import {writeFileSync as writeFileSync_, existsSync, mkdirSync, renameSync} from 'node:fs';\nimport {mkdir, rename, writeFile as writeFile_} from 'node:fs/promises';\nimport {dirname} from 'node:path';\n\nimport {asyncQueue, logger} from './common.js';\n\n/**\n * Enhanced write file (Synchronous).\n *\n * - If directory not exists, create it recursively.\n * - Write file to `path.tmp` before write success.\n * - If file exists, renamed (keep) to `path.bak`.\n * - If write failed, original file will not be changed.\n *\n * @param path - file path\n * @param content - file content\n * @example\n * ```typescript\n * writeFileSync('./file.txt', 'Hello World!');\n * ```\n */\nexport function writeFileSync(path: string, content: string): void {\n logger.logMethodArgs?.('writeFileSync', '...' + path.slice(-32));\n try {\n const pathExists = existsSync(path);\n if (!pathExists) {\n const dir = dirname(path);\n if (!existsSync(dir)) {\n mkdirSync(dir, {recursive: true});\n }\n }\n writeFileSync_(path + '.tmp', content, {encoding: 'utf-8', flag: 'w'});\n if (pathExists) {\n renameSync(path, path + '.bak');\n }\n renameSync(path + '.tmp', path);\n logger.logOther?.('writeFileSync success', '...' + path.slice(-32));\n }\n catch (err) {\n logger.error('writeFileSync', 'write_file_failed', {path}, err);\n throw new Error('write_file_failed', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Enhanced write file (Asynchronous).\n *\n * - If directory not exists, create it recursively.\n * - Write file to `path.tmp` before write success.\n * - If file exists, renamed (keep) to `path.bak`.\n * - If write failed, original file will not be changed.\n *\n * @param path - file path\n * @param content - file content\n * @example\n * ```typescript\n * await writeFile('./file.txt', 'Hello World!');\n * ```\n */\nexport function writeFile(path: string, content: string): Promise<void> {\n logger.logMethodArgs?.('writeFile', '...' + path.slice(-32));\n return asyncQueue.push(path, async () => {\n try {\n logger.logOther?.('writeFile start', '...' + path.slice(-32));\n const pathExists = existsSync(path);\n if (!pathExists) {\n const dir = dirname(path);\n if (!existsSync(dir)) {\n await mkdir(dir, {recursive: true});\n }\n }\n await writeFile_(path + '.tmp', content, {encoding: 'utf-8', flag: 'w'});\n if (pathExists) {\n await rename(path, path + '.bak');\n }\n await rename(path + '.tmp', path);\n logger.logOther?.('writeFile success', '...' + path.slice(-32));\n }\n catch (err) {\n logger.error('writeFile', 'write_file_failed', {path}, err);\n throw new Error('write_file_failed', {cause: (err as Error).cause});\n }\n });\n}\n", "import {logger} from './common.js';\n\nimport type {JsonValue} from '@alwatr/type-helper';\n\n/**\n * Parse json string.\n *\n * @param content - json string\n * @returns json object\n * @example\n * ```typescript\n * const json = parseJson('{\"a\":1,\"b\":2}');\n * console.log(json.a); // 1\n * ```\n */\nexport function parseJson<T extends JsonValue>(content: string): T {\n try {\n return JSON.parse(content);\n }\n catch (err) {\n logger.error('parseJson', 'invalid_json', err);\n throw new Error('invalid_json', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Stringify json object.\n *\n * @param data - json object\n * @returns json string\n * @example\n * ```typescript\n * const json = jsonStringify({a:1, b:2});\n * console.log(json); // '{\"a\":1,\"b\":2}'\n * ```\n */\nexport function jsonStringify<T extends JsonValue>(data: T): string {\n try {\n return JSON.stringify(data);\n }\n catch (err) {\n logger.error('jsonStringify', 'stringify_failed', err);\n throw new Error('stringify_failed', {cause: (err as Error).cause});\n }\n}\n", "import {logger} from './common.js';\nimport {parseJson} from './json.js';\nimport {readFile, readFileSync} from './read-file.js';\n\nimport type {JsonValue, MaybePromise} from '@alwatr/type-helper';\n\n/**\n * Enhanced read json file (async).\n *\n * @param path - file path\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json');\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string): Promise<T>;\n/**\n * Enhanced read json file (sync).\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = readJson('./file.json', true);\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync: true): T;\n/**\n * Enhanced read json file.\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json', sync);\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync: boolean): MaybePromise<T>;\n/**\n * Enhanced read json file.\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json');\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync = false): MaybePromise<T> {\n logger.logMethodArgs?.('readJson', {path: path.slice(-32), sync});\n if (sync === true) {\n return parseJson<T>(readFileSync(path));\n }\n else {\n return readFile(path).then((content) => parseJson<T>(content));\n }\n}\n", "import {flatString} from '@alwatr/flat-string';\n\nimport {logger} from './common.js';\nimport {jsonStringify} from './json.js';\nimport {writeFile, writeFileSync} from './write-file.js';\n\nimport type {JsonValue, MaybePromise} from '@alwatr/type-helper';\n\n/**\n * Enhanced write json file (Asynchronous).\n *\n * @param path - file path\n * @param data - json object\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 });\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync?: false): Promise<void>;\n/**\n * Enhanced write json file (Synchronous).\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * writeJsonFile('./file.json', { a:1, b:2, c:3 }, true);\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync: true): void;\n/**\n * Enhanced write json file.\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 }, sync);\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync: boolean): MaybePromise<void>;\n/**\n * Enhanced write json file.\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 });\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync = false): MaybePromise<void> {\n logger.logMethodArgs?.('writeJson', '...' + path.slice(-32));\n const content = flatString(jsonStringify(data));\n return sync === true ? writeFileSync(path, content) : writeFile(path, content);\n}\n", "import {open} from 'node:fs/promises';\n\nimport {logger} from './common.js';\n\n/**\n * Make empty file.\n *\n * @param path - file path\n *\n * @example\n * ```ts\n * await makeFile('./file.txt');\n * ```\n */\nexport async function makeEmptyFile(path: string): Promise<void> {\n logger.logMethodArgs?.('makeEmptyFile', '...' + path.slice(-32));\n return (await open(path, 'w')).close();\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["main_exports", "__export", "makeEmptyFile", "readFile", "readFileSync", "readJson", "writeFile", "writeFileSync", "writeJson", "__toCommonJS", "import_async_queue", "import_logger", "logger", "asyncQueue", "import_node_fs", "import_promises", "import_flat_string", "readFileSync", "path", "logger", "readFileSync_", "err", "readFile", "asyncQueue", "readFile_", "import_node_fs", "import_promises", "import_node_path", "writeFileSync", "path", "content", "logger", "pathExists", "dir", "writeFileSync_", "err", "writeFile", "asyncQueue", "writeFile_", "parseJson", "content", "err", "logger", "jsonStringify", "data", "readJson", "path", "sync", "logger", "parseJson", "readFileSync", "readFile", "content", "import_flat_string", "writeJson", "path", "data", "sync", "logger", "content", "jsonStringify", "writeFileSync", "writeFile", "import_promises", "makeEmptyFile", "path", "logger", "import_node_path", "import_node_fs", "import_promises"]
7
7
  }
package/dist/main.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  /// <reference types="node" />
4
- export * from './read-file';
5
- export * from './write-file';
6
- export * from './read-json';
7
- export * from './write-json';
8
- export * from './make-file';
4
+ export * from './read-file.js';
5
+ export * from './write-file.js';
6
+ export * from './read-json.js';
7
+ export * from './write-json.js';
8
+ export * from './make-file.js';
9
9
  export { resolve } from 'node:path';
10
10
  export { existsSync } from 'node:fs';
11
11
  export { unlink } from 'node:fs/promises';
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC"}
package/dist/main.mjs CHANGED
@@ -1,3 +1,3 @@
1
- /* @alwatr/node-fs v1.0.3 */
2
- import{AsyncQueue as w}from"@alwatr/async-queue";import{definePackage as x}from"@alwatr/logger";var e=x("@alwatr/node-fs","1.0.3"),n=new w;import{readFileSync as F}from"fs";import{readFile as _}from"fs/promises";import{flatString as l}from"@alwatr/flat-string";function c(r){e.logMethodArgs?.("readFileSync","..."+r.slice(-32));try{return l(F(r,{encoding:"utf-8",flag:"r"}))}catch(o){throw e.error("readFileSync","read_file_failed",{path:r},o),new Error("read_file_failed",{cause:o.cause})}}function f(r){return e.logMethodArgs?.("readFile","..."+r.slice(-32)),n.push(r,async()=>{try{return l(await _(r,{encoding:"utf-8",flag:"r"}))}catch(o){throw e.error("readFile","read_file_failed",{path:r},o),new Error("read_file_failed",{cause:o.cause})}})}import{writeFileSync as J,existsSync as s,mkdirSync as S,renameSync as m}from"fs";import{mkdir as T,rename as u,writeFile as E}from"fs/promises";import{dirname as d}from"path";function g(r,o){e.logMethodArgs?.("writeFileSync","..."+r.slice(-32));try{let i=s(r);if(!i){let t=d(r);s(t)||S(t,{recursive:!0})}J(r+".tmp",o,{encoding:"utf-8",flag:"w"}),i&&m(r,r+".bak"),m(r+".tmp",r),e.logOther?.("writeFileSync success","..."+r.slice(-32))}catch(i){throw e.error("writeFileSync","write_file_failed",{path:r},i),new Error("write_file_failed",{cause:i.cause})}}function y(r,o){return e.logMethodArgs?.("writeFile","..."+r.slice(-32)),n.push(r,async()=>{try{e.logOther?.("writeFile start","..."+r.slice(-32));let i=s(r);if(!i){let t=d(r);s(t)||await T(t,{recursive:!0})}await E(r+".tmp",o,{encoding:"utf-8",flag:"w"}),i&&await u(r,r+".bak"),await u(r+".tmp",r),e.logOther?.("writeFile success","..."+r.slice(-32))}catch(i){throw e.error("writeFile","write_file_failed",{path:r},i),new Error("write_file_failed",{cause:i.cause})}})}function a(r){try{return JSON.parse(r)}catch(o){throw e.error("parseJson","invalid_json",o),new Error("invalid_json",{cause:o.cause})}}function p(r){try{return JSON.stringify(r)}catch(o){throw e.error("jsonStringify","stringify_failed",o),new Error("stringify_failed",{cause:o.cause})}}function K(r,o=!1){return e.logMethodArgs?.("readJson",{path:r.slice(-32),sync:o}),o===!0?a(c(r)):f(r).then(i=>a(i))}import{flatString as v}from"@alwatr/flat-string";function Y(r,o,i=!1){e.logMethodArgs?.("writeJson","..."+r.slice(-32));let t=v(p(o));return i===!0?g(r,t):y(r,t)}import{open as M}from"fs/promises";async function er(r){return e.logMethodArgs?.("makeEmptyFile","..."+r.slice(-32)),(await M(r,"w")).close()}import{resolve as fr}from"path";import{existsSync as ur}from"fs";import{unlink as gr}from"fs/promises";export{ur as existsSync,er as makeEmptyFile,f as readFile,c as readFileSync,K as readJson,fr as resolve,gr as unlink,y as writeFile,g as writeFileSync,Y as writeJson};
1
+ /* @alwatr/node-fs v1.0.4 */
2
+ import{AsyncQueue as w}from"@alwatr/async-queue";import{definePackage as x}from"@alwatr/logger";var e=x("@alwatr/node-fs","1.0.4"),n=new w;import{readFileSync as F}from"fs";import{readFile as _}from"fs/promises";import{flatString as l}from"@alwatr/flat-string";function c(r){e.logMethodArgs?.("readFileSync","..."+r.slice(-32));try{return l(F(r,{encoding:"utf-8",flag:"r"}))}catch(o){throw e.error("readFileSync","read_file_failed",{path:r},o),new Error("read_file_failed",{cause:o.cause})}}function f(r){return e.logMethodArgs?.("readFile","..."+r.slice(-32)),n.push(r,async()=>{try{return l(await _(r,{encoding:"utf-8",flag:"r"}))}catch(o){throw e.error("readFile","read_file_failed",{path:r},o),new Error("read_file_failed",{cause:o.cause})}})}import{writeFileSync as J,existsSync as s,mkdirSync as S,renameSync as m}from"fs";import{mkdir as T,rename as u,writeFile as E}from"fs/promises";import{dirname as d}from"path";function g(r,o){e.logMethodArgs?.("writeFileSync","..."+r.slice(-32));try{let i=s(r);if(!i){let t=d(r);s(t)||S(t,{recursive:!0})}J(r+".tmp",o,{encoding:"utf-8",flag:"w"}),i&&m(r,r+".bak"),m(r+".tmp",r),e.logOther?.("writeFileSync success","..."+r.slice(-32))}catch(i){throw e.error("writeFileSync","write_file_failed",{path:r},i),new Error("write_file_failed",{cause:i.cause})}}function y(r,o){return e.logMethodArgs?.("writeFile","..."+r.slice(-32)),n.push(r,async()=>{try{e.logOther?.("writeFile start","..."+r.slice(-32));let i=s(r);if(!i){let t=d(r);s(t)||await T(t,{recursive:!0})}await E(r+".tmp",o,{encoding:"utf-8",flag:"w"}),i&&await u(r,r+".bak"),await u(r+".tmp",r),e.logOther?.("writeFile success","..."+r.slice(-32))}catch(i){throw e.error("writeFile","write_file_failed",{path:r},i),new Error("write_file_failed",{cause:i.cause})}})}function a(r){try{return JSON.parse(r)}catch(o){throw e.error("parseJson","invalid_json",o),new Error("invalid_json",{cause:o.cause})}}function p(r){try{return JSON.stringify(r)}catch(o){throw e.error("jsonStringify","stringify_failed",o),new Error("stringify_failed",{cause:o.cause})}}function K(r,o=!1){return e.logMethodArgs?.("readJson",{path:r.slice(-32),sync:o}),o===!0?a(c(r)):f(r).then(i=>a(i))}import{flatString as v}from"@alwatr/flat-string";function Y(r,o,i=!1){e.logMethodArgs?.("writeJson","..."+r.slice(-32));let t=v(p(o));return i===!0?g(r,t):y(r,t)}import{open as M}from"fs/promises";async function er(r){return e.logMethodArgs?.("makeEmptyFile","..."+r.slice(-32)),(await M(r,"w")).close()}import{resolve as fr}from"path";import{existsSync as ur}from"fs";import{unlink as gr}from"fs/promises";export{ur as existsSync,er as makeEmptyFile,f as readFile,c as readFileSync,K as readJson,fr as resolve,gr as unlink,y as writeFile,g as writeFileSync,Y as writeJson};
3
3
  //# sourceMappingURL=main.mjs.map
package/dist/main.mjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/common.ts", "../src/read-file.ts", "../src/write-file.ts", "../src/json.ts", "../src/read-json.ts", "../src/write-json.ts", "../src/make-file.ts", "../src/main.ts"],
4
- "sourcesContent": ["import {AsyncQueue} from '@alwatr/async-queue';\nimport {definePackage} from '@alwatr/logger';\n\nimport type {} from '@alwatr/nano-build';\n\nexport const logger = definePackage('@alwatr/node-fs', __package_version__);\n\nexport const asyncQueue = new AsyncQueue();\n", "import {readFileSync as readFileSync_} from 'node:fs';\nimport {readFile as readFile_} from 'node:fs/promises';\n\nimport {flatString} from '@alwatr/flat-string';\n\nimport {asyncQueue, logger} from './common';\n\n/**\n * Enhanced read File (Synchronous).\n *\n * @param path - file path\n * @returns file content\n * @example\n * ```typescript\n * const fileContent = readFileSync('./file.txt', sync);\n * ```\n */\nexport function readFileSync(path: string): string {\n logger.logMethodArgs?.('readFileSync', '...' + path.slice(-32));\n // if (!existsSync(path)) throw new Error('file_not_found');\n try {\n return flatString(readFileSync_(path, {encoding: 'utf-8', flag: 'r'}));\n }\n catch (err) {\n logger.error('readFileSync', 'read_file_failed', {path}, err);\n throw new Error('read_file_failed', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Enhanced read File (Asynchronous).\n *\n * - If writing queue is running for target path, it will wait for it to finish.\n *\n * @param path - file path\n * @returns file content\n * @example\n * ```typescript\n * const fileContent = await readFile('./file.txt', sync);\n * ```\n */\nexport function readFile(path: string): Promise<string> {\n logger.logMethodArgs?.('readFile', '...' + path.slice(-32));\n // if (!existsSync(path)) throw new Error('file_not_found');\n return asyncQueue.push(path, async () => {\n try {\n return flatString(await readFile_(path, {encoding: 'utf-8', flag: 'r'}));\n }\n catch (err) {\n logger.error('readFile', 'read_file_failed', {path}, err);\n throw new Error('read_file_failed', {cause: (err as Error).cause});\n }\n });\n}\n", "import {writeFileSync as writeFileSync_, existsSync, mkdirSync, renameSync} from 'node:fs';\nimport {mkdir, rename, writeFile as writeFile_} from 'node:fs/promises';\nimport {dirname} from 'node:path';\n\nimport {asyncQueue, logger} from './common';\n\n/**\n * Enhanced write file (Synchronous).\n *\n * - If directory not exists, create it recursively.\n * - Write file to `path.tmp` before write success.\n * - If file exists, renamed (keep) to `path.bak`.\n * - If write failed, original file will not be changed.\n *\n * @param path - file path\n * @param content - file content\n * @example\n * ```typescript\n * writeFileSync('./file.txt', 'Hello World!');\n * ```\n */\nexport function writeFileSync(path: string, content: string): void {\n logger.logMethodArgs?.('writeFileSync', '...' + path.slice(-32));\n try {\n const pathExists = existsSync(path);\n if (!pathExists) {\n const dir = dirname(path);\n if (!existsSync(dir)) {\n mkdirSync(dir, {recursive: true});\n }\n }\n writeFileSync_(path + '.tmp', content, {encoding: 'utf-8', flag: 'w'});\n if (pathExists) {\n renameSync(path, path + '.bak');\n }\n renameSync(path + '.tmp', path);\n logger.logOther?.('writeFileSync success', '...' + path.slice(-32));\n }\n catch (err) {\n logger.error('writeFileSync', 'write_file_failed', {path}, err);\n throw new Error('write_file_failed', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Enhanced write file (Asynchronous).\n *\n * - If directory not exists, create it recursively.\n * - Write file to `path.tmp` before write success.\n * - If file exists, renamed (keep) to `path.bak`.\n * - If write failed, original file will not be changed.\n *\n * @param path - file path\n * @param content - file content\n * @example\n * ```typescript\n * await writeFile('./file.txt', 'Hello World!');\n * ```\n */\nexport function writeFile(path: string, content: string): Promise<void> {\n logger.logMethodArgs?.('writeFile', '...' + path.slice(-32));\n return asyncQueue.push(path, async () => {\n try {\n logger.logOther?.('writeFile start', '...' + path.slice(-32));\n const pathExists = existsSync(path);\n if (!pathExists) {\n const dir = dirname(path);\n if (!existsSync(dir)) {\n await mkdir(dir, {recursive: true});\n }\n }\n await writeFile_(path + '.tmp', content, {encoding: 'utf-8', flag: 'w'});\n if (pathExists) {\n await rename(path, path + '.bak');\n }\n await rename(path + '.tmp', path);\n logger.logOther?.('writeFile success', '...' + path.slice(-32));\n }\n catch (err) {\n logger.error('writeFile', 'write_file_failed', {path}, err);\n throw new Error('write_file_failed', {cause: (err as Error).cause});\n }\n });\n}\n", "import {logger} from './common';\n\nimport type {JsonValue} from '@alwatr/type-helper';\n\n/**\n * Parse json string.\n *\n * @param content - json string\n * @returns json object\n * @example\n * ```typescript\n * const json = parseJson('{\"a\":1,\"b\":2}');\n * console.log(json.a); // 1\n * ```\n */\nexport function parseJson<T extends JsonValue>(content: string): T {\n try {\n return JSON.parse(content);\n }\n catch (err) {\n logger.error('parseJson', 'invalid_json', err);\n throw new Error('invalid_json', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Stringify json object.\n *\n * @param data - json object\n * @returns json string\n * @example\n * ```typescript\n * const json = jsonStringify({a:1, b:2});\n * console.log(json); // '{\"a\":1,\"b\":2}'\n * ```\n */\nexport function jsonStringify<T extends JsonValue>(data: T): string {\n try {\n return JSON.stringify(data);\n }\n catch (err) {\n logger.error('jsonStringify', 'stringify_failed', err);\n throw new Error('stringify_failed', {cause: (err as Error).cause});\n }\n}\n", "import {logger} from './common';\nimport {parseJson} from './json';\nimport {readFile, readFileSync} from './read-file';\n\nimport type {JsonValue, MaybePromise} from '@alwatr/type-helper';\n\n/**\n * Enhanced read json file (async).\n *\n * @param path - file path\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json');\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string): Promise<T>;\n/**\n * Enhanced read json file (sync).\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = readJson('./file.json', true);\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync: true): T;\n/**\n * Enhanced read json file.\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json', sync);\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync: boolean): MaybePromise<T>;\n/**\n * Enhanced read json file.\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json');\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync = false): MaybePromise<T> {\n logger.logMethodArgs?.('readJson', {path: path.slice(-32), sync});\n if (sync === true) {\n return parseJson<T>(readFileSync(path));\n }\n else {\n return readFile(path).then((content) => parseJson<T>(content));\n }\n}\n", "import {flatString} from '@alwatr/flat-string';\n\nimport {logger} from './common';\nimport {jsonStringify} from './json';\nimport {writeFile, writeFileSync} from './write-file';\n\nimport type {JsonValue, MaybePromise} from '@alwatr/type-helper';\n\n/**\n * Enhanced write json file (Asynchronous).\n *\n * @param path - file path\n * @param data - json object\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 });\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync?: false): Promise<void>;\n/**\n * Enhanced write json file (Synchronous).\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * writeJsonFile('./file.json', { a:1, b:2, c:3 }, true);\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync: true): void;\n/**\n * Enhanced write json file.\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 }, sync);\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync: boolean): MaybePromise<void>;\n/**\n * Enhanced write json file.\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 });\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync = false): MaybePromise<void> {\n logger.logMethodArgs?.('writeJson', '...' + path.slice(-32));\n const content = flatString(jsonStringify(data));\n return sync === true ? writeFileSync(path, content) : writeFile(path, content);\n}\n", "import {open} from 'node:fs/promises';\n\nimport {logger} from './common';\n\n/**\n * Make empty file.\n *\n * @param path - file path\n *\n * @example\n * ```ts\n * await makeFile('./file.txt');\n * ```\n */\nexport async function makeEmptyFile(path: string): Promise<void> {\n logger.logMethodArgs?.('makeEmptyFile', '...' + path.slice(-32));\n return (await open(path, 'w')).close();\n}\n", "export * from './read-file';\nexport * from './write-file';\nexport * from './read-json';\nexport * from './write-json';\nexport * from './make-file';\n\nexport {resolve} from 'node:path';\nexport {existsSync} from 'node:fs';\nexport {unlink} from 'node:fs/promises';\n"],
4
+ "sourcesContent": ["import {AsyncQueue} from '@alwatr/async-queue';\nimport {definePackage} from '@alwatr/logger';\n\nimport type {} from '@alwatr/nano-build';\n\nexport const logger = definePackage('@alwatr/node-fs', __package_version__);\n\nexport const asyncQueue = new AsyncQueue();\n", "import {readFileSync as readFileSync_} from 'node:fs';\nimport {readFile as readFile_} from 'node:fs/promises';\n\nimport {flatString} from '@alwatr/flat-string';\n\nimport {asyncQueue, logger} from './common.js';\n\n/**\n * Enhanced read File (Synchronous).\n *\n * @param path - file path\n * @returns file content\n * @example\n * ```typescript\n * const fileContent = readFileSync('./file.txt', sync);\n * ```\n */\nexport function readFileSync(path: string): string {\n logger.logMethodArgs?.('readFileSync', '...' + path.slice(-32));\n // if (!existsSync(path)) throw new Error('file_not_found');\n try {\n return flatString(readFileSync_(path, {encoding: 'utf-8', flag: 'r'}));\n }\n catch (err) {\n logger.error('readFileSync', 'read_file_failed', {path}, err);\n throw new Error('read_file_failed', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Enhanced read File (Asynchronous).\n *\n * - If writing queue is running for target path, it will wait for it to finish.\n *\n * @param path - file path\n * @returns file content\n * @example\n * ```typescript\n * const fileContent = await readFile('./file.txt', sync);\n * ```\n */\nexport function readFile(path: string): Promise<string> {\n logger.logMethodArgs?.('readFile', '...' + path.slice(-32));\n // if (!existsSync(path)) throw new Error('file_not_found');\n return asyncQueue.push(path, async () => {\n try {\n return flatString(await readFile_(path, {encoding: 'utf-8', flag: 'r'}));\n }\n catch (err) {\n logger.error('readFile', 'read_file_failed', {path}, err);\n throw new Error('read_file_failed', {cause: (err as Error).cause});\n }\n });\n}\n", "import {writeFileSync as writeFileSync_, existsSync, mkdirSync, renameSync} from 'node:fs';\nimport {mkdir, rename, writeFile as writeFile_} from 'node:fs/promises';\nimport {dirname} from 'node:path';\n\nimport {asyncQueue, logger} from './common.js';\n\n/**\n * Enhanced write file (Synchronous).\n *\n * - If directory not exists, create it recursively.\n * - Write file to `path.tmp` before write success.\n * - If file exists, renamed (keep) to `path.bak`.\n * - If write failed, original file will not be changed.\n *\n * @param path - file path\n * @param content - file content\n * @example\n * ```typescript\n * writeFileSync('./file.txt', 'Hello World!');\n * ```\n */\nexport function writeFileSync(path: string, content: string): void {\n logger.logMethodArgs?.('writeFileSync', '...' + path.slice(-32));\n try {\n const pathExists = existsSync(path);\n if (!pathExists) {\n const dir = dirname(path);\n if (!existsSync(dir)) {\n mkdirSync(dir, {recursive: true});\n }\n }\n writeFileSync_(path + '.tmp', content, {encoding: 'utf-8', flag: 'w'});\n if (pathExists) {\n renameSync(path, path + '.bak');\n }\n renameSync(path + '.tmp', path);\n logger.logOther?.('writeFileSync success', '...' + path.slice(-32));\n }\n catch (err) {\n logger.error('writeFileSync', 'write_file_failed', {path}, err);\n throw new Error('write_file_failed', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Enhanced write file (Asynchronous).\n *\n * - If directory not exists, create it recursively.\n * - Write file to `path.tmp` before write success.\n * - If file exists, renamed (keep) to `path.bak`.\n * - If write failed, original file will not be changed.\n *\n * @param path - file path\n * @param content - file content\n * @example\n * ```typescript\n * await writeFile('./file.txt', 'Hello World!');\n * ```\n */\nexport function writeFile(path: string, content: string): Promise<void> {\n logger.logMethodArgs?.('writeFile', '...' + path.slice(-32));\n return asyncQueue.push(path, async () => {\n try {\n logger.logOther?.('writeFile start', '...' + path.slice(-32));\n const pathExists = existsSync(path);\n if (!pathExists) {\n const dir = dirname(path);\n if (!existsSync(dir)) {\n await mkdir(dir, {recursive: true});\n }\n }\n await writeFile_(path + '.tmp', content, {encoding: 'utf-8', flag: 'w'});\n if (pathExists) {\n await rename(path, path + '.bak');\n }\n await rename(path + '.tmp', path);\n logger.logOther?.('writeFile success', '...' + path.slice(-32));\n }\n catch (err) {\n logger.error('writeFile', 'write_file_failed', {path}, err);\n throw new Error('write_file_failed', {cause: (err as Error).cause});\n }\n });\n}\n", "import {logger} from './common.js';\n\nimport type {JsonValue} from '@alwatr/type-helper';\n\n/**\n * Parse json string.\n *\n * @param content - json string\n * @returns json object\n * @example\n * ```typescript\n * const json = parseJson('{\"a\":1,\"b\":2}');\n * console.log(json.a); // 1\n * ```\n */\nexport function parseJson<T extends JsonValue>(content: string): T {\n try {\n return JSON.parse(content);\n }\n catch (err) {\n logger.error('parseJson', 'invalid_json', err);\n throw new Error('invalid_json', {cause: (err as Error).cause});\n }\n}\n\n/**\n * Stringify json object.\n *\n * @param data - json object\n * @returns json string\n * @example\n * ```typescript\n * const json = jsonStringify({a:1, b:2});\n * console.log(json); // '{\"a\":1,\"b\":2}'\n * ```\n */\nexport function jsonStringify<T extends JsonValue>(data: T): string {\n try {\n return JSON.stringify(data);\n }\n catch (err) {\n logger.error('jsonStringify', 'stringify_failed', err);\n throw new Error('stringify_failed', {cause: (err as Error).cause});\n }\n}\n", "import {logger} from './common.js';\nimport {parseJson} from './json.js';\nimport {readFile, readFileSync} from './read-file.js';\n\nimport type {JsonValue, MaybePromise} from '@alwatr/type-helper';\n\n/**\n * Enhanced read json file (async).\n *\n * @param path - file path\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json');\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string): Promise<T>;\n/**\n * Enhanced read json file (sync).\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = readJson('./file.json', true);\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync: true): T;\n/**\n * Enhanced read json file.\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json', sync);\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync: boolean): MaybePromise<T>;\n/**\n * Enhanced read json file.\n *\n * @param path - file path\n * @param sync - sync mode\n * @returns json object\n * @example\n * ```typescript\n * const fileContent = await readJson('./file.json');\n * ```\n */\nexport function readJson<T extends JsonValue>(path: string, sync = false): MaybePromise<T> {\n logger.logMethodArgs?.('readJson', {path: path.slice(-32), sync});\n if (sync === true) {\n return parseJson<T>(readFileSync(path));\n }\n else {\n return readFile(path).then((content) => parseJson<T>(content));\n }\n}\n", "import {flatString} from '@alwatr/flat-string';\n\nimport {logger} from './common.js';\nimport {jsonStringify} from './json.js';\nimport {writeFile, writeFileSync} from './write-file.js';\n\nimport type {JsonValue, MaybePromise} from '@alwatr/type-helper';\n\n/**\n * Enhanced write json file (Asynchronous).\n *\n * @param path - file path\n * @param data - json object\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 });\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync?: false): Promise<void>;\n/**\n * Enhanced write json file (Synchronous).\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * writeJsonFile('./file.json', { a:1, b:2, c:3 }, true);\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync: true): void;\n/**\n * Enhanced write json file.\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 }, sync);\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync: boolean): MaybePromise<void>;\n/**\n * Enhanced write json file.\n *\n * @param path - file path\n * @param data - json object\n * @param sync - sync mode\n * @example\n * ```typescript\n * await writeJsonFile('./file.json', { a:1, b:2, c:3 });\n * ```\n */\nexport function writeJson<T extends JsonValue>(path: string, data: T, sync = false): MaybePromise<void> {\n logger.logMethodArgs?.('writeJson', '...' + path.slice(-32));\n const content = flatString(jsonStringify(data));\n return sync === true ? writeFileSync(path, content) : writeFile(path, content);\n}\n", "import {open} from 'node:fs/promises';\n\nimport {logger} from './common.js';\n\n/**\n * Make empty file.\n *\n * @param path - file path\n *\n * @example\n * ```ts\n * await makeFile('./file.txt');\n * ```\n */\nexport async function makeEmptyFile(path: string): Promise<void> {\n logger.logMethodArgs?.('makeEmptyFile', '...' + path.slice(-32));\n return (await open(path, 'w')).close();\n}\n", "export * from './read-file.js';\nexport * from './write-file.js';\nexport * from './read-json.js';\nexport * from './write-json.js';\nexport * from './make-file.js';\n\nexport {resolve} from 'node:path';\nexport {existsSync} from 'node:fs';\nexport {unlink} from 'node:fs/promises';\n"],
5
5
  "mappings": "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",
6
6
  "names": ["AsyncQueue", "definePackage", "logger", "asyncQueue", "readFileSync_", "readFile_", "flatString", "readFileSync", "path", "logger", "err", "readFile", "asyncQueue", "writeFileSync_", "existsSync", "mkdirSync", "renameSync", "mkdir", "rename", "writeFile_", "dirname", "writeFileSync", "path", "content", "logger", "pathExists", "dir", "err", "writeFile", "asyncQueue", "parseJson", "content", "err", "logger", "jsonStringify", "data", "readJson", "path", "sync", "logger", "parseJson", "readFileSync", "readFile", "content", "flatString", "writeJson", "path", "data", "sync", "logger", "content", "jsonStringify", "writeFileSync", "writeFile", "open", "makeEmptyFile", "path", "logger", "resolve", "existsSync", "unlink"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwatr/node-fs",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Enhanced file system operations in Node.js with asynchronous queue to prevent parallel writes.",
5
5
  "author": "S. Ali Mihandoost <ali.mihandoost@gmail.com>",
6
6
  "keywords": [
@@ -73,17 +73,17 @@
73
73
  "clean": "rm -rfv dist *.tsbuildinfo"
74
74
  },
75
75
  "dependencies": {
76
- "@alwatr/async-queue": "^1.2.2",
77
- "@alwatr/flat-string": "^1.0.14",
78
- "@alwatr/logger": "^3.2.4"
76
+ "@alwatr/async-queue": "^1.2.3",
77
+ "@alwatr/flat-string": "^1.0.15",
78
+ "@alwatr/logger": "^3.2.5"
79
79
  },
80
80
  "devDependencies": {
81
- "@alwatr/nano-build": "^1.3.2",
81
+ "@alwatr/nano-build": "^1.3.3",
82
82
  "@alwatr/prettier-config": "^1.0.4",
83
- "@alwatr/tsconfig-base": "^1.1.1",
84
- "@alwatr/type-helper": "^1.2.0",
85
- "@types/node": "^20.11.6",
83
+ "@alwatr/tsconfig-base": "^1.1.2",
84
+ "@alwatr/type-helper": "^1.2.1",
85
+ "@types/node": "^20.11.13",
86
86
  "typescript": "^5.3.3"
87
87
  },
88
- "gitHead": "3486060abc5f331a3b8c78da7f1d671ba1139b5d"
88
+ "gitHead": "54726b7ac06d4a6ffb42731b58e8d976de1211bd"
89
89
  }