@spinajs/fs 2.0.289 → 2.0.290
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/lib/cjs/interfaces.d.ts +87 -6
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js +176 -6
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +87 -6
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js +176 -6
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +4 -4
package/lib/cjs/interfaces.d.ts
CHANGED
|
@@ -110,12 +110,12 @@ export declare abstract class fs extends AsyncService implements IMappableServic
|
|
|
110
110
|
*/
|
|
111
111
|
abstract upload(srcPath: string, destPath?: string): Promise<void>;
|
|
112
112
|
/**
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
113
|
+
*
|
|
114
|
+
* Returns hash of file
|
|
115
|
+
*
|
|
116
|
+
* @param srcPath file to calculate hash
|
|
117
|
+
* @param algo optional hash alghoritm, default is md5
|
|
118
|
+
*/
|
|
119
119
|
hash(path: string, algo?: string): Promise<string>;
|
|
120
120
|
/**
|
|
121
121
|
*
|
|
@@ -166,6 +166,87 @@ export declare abstract class fs extends AsyncService implements IMappableServic
|
|
|
166
166
|
*/
|
|
167
167
|
abstract isDir(path: string): Promise<boolean>;
|
|
168
168
|
tmpname(): string;
|
|
169
|
+
/**
|
|
170
|
+
* -------------------------------------------------------------------------
|
|
171
|
+
*
|
|
172
|
+
* STATIC METHODS
|
|
173
|
+
*
|
|
174
|
+
* -------------------------------------------------------------------------
|
|
175
|
+
*/
|
|
176
|
+
/**
|
|
177
|
+
* Downloads file to local storage and returns path to it.
|
|
178
|
+
* If used on local storage provider eg. hard drive it only returns full path to file
|
|
179
|
+
*
|
|
180
|
+
* On remote storage provivers eg. amazon s3 - it tries to download it to local disk first and returns
|
|
181
|
+
* full path.
|
|
182
|
+
*
|
|
183
|
+
* Returns local path to file
|
|
184
|
+
*
|
|
185
|
+
* @param path path to download
|
|
186
|
+
*/
|
|
187
|
+
static download(path: string): Promise<string>;
|
|
188
|
+
/**
|
|
189
|
+
* Copies local file into fs
|
|
190
|
+
*
|
|
191
|
+
* @param srcPath source path ( full absolute path eg. file from local disk )
|
|
192
|
+
* @param destPath dest path ( relative to base path of provider )
|
|
193
|
+
*/
|
|
194
|
+
static upload(srcPath: string, destPath?: string): Promise<void>;
|
|
195
|
+
/**
|
|
196
|
+
*
|
|
197
|
+
* Returns hash of file
|
|
198
|
+
*
|
|
199
|
+
* @param srcPath file to calculate hash
|
|
200
|
+
* @param algo optional hash alghoritm, default is md5
|
|
201
|
+
*/
|
|
202
|
+
static hash(path: string, algo?: string): Promise<string>;
|
|
203
|
+
/**
|
|
204
|
+
*
|
|
205
|
+
* Returns full LOCAL path to file
|
|
206
|
+
*
|
|
207
|
+
* @param path path to resolve
|
|
208
|
+
*/
|
|
209
|
+
static resolvePath(path: string): string;
|
|
210
|
+
static read(path: string, encoding?: BufferEncoding): Promise<string | Buffer>;
|
|
211
|
+
static readStream(path: string, encoding?: BufferEncoding): Promise<NodeJS.ReadableStream>;
|
|
212
|
+
static write(path: string, data: string | Uint8Array, encoding?: BufferEncoding): Promise<void>;
|
|
213
|
+
static writeStream(path: string, encoding?: BufferEncoding): Promise<WriteStream | PassThrough>;
|
|
214
|
+
static exists(path: string): Promise<boolean>;
|
|
215
|
+
static dirExists(path: string): Promise<boolean>;
|
|
216
|
+
static copy(path: string, dest: string, dstFs?: fs): Promise<void>;
|
|
217
|
+
static move(oldPath: string, newPath: string, dstFs?: fs): Promise<void>;
|
|
218
|
+
static rename(oldPath: string, newPath: string): Promise<void>;
|
|
219
|
+
static rm(path: string): Promise<void>;
|
|
220
|
+
static mkdir(path: string): Promise<void>;
|
|
221
|
+
static stat(path: string): Promise<IStat>;
|
|
222
|
+
static list(path: string): Promise<string[]>;
|
|
223
|
+
static tmppath(fs: string): string;
|
|
224
|
+
static append(path: string, data: string | Uint8Array, encoding?: BufferEncoding): Promise<void>;
|
|
225
|
+
/**
|
|
226
|
+
*
|
|
227
|
+
* Compress specified file or dir in provided path. If
|
|
228
|
+
* Dir is compressed recursively
|
|
229
|
+
*
|
|
230
|
+
* @param path - path to zip
|
|
231
|
+
* @param dstFile - destination file name
|
|
232
|
+
*/
|
|
233
|
+
static zip(path: string, dstFs?: fs, dstFile?: string): Promise<IZipResult>;
|
|
234
|
+
/**
|
|
235
|
+
* Decompress given file to destination path
|
|
236
|
+
*
|
|
237
|
+
* @param path path to zip file
|
|
238
|
+
* @param destPath path to destination dir
|
|
239
|
+
*
|
|
240
|
+
* @returns path to unzipped file
|
|
241
|
+
*/
|
|
242
|
+
static unzip(srcPath: string, destPath?: string, dstFs?: fs): Promise<string>;
|
|
243
|
+
/**
|
|
244
|
+
*
|
|
245
|
+
* Checks if given path is dir
|
|
246
|
+
*
|
|
247
|
+
* @param path path to check
|
|
248
|
+
*/
|
|
249
|
+
static isDir(path: string): Promise<boolean>;
|
|
169
250
|
}
|
|
170
251
|
/**
|
|
171
252
|
* File information service, obtain file props, metadata etc.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;AACA,OAAO,EAAE,YAAY,EAAM,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/interfaces.js
CHANGED
|
@@ -3,7 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FileHasher = exports.FileInfoService = exports.fs = void 0;
|
|
4
4
|
/* eslint-disable security/detect-non-literal-fs-filename */
|
|
5
5
|
const di_1 = require("@spinajs/di");
|
|
6
|
+
const exceptions_1 = require("@spinajs/exceptions");
|
|
6
7
|
const uuid_1 = require("uuid");
|
|
8
|
+
function uriToFs(path) {
|
|
9
|
+
const reg = /^(fs+:\/\/)+(.+)$/gm;
|
|
10
|
+
if (!reg.test(path)) {
|
|
11
|
+
throw new exceptions_1.InvalidArgument(`path is not valid filesystem URI`);
|
|
12
|
+
}
|
|
13
|
+
const args = reg.exec(path)[2].split('/');
|
|
14
|
+
const fsName = args[0];
|
|
15
|
+
const fPath = args[1];
|
|
16
|
+
const f = di_1.DI.resolve('__file_provider__', [fsName]);
|
|
17
|
+
if (!f) {
|
|
18
|
+
throw new exceptions_1.IOFail(`Filesystem ${fsName} not registered, check your fs configuration !`);
|
|
19
|
+
}
|
|
20
|
+
return [f, fPath];
|
|
21
|
+
}
|
|
7
22
|
class fs extends di_1.AsyncService {
|
|
8
23
|
get ServiceName() {
|
|
9
24
|
return this.Name;
|
|
@@ -14,12 +29,12 @@ class fs extends di_1.AsyncService {
|
|
|
14
29
|
return this.Name === creationOptions[0].name;
|
|
15
30
|
}
|
|
16
31
|
/**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
32
|
+
*
|
|
33
|
+
* Returns hash of file
|
|
34
|
+
*
|
|
35
|
+
* @param srcPath file to calculate hash
|
|
36
|
+
* @param algo optional hash alghoritm, default is md5
|
|
37
|
+
*/
|
|
23
38
|
async hash(path, algo) {
|
|
24
39
|
const hasher = di_1.DI.resolve(FileHasher, [algo]);
|
|
25
40
|
return hasher.hash(this.resolvePath(path));
|
|
@@ -27,6 +42,161 @@ class fs extends di_1.AsyncService {
|
|
|
27
42
|
tmpname() {
|
|
28
43
|
return (0, uuid_1.v4)();
|
|
29
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* -------------------------------------------------------------------------
|
|
47
|
+
*
|
|
48
|
+
* STATIC METHODS
|
|
49
|
+
*
|
|
50
|
+
* -------------------------------------------------------------------------
|
|
51
|
+
*/
|
|
52
|
+
/**
|
|
53
|
+
* Downloads file to local storage and returns path to it.
|
|
54
|
+
* If used on local storage provider eg. hard drive it only returns full path to file
|
|
55
|
+
*
|
|
56
|
+
* On remote storage provivers eg. amazon s3 - it tries to download it to local disk first and returns
|
|
57
|
+
* full path.
|
|
58
|
+
*
|
|
59
|
+
* Returns local path to file
|
|
60
|
+
*
|
|
61
|
+
* @param path path to download
|
|
62
|
+
*/
|
|
63
|
+
static download(path) {
|
|
64
|
+
const [fs, p] = uriToFs(path);
|
|
65
|
+
return fs.download(p);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Copies local file into fs
|
|
69
|
+
*
|
|
70
|
+
* @param srcPath source path ( full absolute path eg. file from local disk )
|
|
71
|
+
* @param destPath dest path ( relative to base path of provider )
|
|
72
|
+
*/
|
|
73
|
+
static upload(srcPath, destPath) {
|
|
74
|
+
const [fs, p] = uriToFs(destPath);
|
|
75
|
+
return fs.upload(srcPath, p);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
*
|
|
79
|
+
* Returns hash of file
|
|
80
|
+
*
|
|
81
|
+
* @param srcPath file to calculate hash
|
|
82
|
+
* @param algo optional hash alghoritm, default is md5
|
|
83
|
+
*/
|
|
84
|
+
static hash(path, algo) {
|
|
85
|
+
const [fs, p] = uriToFs(path);
|
|
86
|
+
return fs.hash(p, algo);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
*
|
|
90
|
+
* Returns full LOCAL path to file
|
|
91
|
+
*
|
|
92
|
+
* @param path path to resolve
|
|
93
|
+
*/
|
|
94
|
+
static resolvePath(path) {
|
|
95
|
+
const [fs, p] = uriToFs(path);
|
|
96
|
+
return fs.resolvePath(p);
|
|
97
|
+
}
|
|
98
|
+
static read(path, encoding) {
|
|
99
|
+
const [fs, p] = uriToFs(path);
|
|
100
|
+
return fs.read(p, encoding);
|
|
101
|
+
}
|
|
102
|
+
static readStream(path, encoding) {
|
|
103
|
+
const [fs, p] = uriToFs(path);
|
|
104
|
+
return fs.readStream(p, encoding);
|
|
105
|
+
}
|
|
106
|
+
static write(path, data, encoding) {
|
|
107
|
+
const [fs, p] = uriToFs(path);
|
|
108
|
+
return fs.write(p, data, encoding);
|
|
109
|
+
}
|
|
110
|
+
static writeStream(path, readStream, encoding) {
|
|
111
|
+
const [fs, p] = uriToFs(path);
|
|
112
|
+
return fs.writeStream(p, readStream, encoding);
|
|
113
|
+
}
|
|
114
|
+
static exists(path) {
|
|
115
|
+
const [fs, p] = uriToFs(path);
|
|
116
|
+
return fs.exists(p);
|
|
117
|
+
}
|
|
118
|
+
static dirExists(path) {
|
|
119
|
+
const [fs, p] = uriToFs(path);
|
|
120
|
+
return fs.dirExists(p);
|
|
121
|
+
}
|
|
122
|
+
static copy(path, dest, dstFs) {
|
|
123
|
+
const [fs, p] = uriToFs(path);
|
|
124
|
+
const [dFs, dP] = uriToFs(dest);
|
|
125
|
+
return fs.copy(p, dP, dFs ?? dstFs);
|
|
126
|
+
}
|
|
127
|
+
static move(oldPath, newPath, dstFs) {
|
|
128
|
+
const [fs, p] = uriToFs(oldPath);
|
|
129
|
+
const [dFs, dP] = uriToFs(newPath);
|
|
130
|
+
return fs.move(p, dP, dFs ?? dstFs);
|
|
131
|
+
}
|
|
132
|
+
static rename(oldPath, newPath) {
|
|
133
|
+
const [fs, p] = uriToFs(oldPath);
|
|
134
|
+
const [, p2] = uriToFs(newPath);
|
|
135
|
+
return fs.rename(p, p2);
|
|
136
|
+
}
|
|
137
|
+
static rm(path) {
|
|
138
|
+
const [fs, p] = uriToFs(path);
|
|
139
|
+
return fs.rm(p);
|
|
140
|
+
}
|
|
141
|
+
static mkdir(path) {
|
|
142
|
+
const [fs, p] = uriToFs(path);
|
|
143
|
+
return fs.mkdir(p);
|
|
144
|
+
}
|
|
145
|
+
static stat(path) {
|
|
146
|
+
const [fs, p] = uriToFs(path);
|
|
147
|
+
return fs.stat(p);
|
|
148
|
+
}
|
|
149
|
+
static list(path) {
|
|
150
|
+
const [fs, p] = uriToFs(path);
|
|
151
|
+
return fs.list(p);
|
|
152
|
+
}
|
|
153
|
+
static tmppath(fs) {
|
|
154
|
+
const f = di_1.DI.resolve('__file_provider__', [fs]);
|
|
155
|
+
if (!f) {
|
|
156
|
+
throw new exceptions_1.IOFail(`Filesystem ${fs} not exists, check your configuration`);
|
|
157
|
+
}
|
|
158
|
+
return f.tmppath();
|
|
159
|
+
}
|
|
160
|
+
static append(path, data, encoding) {
|
|
161
|
+
const [fs, p] = uriToFs(path);
|
|
162
|
+
return fs.append(p, data, encoding);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
*
|
|
166
|
+
* Compress specified file or dir in provided path. If
|
|
167
|
+
* Dir is compressed recursively
|
|
168
|
+
*
|
|
169
|
+
* @param path - path to zip
|
|
170
|
+
* @param dstFile - destination file name
|
|
171
|
+
*/
|
|
172
|
+
static zip(path, dstFs, dstFile) {
|
|
173
|
+
const [fs, p] = uriToFs(path);
|
|
174
|
+
const [dFs, fP] = uriToFs(dstFile);
|
|
175
|
+
return fs.zip(p, dFs ?? dstFs, fP);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Decompress given file to destination path
|
|
179
|
+
*
|
|
180
|
+
* @param path path to zip file
|
|
181
|
+
* @param destPath path to destination dir
|
|
182
|
+
*
|
|
183
|
+
* @returns path to unzipped file
|
|
184
|
+
*/
|
|
185
|
+
static unzip(srcPath, destPath, dstFs) {
|
|
186
|
+
const [fs, p] = uriToFs(srcPath);
|
|
187
|
+
const [dFs, fP] = uriToFs(destPath);
|
|
188
|
+
return fs.unzip(p, fP, dFs ?? dstFs);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
*
|
|
192
|
+
* Checks if given path is dir
|
|
193
|
+
*
|
|
194
|
+
* @param path path to check
|
|
195
|
+
*/
|
|
196
|
+
static isDir(path) {
|
|
197
|
+
const [fs, p] = uriToFs(path);
|
|
198
|
+
return fs.isDir(p);
|
|
199
|
+
}
|
|
30
200
|
}
|
|
31
201
|
exports.fs = fs;
|
|
32
202
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC5D,oCAAiF;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/interfaces.d.ts
CHANGED
|
@@ -110,12 +110,12 @@ export declare abstract class fs extends AsyncService implements IMappableServic
|
|
|
110
110
|
*/
|
|
111
111
|
abstract upload(srcPath: string, destPath?: string): Promise<void>;
|
|
112
112
|
/**
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
113
|
+
*
|
|
114
|
+
* Returns hash of file
|
|
115
|
+
*
|
|
116
|
+
* @param srcPath file to calculate hash
|
|
117
|
+
* @param algo optional hash alghoritm, default is md5
|
|
118
|
+
*/
|
|
119
119
|
hash(path: string, algo?: string): Promise<string>;
|
|
120
120
|
/**
|
|
121
121
|
*
|
|
@@ -166,6 +166,87 @@ export declare abstract class fs extends AsyncService implements IMappableServic
|
|
|
166
166
|
*/
|
|
167
167
|
abstract isDir(path: string): Promise<boolean>;
|
|
168
168
|
tmpname(): string;
|
|
169
|
+
/**
|
|
170
|
+
* -------------------------------------------------------------------------
|
|
171
|
+
*
|
|
172
|
+
* STATIC METHODS
|
|
173
|
+
*
|
|
174
|
+
* -------------------------------------------------------------------------
|
|
175
|
+
*/
|
|
176
|
+
/**
|
|
177
|
+
* Downloads file to local storage and returns path to it.
|
|
178
|
+
* If used on local storage provider eg. hard drive it only returns full path to file
|
|
179
|
+
*
|
|
180
|
+
* On remote storage provivers eg. amazon s3 - it tries to download it to local disk first and returns
|
|
181
|
+
* full path.
|
|
182
|
+
*
|
|
183
|
+
* Returns local path to file
|
|
184
|
+
*
|
|
185
|
+
* @param path path to download
|
|
186
|
+
*/
|
|
187
|
+
static download(path: string): Promise<string>;
|
|
188
|
+
/**
|
|
189
|
+
* Copies local file into fs
|
|
190
|
+
*
|
|
191
|
+
* @param srcPath source path ( full absolute path eg. file from local disk )
|
|
192
|
+
* @param destPath dest path ( relative to base path of provider )
|
|
193
|
+
*/
|
|
194
|
+
static upload(srcPath: string, destPath?: string): Promise<void>;
|
|
195
|
+
/**
|
|
196
|
+
*
|
|
197
|
+
* Returns hash of file
|
|
198
|
+
*
|
|
199
|
+
* @param srcPath file to calculate hash
|
|
200
|
+
* @param algo optional hash alghoritm, default is md5
|
|
201
|
+
*/
|
|
202
|
+
static hash(path: string, algo?: string): Promise<string>;
|
|
203
|
+
/**
|
|
204
|
+
*
|
|
205
|
+
* Returns full LOCAL path to file
|
|
206
|
+
*
|
|
207
|
+
* @param path path to resolve
|
|
208
|
+
*/
|
|
209
|
+
static resolvePath(path: string): string;
|
|
210
|
+
static read(path: string, encoding?: BufferEncoding): Promise<string | Buffer>;
|
|
211
|
+
static readStream(path: string, encoding?: BufferEncoding): Promise<NodeJS.ReadableStream>;
|
|
212
|
+
static write(path: string, data: string | Uint8Array, encoding?: BufferEncoding): Promise<void>;
|
|
213
|
+
static writeStream(path: string, encoding?: BufferEncoding): Promise<WriteStream | PassThrough>;
|
|
214
|
+
static exists(path: string): Promise<boolean>;
|
|
215
|
+
static dirExists(path: string): Promise<boolean>;
|
|
216
|
+
static copy(path: string, dest: string, dstFs?: fs): Promise<void>;
|
|
217
|
+
static move(oldPath: string, newPath: string, dstFs?: fs): Promise<void>;
|
|
218
|
+
static rename(oldPath: string, newPath: string): Promise<void>;
|
|
219
|
+
static rm(path: string): Promise<void>;
|
|
220
|
+
static mkdir(path: string): Promise<void>;
|
|
221
|
+
static stat(path: string): Promise<IStat>;
|
|
222
|
+
static list(path: string): Promise<string[]>;
|
|
223
|
+
static tmppath(fs: string): string;
|
|
224
|
+
static append(path: string, data: string | Uint8Array, encoding?: BufferEncoding): Promise<void>;
|
|
225
|
+
/**
|
|
226
|
+
*
|
|
227
|
+
* Compress specified file or dir in provided path. If
|
|
228
|
+
* Dir is compressed recursively
|
|
229
|
+
*
|
|
230
|
+
* @param path - path to zip
|
|
231
|
+
* @param dstFile - destination file name
|
|
232
|
+
*/
|
|
233
|
+
static zip(path: string, dstFs?: fs, dstFile?: string): Promise<IZipResult>;
|
|
234
|
+
/**
|
|
235
|
+
* Decompress given file to destination path
|
|
236
|
+
*
|
|
237
|
+
* @param path path to zip file
|
|
238
|
+
* @param destPath path to destination dir
|
|
239
|
+
*
|
|
240
|
+
* @returns path to unzipped file
|
|
241
|
+
*/
|
|
242
|
+
static unzip(srcPath: string, destPath?: string, dstFs?: fs): Promise<string>;
|
|
243
|
+
/**
|
|
244
|
+
*
|
|
245
|
+
* Checks if given path is dir
|
|
246
|
+
*
|
|
247
|
+
* @param path path to check
|
|
248
|
+
*/
|
|
249
|
+
static isDir(path: string): Promise<boolean>;
|
|
169
250
|
}
|
|
170
251
|
/**
|
|
171
252
|
* File information service, obtain file props, metadata etc.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;AACA,OAAO,EAAE,YAAY,EAAM,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/interfaces.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
/* eslint-disable security/detect-non-literal-fs-filename */
|
|
2
2
|
import { AsyncService, DI } from '@spinajs/di';
|
|
3
|
+
import { InvalidArgument, IOFail } from '@spinajs/exceptions';
|
|
3
4
|
import { v4 as uuidv4 } from 'uuid';
|
|
5
|
+
function uriToFs(path) {
|
|
6
|
+
const reg = /^(fs+:\/\/)+(.+)$/gm;
|
|
7
|
+
if (!reg.test(path)) {
|
|
8
|
+
throw new InvalidArgument(`path is not valid filesystem URI`);
|
|
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];
|
|
18
|
+
}
|
|
4
19
|
export class fs extends AsyncService {
|
|
5
20
|
get ServiceName() {
|
|
6
21
|
return this.Name;
|
|
@@ -11,12 +26,12 @@ export class fs extends AsyncService {
|
|
|
11
26
|
return this.Name === creationOptions[0].name;
|
|
12
27
|
}
|
|
13
28
|
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
29
|
+
*
|
|
30
|
+
* Returns hash of file
|
|
31
|
+
*
|
|
32
|
+
* @param srcPath file to calculate hash
|
|
33
|
+
* @param algo optional hash alghoritm, default is md5
|
|
34
|
+
*/
|
|
20
35
|
async hash(path, algo) {
|
|
21
36
|
const hasher = DI.resolve(FileHasher, [algo]);
|
|
22
37
|
return hasher.hash(this.resolvePath(path));
|
|
@@ -24,6 +39,161 @@ export class fs extends AsyncService {
|
|
|
24
39
|
tmpname() {
|
|
25
40
|
return uuidv4();
|
|
26
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* -------------------------------------------------------------------------
|
|
44
|
+
*
|
|
45
|
+
* STATIC METHODS
|
|
46
|
+
*
|
|
47
|
+
* -------------------------------------------------------------------------
|
|
48
|
+
*/
|
|
49
|
+
/**
|
|
50
|
+
* Downloads file to local storage and returns path to it.
|
|
51
|
+
* If used on local storage provider eg. hard drive it only returns full path to file
|
|
52
|
+
*
|
|
53
|
+
* On remote storage provivers eg. amazon s3 - it tries to download it to local disk first and returns
|
|
54
|
+
* full path.
|
|
55
|
+
*
|
|
56
|
+
* Returns local path to file
|
|
57
|
+
*
|
|
58
|
+
* @param path path to download
|
|
59
|
+
*/
|
|
60
|
+
static download(path) {
|
|
61
|
+
const [fs, p] = uriToFs(path);
|
|
62
|
+
return fs.download(p);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Copies local file into fs
|
|
66
|
+
*
|
|
67
|
+
* @param srcPath source path ( full absolute path eg. file from local disk )
|
|
68
|
+
* @param destPath dest path ( relative to base path of provider )
|
|
69
|
+
*/
|
|
70
|
+
static upload(srcPath, destPath) {
|
|
71
|
+
const [fs, p] = uriToFs(destPath);
|
|
72
|
+
return fs.upload(srcPath, p);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
*
|
|
76
|
+
* Returns hash of file
|
|
77
|
+
*
|
|
78
|
+
* @param srcPath file to calculate hash
|
|
79
|
+
* @param algo optional hash alghoritm, default is md5
|
|
80
|
+
*/
|
|
81
|
+
static hash(path, algo) {
|
|
82
|
+
const [fs, p] = uriToFs(path);
|
|
83
|
+
return fs.hash(p, algo);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
*
|
|
87
|
+
* Returns full LOCAL path to file
|
|
88
|
+
*
|
|
89
|
+
* @param path path to resolve
|
|
90
|
+
*/
|
|
91
|
+
static resolvePath(path) {
|
|
92
|
+
const [fs, p] = uriToFs(path);
|
|
93
|
+
return fs.resolvePath(p);
|
|
94
|
+
}
|
|
95
|
+
static read(path, encoding) {
|
|
96
|
+
const [fs, p] = uriToFs(path);
|
|
97
|
+
return fs.read(p, encoding);
|
|
98
|
+
}
|
|
99
|
+
static readStream(path, encoding) {
|
|
100
|
+
const [fs, p] = uriToFs(path);
|
|
101
|
+
return fs.readStream(p, encoding);
|
|
102
|
+
}
|
|
103
|
+
static write(path, data, encoding) {
|
|
104
|
+
const [fs, p] = uriToFs(path);
|
|
105
|
+
return fs.write(p, data, encoding);
|
|
106
|
+
}
|
|
107
|
+
static writeStream(path, readStream, encoding) {
|
|
108
|
+
const [fs, p] = uriToFs(path);
|
|
109
|
+
return fs.writeStream(p, readStream, encoding);
|
|
110
|
+
}
|
|
111
|
+
static exists(path) {
|
|
112
|
+
const [fs, p] = uriToFs(path);
|
|
113
|
+
return fs.exists(p);
|
|
114
|
+
}
|
|
115
|
+
static dirExists(path) {
|
|
116
|
+
const [fs, p] = uriToFs(path);
|
|
117
|
+
return fs.dirExists(p);
|
|
118
|
+
}
|
|
119
|
+
static copy(path, dest, dstFs) {
|
|
120
|
+
const [fs, p] = uriToFs(path);
|
|
121
|
+
const [dFs, dP] = uriToFs(dest);
|
|
122
|
+
return fs.copy(p, dP, dFs ?? dstFs);
|
|
123
|
+
}
|
|
124
|
+
static move(oldPath, newPath, dstFs) {
|
|
125
|
+
const [fs, p] = uriToFs(oldPath);
|
|
126
|
+
const [dFs, dP] = uriToFs(newPath);
|
|
127
|
+
return fs.move(p, dP, dFs ?? dstFs);
|
|
128
|
+
}
|
|
129
|
+
static rename(oldPath, newPath) {
|
|
130
|
+
const [fs, p] = uriToFs(oldPath);
|
|
131
|
+
const [, p2] = uriToFs(newPath);
|
|
132
|
+
return fs.rename(p, p2);
|
|
133
|
+
}
|
|
134
|
+
static rm(path) {
|
|
135
|
+
const [fs, p] = uriToFs(path);
|
|
136
|
+
return fs.rm(p);
|
|
137
|
+
}
|
|
138
|
+
static mkdir(path) {
|
|
139
|
+
const [fs, p] = uriToFs(path);
|
|
140
|
+
return fs.mkdir(p);
|
|
141
|
+
}
|
|
142
|
+
static stat(path) {
|
|
143
|
+
const [fs, p] = uriToFs(path);
|
|
144
|
+
return fs.stat(p);
|
|
145
|
+
}
|
|
146
|
+
static list(path) {
|
|
147
|
+
const [fs, p] = uriToFs(path);
|
|
148
|
+
return fs.list(p);
|
|
149
|
+
}
|
|
150
|
+
static tmppath(fs) {
|
|
151
|
+
const f = DI.resolve('__file_provider__', [fs]);
|
|
152
|
+
if (!f) {
|
|
153
|
+
throw new IOFail(`Filesystem ${fs} not exists, check your configuration`);
|
|
154
|
+
}
|
|
155
|
+
return f.tmppath();
|
|
156
|
+
}
|
|
157
|
+
static append(path, data, encoding) {
|
|
158
|
+
const [fs, p] = uriToFs(path);
|
|
159
|
+
return fs.append(p, data, encoding);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
*
|
|
163
|
+
* Compress specified file or dir in provided path. If
|
|
164
|
+
* Dir is compressed recursively
|
|
165
|
+
*
|
|
166
|
+
* @param path - path to zip
|
|
167
|
+
* @param dstFile - destination file name
|
|
168
|
+
*/
|
|
169
|
+
static zip(path, dstFs, dstFile) {
|
|
170
|
+
const [fs, p] = uriToFs(path);
|
|
171
|
+
const [dFs, fP] = uriToFs(dstFile);
|
|
172
|
+
return fs.zip(p, dFs ?? dstFs, fP);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Decompress given file to destination path
|
|
176
|
+
*
|
|
177
|
+
* @param path path to zip file
|
|
178
|
+
* @param destPath path to destination dir
|
|
179
|
+
*
|
|
180
|
+
* @returns path to unzipped file
|
|
181
|
+
*/
|
|
182
|
+
static unzip(srcPath, destPath, dstFs) {
|
|
183
|
+
const [fs, p] = uriToFs(srcPath);
|
|
184
|
+
const [dFs, fP] = uriToFs(destPath);
|
|
185
|
+
return fs.unzip(p, fP, dFs ?? dstFs);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
*
|
|
189
|
+
* Checks if given path is dir
|
|
190
|
+
*
|
|
191
|
+
* @param path path to check
|
|
192
|
+
*/
|
|
193
|
+
static isDir(path) {
|
|
194
|
+
const [fs, p] = uriToFs(path);
|
|
195
|
+
return fs.isDir(p);
|
|
196
|
+
}
|
|
27
197
|
}
|
|
28
198
|
/**
|
|
29
199
|
* File information service, obtain file props, metadata etc.
|