@spinajs/fs 2.0.301 → 2.0.302

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,20 +1,24 @@
1
1
  /* eslint-disable security/detect-non-literal-fs-filename */
2
2
  import { AsyncService, DI } from '@spinajs/di';
3
- import { IOFail } from '@spinajs/exceptions';
3
+ import { InvalidArgument, IOFail } from '@spinajs/exceptions';
4
4
  import { v4 as uuidv4 } from 'uuid';
5
- function uriToFs(path) {
6
- const reg = /^(fs+:\/\/)+(.+)$/gm;
7
- if (!reg.test(path)) {
8
- return [null, path];
9
- }
10
- const args = reg.exec(path)[2].split('/');
11
- const fsName = args[0];
12
- const fPath = args[1];
13
- const f = DI.resolve('__file_provider__', [fsName]);
14
- if (!f) {
15
- throw new IOFail(`Filesystem ${fsName} not registered, check your fs configuration !`);
16
- }
17
- return [f, fPath];
5
+ /**
6
+ * Class for handling fs URI eg. fs://fs-temp/path/to/file
7
+ */
8
+ export class URI {
9
+ constructor(uri) {
10
+ const reg = /^(fs+:\/\/)+(.+)$/gm;
11
+ if (!reg.test(uri)) {
12
+ throw new InvalidArgument(`URI ${uri} is not valid`);
13
+ }
14
+ const args = reg.exec(uri)[2].split('/');
15
+ const fsName = args[0];
16
+ this.Path = args[1];
17
+ this.Fs = DI.resolve('__file_provider__', [fsName]);
18
+ if (!this.Fs) {
19
+ throw new InvalidArgument(`Filesystem ${fsName} not registered, check your fs configuration !`);
20
+ }
21
+ }
18
22
  }
19
23
  export class fs extends AsyncService {
20
24
  get ServiceName() {
@@ -62,8 +66,7 @@ export class fs extends AsyncService {
62
66
  * @param path path to download
63
67
  */
64
68
  static download(path) {
65
- const [fs, p] = uriToFs(path);
66
- return fs.download(p);
69
+ return path.Fs.download(path.Path);
67
70
  }
68
71
  /**
69
72
  * Copies local file into fs
@@ -72,8 +75,7 @@ export class fs extends AsyncService {
72
75
  * @param destPath dest path ( relative to base path of provider )
73
76
  */
74
77
  static upload(srcPath, destPath) {
75
- const [fs, p] = uriToFs(destPath);
76
- return fs.upload(srcPath, p);
78
+ return destPath.Fs.upload(srcPath, destPath.Path);
77
79
  }
78
80
  /**
79
81
  *
@@ -83,8 +85,7 @@ export class fs extends AsyncService {
83
85
  * @param algo optional hash alghoritm, default is md5
84
86
  */
85
87
  static hash(path, algo) {
86
- const [fs, p] = uriToFs(path);
87
- return fs.hash(p, algo);
88
+ return path.Fs.hash(path.Path, algo);
88
89
  }
89
90
  /**
90
91
  *
@@ -93,63 +94,46 @@ export class fs extends AsyncService {
93
94
  * @param path path to resolve
94
95
  */
95
96
  static resolvePath(path) {
96
- const [fs, p] = uriToFs(path);
97
- return fs.resolvePath(p);
97
+ return path.Fs.resolvePath(path.Path);
98
98
  }
99
99
  static read(path, encoding) {
100
- const [fs, p] = uriToFs(path);
101
- return fs.read(p, encoding);
100
+ return path.Fs.read(path.Path, encoding);
102
101
  }
103
102
  static readStream(path, encoding) {
104
- const [fs, p] = uriToFs(path);
105
- return fs.readStream(p, encoding);
103
+ return path.Fs.readStream(path.Path, encoding);
106
104
  }
107
105
  static write(path, data, encoding) {
108
- const [fs, p] = uriToFs(path);
109
- return fs.write(p, data, encoding);
106
+ return path.Fs.write(path.Path, data, encoding);
110
107
  }
111
108
  static writeStream(path, readStream, encoding) {
112
- const [fs, p] = uriToFs(path);
113
- return fs.writeStream(p, readStream, encoding);
109
+ return path.Fs.writeStream(path.Path, readStream, encoding);
114
110
  }
115
111
  static exists(path) {
116
- const [fs, p] = uriToFs(path);
117
- return fs.exists(p);
112
+ return path.Fs.exists(path.Path);
118
113
  }
119
114
  static dirExists(path) {
120
- const [fs, p] = uriToFs(path);
121
- return fs.dirExists(p);
115
+ return path.Fs.dirExists(path.Path);
122
116
  }
123
- static copy(path, dest, dstFs) {
124
- const [fs, p] = uriToFs(path);
125
- const [dFs, dP] = uriToFs(dest);
126
- return fs.copy(p, dP, dFs ?? dstFs);
117
+ static copy(src, dest) {
118
+ return src.Fs.copy(src.Path, dest.Path, dest.Fs);
127
119
  }
128
- static move(oldPath, newPath, dstFs) {
129
- const [fs, p] = uriToFs(oldPath);
130
- const [dFs, dP] = uriToFs(newPath);
131
- return fs.move(p, dP, dFs ?? dstFs);
120
+ static move(src, dest) {
121
+ return src.Fs.move(src.Path, dest.Path, dest.Fs);
132
122
  }
133
- static rename(oldPath, newPath) {
134
- const [fs, p] = uriToFs(oldPath);
135
- const [, p2] = uriToFs(newPath);
136
- return fs.rename(p, p2);
123
+ static rename(src, dest) {
124
+ return src.Fs.rename(src.Path, dest instanceof URI ? dest.Path : dest);
137
125
  }
138
126
  static rm(path) {
139
- const [fs, p] = uriToFs(path);
140
- return fs.rm(p);
127
+ return path.Fs.rm(path.Path);
141
128
  }
142
129
  static mkdir(path) {
143
- const [fs, p] = uriToFs(path);
144
- return fs.mkdir(p);
130
+ return path.Fs.mkdir(path.Path);
145
131
  }
146
132
  static stat(path) {
147
- const [fs, p] = uriToFs(path);
148
- return fs.stat(p);
133
+ return path.Fs.stat(path.Path);
149
134
  }
150
135
  static list(path) {
151
- const [fs, p] = uriToFs(path);
152
- return fs.list(p);
136
+ return path.Fs.list(path.Path);
153
137
  }
154
138
  static tmppath(fs) {
155
139
  const f = DI.resolve('__file_provider__', [fs]);
@@ -159,8 +143,7 @@ export class fs extends AsyncService {
159
143
  return f.tmppath();
160
144
  }
161
145
  static append(path, data, encoding) {
162
- const [fs, p] = uriToFs(path);
163
- return fs.append(p, data, encoding);
146
+ return path.Fs.append(path.Path, data, encoding);
164
147
  }
165
148
  /**
166
149
  *
@@ -170,11 +153,10 @@ export class fs extends AsyncService {
170
153
  * @param path - path to zip
171
154
  * @param dstFile - destination file name
172
155
  */
173
- static zip(path, dstFile, dstFs) {
174
- const [fs] = !Array.isArray(path) ? uriToFs(path) : uriToFs(path[0]);
175
- const [dFs, fP] = uriToFs(dstFile);
176
- const files = Array.isArray(path) ? path.map((x) => uriToFs(x)[1]) : uriToFs(path)[1];
177
- return fs.zip(files, dFs ?? dstFs, fP ?? dstFile);
156
+ static zip(path, dstFile) {
157
+ const fs = !Array.isArray(path) ? path.Fs : path[0].Fs;
158
+ const files = Array.isArray(path) ? path.map(x => x.Path) : path.Path;
159
+ return fs.zip(files, dstFile.Fs, dstFile.Path);
178
160
  }
179
161
  /**
180
162
  * Decompress given file to destination path
@@ -184,10 +166,8 @@ export class fs extends AsyncService {
184
166
  *
185
167
  * @returns path to unzipped file
186
168
  */
187
- static unzip(srcPath, destPath, dstFs) {
188
- const [fs, p] = uriToFs(srcPath);
189
- const [dFs, fP] = uriToFs(destPath);
190
- return fs.unzip(p, fP, dFs ?? dstFs);
169
+ static unzip(srcPath, destPath) {
170
+ return srcPath.Fs.unzip(srcPath.Path, destPath.Path, destPath.Fs);
191
171
  }
192
172
  /**
193
173
  *
@@ -196,8 +176,7 @@ export class fs extends AsyncService {
196
176
  * @param path path to check
197
177
  */
198
178
  static isDir(path) {
199
- const [fs, p] = uriToFs(path);
200
- return fs.isDir(p);
179
+ return path.Fs.isDir(path.Path);
201
180
  }
202
181
  }
203
182
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,YAAY,EAAE,EAAE,EAAoC,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI9D,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,GAAG;IAId,YAAY,GAAW;QACrB,MAAM,GAAG,GAAG,qBAAqB,CAAC;QAElC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAK,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAExD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACZ,MAAM,IAAI,eAAe,CAAC,cAAc,MAAM,gDAAgD,CAAC,CAAC;SACjG;IACH,CAAC;CACF;AAyGD,MAAM,OAAgB,EAAG,SAAQ,YAAY;IAC3C,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,8DAA8D;IACvD,iBAAiB,CAAC,eAAoB;QAC3C,sEAAsE;QACtE,OAAO,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAyBD;;;;;;OAMG;IACI,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,IAAa;QAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAa,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,IAAY;QAChC,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAkB,eAAe,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAyDM,OAAO;QACZ,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IAEH;;;;;;;;;;OAUG;IACI,MAAM,CAAC,QAAQ,CAAC,IAAS;QAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,MAAM,CAAC,OAAe,EAAE,QAAc;QAClD,OAAO,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,IAAI,CAAC,IAAS,EAAE,IAAa;QACzC,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,IAAS;QACjC,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,IAAS,EAAE,QAAyB;QACrD,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAS,EAAE,QAAyB;QAC3D,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAS,EAAE,IAAyB,EAAE,QAAyB;QACjF,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAGM,MAAM,CAAC,WAAW,CACvB,IAAS,EACT,UAAkD,EAClD,QAAyB;QAEzB,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAS;QAC5B,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,IAAS;QAC/B,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,GAAQ,EAAE,IAAS;QACpC,OAAO,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,GAAQ,EAAE,IAAS;QACpC,OAAO,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAQ,EAAE,IAAkB;QAC/C,OAAO,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IACM,MAAM,CAAC,EAAE,CAAC,IAAS;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAS;QAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,IAAS;QAC1B,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,IAAS;QAC1B,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,EAAU;QAC9B,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAK,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,EAAE;YACN,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;SAC3E;QAED,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAS,EAAE,IAAyB,EAAE,QAAyB;QAClF,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IACD;;;;;;;OAOG;IACI,MAAM,CAAC,GAAG,CAAC,IAAiB,EAAE,OAAY;QAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACtE,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,EAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,OAAY,EAAE,QAAa;QAC7C,OAAO,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,IAAS;QAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAgB,eAAe;CAEpC;AAED;;GAEG;AACH,MAAM,OAAgB,UAAU;CAE/B"}