namirasoft-core 1.3.6 → 1.3.8

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.
@@ -1,4 +1,4 @@
1
1
  export declare class FileOperation {
2
2
  static findUp(fileName: string): string[];
3
- static foreachFolder(base: string, handler: (base: string, sub: string, full: string, folder: boolean) => Promise<void>, folders?: boolean, files?: boolean): Promise<void>;
3
+ static foreach(base: string, handler: (base: string, sub: string, name: string, full: string, isFolder: boolean) => Promise<boolean | void>, folders?: boolean, files?: boolean): Promise<void>;
4
4
  }
@@ -35,22 +35,26 @@ class FileOperation {
35
35
  searchRecursively(currentDir);
36
36
  return foundFilePaths;
37
37
  }
38
- static foreachFolder(base, handler, folders = true, files = true) {
38
+ static foreach(base, handler, folders = true, files = true) {
39
39
  return __awaiter(this, void 0, void 0, function* () {
40
40
  function recursive(base, sub) {
41
41
  return __awaiter(this, void 0, void 0, function* () {
42
- let files_folders = fs.readdirSync(path.join(base, sub));
43
- for (let folder of files_folders) {
44
- let s = path.join(sub, folder);
45
- let p = path.join(base, s);
46
- if (fs.statSync(p).isDirectory()) {
47
- if (folders)
48
- yield handler(base, sub, folder, true);
49
- yield recursive(base, s);
42
+ let names = fs.readdirSync(path.join(base, sub));
43
+ for (let name of names) {
44
+ let newSub = path.join(sub, name);
45
+ let full = path.join(base, newSub);
46
+ if (fs.statSync(full).isDirectory()) {
47
+ if (folders) {
48
+ let stop = yield handler(base, sub, name, full, true);
49
+ if (stop)
50
+ continue;
51
+ }
52
+ ;
53
+ yield recursive(base, newSub);
50
54
  }
51
55
  else {
52
56
  if (files)
53
- yield handler(base, sub, folder, false);
57
+ yield handler(base, sub, name, full, false);
54
58
  }
55
59
  }
56
60
  });
@@ -1 +1 @@
1
- {"version":3,"file":"FileOperation.js","sourceRoot":"","sources":["../src/FileOperation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAI,EAAO,CAAC;AACZ,IAAI,IAAS,CAAC;AACd,IAAI,OAAO,MAAM,KAAK,WAAW,EACjC;IACI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1B;AACD,MAAa,aAAa;IAEtB,MAAM,CAAC,MAAM,CAAC,QAAgB;QAE1B,IAAI,UAAU,GAAW,SAAS,CAAC;QACnC,MAAM,OAAO,GAAW,OAAO,CAAC,GAAG,EAAE,CAAC;QACtC,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,SAAS,iBAAiB,CAAC,GAAW;YAElC,MAAM,KAAK,GAAa,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACxB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,GAAG;gBACf,OAAO;YACX,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,OAAO,IAAI,GAAG;gBACd,OAAO;YACX,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,cAAc,CAAC;IAC1B,CAAC;IACD,MAAM,CAAO,aAAa,CAAC,IAAY,EAAE,OAAoF,EAAE,UAAmB,IAAI,EAAE,QAAiB,IAAI;;YAEzK,SAAe,SAAS,CAAC,IAAY,EAAE,GAAW;;oBAE9C,IAAI,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;oBACzD,KAAK,IAAI,MAAM,IAAI,aAAa,EAChC;wBACI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;wBAC9B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAC3B,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAChC;4BACI,IAAI,OAAO;gCACP,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;4BAC3C,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;yBAC5B;6BAED;4BACI,IAAI,KAAK;gCACL,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;yBAC/C;qBACJ;gBACL,CAAC;aAAA;YACD,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;KAAA;CACJ;AA9CD,sCA8CC"}
1
+ {"version":3,"file":"FileOperation.js","sourceRoot":"","sources":["../src/FileOperation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAI,EAAO,CAAC;AACZ,IAAI,IAAS,CAAC;AACd,IAAI,OAAO,MAAM,KAAK,WAAW,EACjC;IACI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1B;AACD,MAAa,aAAa;IAEtB,MAAM,CAAC,MAAM,CAAC,QAAgB;QAE1B,IAAI,UAAU,GAAW,SAAS,CAAC;QACnC,MAAM,OAAO,GAAW,OAAO,CAAC,GAAG,EAAE,CAAC;QACtC,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,SAAS,iBAAiB,CAAC,GAAW;YAElC,MAAM,KAAK,GAAa,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACxB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,GAAG;gBACf,OAAO;YACX,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,OAAO,IAAI,GAAG;gBACd,OAAO;YACX,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,cAAc,CAAC;IAC1B,CAAC;IACD,MAAM,CAAO,OAAO,CAAC,IAAY,EAAE,OAA8G,EAAE,UAAmB,IAAI,EAAE,QAAiB,IAAI;;YAE7L,SAAe,SAAS,CAAC,IAAY,EAAE,GAAW;;oBAE9C,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;oBACjD,KAAK,IAAI,IAAI,IAAI,KAAK,EACtB;wBACI,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;wBACjC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBACnC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EACnC;4BACI,IAAI,OAAO,EACX;gCACI,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gCACtD,IAAI,IAAI;oCACJ,SAAS;6BAChB;4BAAA,CAAC;4BACF,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;yBACjC;6BAED;4BACI,IAAI,KAAK;gCACL,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;yBACnD;qBACJ;gBACL,CAAC;aAAA;YACD,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;KAAA;CACJ;AAlDD,sCAkDC"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.3.6",
11
+ "version": "1.3.8",
12
12
  "main": "./dist/index.js",
13
13
  "types": "./dist/index.d.ts",
14
14
  "author": "Amir Abolhasani",
@@ -27,25 +27,29 @@ export class FileOperation
27
27
  searchRecursively(currentDir);
28
28
  return foundFilePaths;
29
29
  }
30
- static async foreachFolder(base: string, handler: (base: string, sub: string, full: string, folder: boolean) => Promise<void>, folders: boolean = true, files: boolean = true)
30
+ static async foreach(base: string, handler: (base: string, sub: string, name: string, full: string, isFolder: boolean) => Promise<boolean | void>, folders: boolean = true, files: boolean = true)
31
31
  {
32
32
  async function recursive(base: string, sub: string)
33
33
  {
34
- let files_folders = fs.readdirSync(path.join(base, sub));
35
- for (let folder of files_folders)
34
+ let names = fs.readdirSync(path.join(base, sub));
35
+ for (let name of names)
36
36
  {
37
- let s = path.join(sub, folder)
38
- let p = path.join(base, s);
39
- if (fs.statSync(p).isDirectory())
37
+ let newSub = path.join(sub, name)
38
+ let full = path.join(base, newSub);
39
+ if (fs.statSync(full).isDirectory())
40
40
  {
41
41
  if (folders)
42
- await handler(base, sub, folder, true);
43
- await recursive(base, s);
42
+ {
43
+ let stop = await handler(base, sub, name, full, true);
44
+ if (stop)
45
+ continue;
46
+ };
47
+ await recursive(base, newSub);
44
48
  }
45
49
  else
46
50
  {
47
51
  if (files)
48
- await handler(base, sub, folder, false);
52
+ await handler(base, sub, name, full, false);
49
53
  }
50
54
  }
51
55
  }