@ostro/filesystem 1.0.4 → 2.0.0-alpha.2
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/adapter/CoreAdapter.js +164 -57
- package/adapter/CoreAdapter.js.map +1 -0
- package/adapter/azure.js +93 -56
- package/adapter/azure.js.map +1 -0
- package/adapter/local.js +136 -66
- package/adapter/local.js.map +1 -0
- package/adapter/s3.js +102 -70
- package/adapter/s3.js.map +1 -0
- package/callbackHandler.js +93 -23
- package/callbackHandler.js.map +1 -0
- package/clients/azure.js +43 -13
- package/clients/azure.js.map +1 -0
- package/clients/s3.js +40 -9
- package/clients/s3.js.map +1 -0
- package/directoryCreateException.js +27 -5
- package/directoryCreateException.js.map +1 -0
- package/fileDeleteException.js +28 -4
- package/fileDeleteException.js.map +1 -0
- package/fileNotFoundException.js +27 -5
- package/fileNotFoundException.js.map +1 -0
- package/fileUploadException.js +28 -5
- package/fileUploadException.js.map +1 -0
- package/filesystem.js +388 -193
- package/filesystem.js.map +1 -0
- package/filesystemAdapter.js +134 -52
- package/filesystemAdapter.js.map +1 -0
- package/filesystemManager.js +140 -57
- package/filesystemManager.js.map +1 -0
- package/filesystemServiceProvider.js +49 -21
- package/filesystemServiceProvider.js.map +1 -0
- package/invalidArgumentException.js +26 -4
- package/invalidArgumentException.js.map +1 -0
- package/package.json +24 -10
- package/types/adapter/CoreAdapter.d.ts +139 -0
- package/types/adapter/CoreAdapter.d.ts.map +1 -0
- package/types/adapter/azure.d.ts +36 -0
- package/types/adapter/azure.d.ts.map +1 -0
- package/types/adapter/local.d.ts +78 -0
- package/types/adapter/local.d.ts.map +1 -0
- package/types/adapter/s3.d.ts +36 -0
- package/types/adapter/s3.d.ts.map +1 -0
- package/types/callbackHandler.d.ts +69 -0
- package/types/callbackHandler.d.ts.map +1 -0
- package/types/clients/azure.d.ts +32 -0
- package/types/clients/azure.d.ts.map +1 -0
- package/types/clients/s3.d.ts +27 -0
- package/types/clients/s3.d.ts.map +1 -0
- package/types/directoryCreateException.d.ts +18 -0
- package/types/directoryCreateException.d.ts.map +1 -0
- package/types/fileDeleteException.d.ts +19 -0
- package/types/fileDeleteException.d.ts.map +1 -0
- package/types/fileNotFoundException.d.ts +18 -0
- package/types/fileNotFoundException.d.ts.map +1 -0
- package/types/fileUploadException.d.ts +18 -0
- package/types/fileUploadException.d.ts.map +1 -0
- package/types/filesystem.d.ts +300 -0
- package/types/filesystem.d.ts.map +1 -0
- package/types/filesystemAdapter.d.ts +91 -0
- package/types/filesystemAdapter.d.ts.map +1 -0
- package/types/filesystemManager.d.ts +93 -0
- package/types/filesystemManager.d.ts.map +1 -0
- package/types/filesystemServiceProvider.d.ts +40 -0
- package/types/filesystemServiceProvider.d.ts.map +1 -0
- package/types/invalidArgumentException.d.ts +17 -0
- package/types/invalidArgumentException.d.ts.map +1 -0
- package/.github/workflows/npm-publish.yml +0 -22
package/adapter/local.js
CHANGED
|
@@ -1,31 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
7
|
+
const CoreAdapter_1 = __importDefault(require("./CoreAdapter"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const uuid_1 = require("uuid");
|
|
10
|
+
const kHandler = Symbol('handler');
|
|
11
|
+
/**
|
|
12
|
+
* Class Local.
|
|
13
|
+
*/
|
|
14
|
+
class Local extends CoreAdapter_1.default {
|
|
15
|
+
[kHandler];
|
|
16
|
+
/**
|
|
17
|
+
* Create a new instance.
|
|
18
|
+
*
|
|
19
|
+
* @param root - Base root directory.
|
|
20
|
+
* @param $config - Configuration object.
|
|
21
|
+
*/
|
|
8
22
|
constructor(root = '', $config) {
|
|
9
|
-
super()
|
|
10
|
-
this.setPathPrefix(root)
|
|
11
|
-
this.setConfig($config)
|
|
12
|
-
this[kHandler] = (typeof $config.handler == 'function' ? new $config.handler : (typeof $config.handler == 'object' ? $config.handler : {}))
|
|
23
|
+
super();
|
|
24
|
+
this.setPathPrefix(root);
|
|
25
|
+
this.setConfig($config);
|
|
26
|
+
this[kHandler] = (typeof $config.handler == 'function' ? new $config.handler() : (typeof $config.handler == 'object' ? $config.handler : {}));
|
|
13
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* move method.
|
|
30
|
+
*
|
|
31
|
+
* @param path - Source path.
|
|
32
|
+
* @param newpath - Destination path.
|
|
33
|
+
* @param callback - Optional completion callback.
|
|
34
|
+
* @returns Promise if no callback, or void.
|
|
35
|
+
*/
|
|
14
36
|
move(path, newpath, callback) {
|
|
15
|
-
if (callback)
|
|
16
|
-
return
|
|
37
|
+
if (callback) {
|
|
38
|
+
return fs_extra_1.default.move(path, newpath, {
|
|
17
39
|
overwrite: true
|
|
18
|
-
}, function(err, res) {
|
|
19
|
-
callback(err, res, newpath)
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
|
|
40
|
+
}, function (err, res) {
|
|
41
|
+
callback(err, res, newpath);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return fs_extra_1.default.move(path, newpath, {
|
|
23
46
|
overwrite: true
|
|
24
|
-
})
|
|
47
|
+
});
|
|
48
|
+
}
|
|
25
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* delete method.
|
|
52
|
+
*
|
|
53
|
+
* @param $path - File or directory path to delete.
|
|
54
|
+
* @param options - Deletion options.
|
|
55
|
+
* @param callback - Completion callback.
|
|
56
|
+
*/
|
|
26
57
|
delete($path, options = {}, callback) {
|
|
27
|
-
|
|
28
|
-
|
|
58
|
+
const location = this.applyPathPrefix($path);
|
|
59
|
+
fs_extra_1.default.remove(location, (error) => {
|
|
29
60
|
if (typeof this[kHandler].delete == 'function') {
|
|
30
61
|
this[kHandler].delete({
|
|
31
62
|
basePath: location,
|
|
@@ -33,30 +64,46 @@ class Local extends CoreAdapter {
|
|
|
33
64
|
options,
|
|
34
65
|
callback,
|
|
35
66
|
error,
|
|
36
|
-
})
|
|
37
|
-
}
|
|
38
|
-
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
callback(error, true, location);
|
|
39
71
|
}
|
|
40
72
|
});
|
|
41
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* createDir method.
|
|
76
|
+
*
|
|
77
|
+
* @param $path - Directory path to create.
|
|
78
|
+
* @param options - Directory options.
|
|
79
|
+
* @param callback - Completion callback.
|
|
80
|
+
*/
|
|
42
81
|
createDir($path, options = {}, callback) {
|
|
43
|
-
|
|
44
|
-
|
|
82
|
+
const location = this.applyPathPrefix($path);
|
|
83
|
+
fs_extra_1.default.mkdir(location, { recursive: true }, (error) => {
|
|
45
84
|
if (typeof this[kHandler].createDir == 'function') {
|
|
46
85
|
this[kHandler].createDir({
|
|
47
86
|
path: $path,
|
|
48
87
|
options,
|
|
49
88
|
callback,
|
|
50
89
|
error,
|
|
51
|
-
})
|
|
52
|
-
}
|
|
53
|
-
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
callback(error, true, location);
|
|
54
94
|
}
|
|
55
95
|
});
|
|
56
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* has method.
|
|
99
|
+
*
|
|
100
|
+
* @param $path - File path to check.
|
|
101
|
+
* @param options - Access options.
|
|
102
|
+
* @param callback - Result callback.
|
|
103
|
+
*/
|
|
57
104
|
has($path, options = { constants: 'F_OK' }, callback) {
|
|
58
|
-
|
|
59
|
-
|
|
105
|
+
const location = this.applyPathPrefix($path);
|
|
106
|
+
fs_extra_1.default.access(location, fs_extra_1.default.constants[options.constants], (error) => {
|
|
60
107
|
if (typeof this[kHandler].has == 'function') {
|
|
61
108
|
this[kHandler].has({
|
|
62
109
|
basePath: location,
|
|
@@ -64,55 +111,66 @@ class Local extends CoreAdapter {
|
|
|
64
111
|
options,
|
|
65
112
|
callback,
|
|
66
113
|
error,
|
|
67
|
-
})
|
|
68
|
-
}
|
|
69
|
-
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
callback(error, true);
|
|
70
118
|
}
|
|
71
119
|
});
|
|
72
120
|
}
|
|
73
|
-
|
|
121
|
+
/**
|
|
122
|
+
* write method.
|
|
123
|
+
*
|
|
124
|
+
* @param $path - File path to write to.
|
|
125
|
+
* @param $contents - Content to write.
|
|
126
|
+
* @param options - Write options.
|
|
127
|
+
* @param rest - Extra arguments including callback.
|
|
128
|
+
*/
|
|
74
129
|
write($path, $contents, options = {}, ...rest) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return path.join(location,v4())
|
|
130
|
+
const callback = Array.from(rest).find(arg => typeof arg == 'function');
|
|
131
|
+
const location = this.applyPathPrefix($path);
|
|
132
|
+
fs_extra_1.default.stat(location).then(res => {
|
|
133
|
+
if (res.isDirectory()) {
|
|
134
|
+
return path_1.default.join(location, (0, uuid_1.v4)());
|
|
81
135
|
}
|
|
82
|
-
return location
|
|
136
|
+
return location;
|
|
83
137
|
})
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
this.ensureDirectory(this.dirname(
|
|
87
|
-
|
|
138
|
+
.catch(() => location)
|
|
139
|
+
.then(loc => {
|
|
140
|
+
this.ensureDirectory(this.dirname(loc), () => {
|
|
141
|
+
fs_extra_1.default.writeFile(loc, $contents, (error, data) => {
|
|
88
142
|
if (typeof this[kHandler].write == 'function') {
|
|
89
143
|
this[kHandler].write({
|
|
90
|
-
basePath:
|
|
144
|
+
basePath: loc,
|
|
91
145
|
path: $path,
|
|
92
146
|
options,
|
|
93
147
|
callback,
|
|
94
148
|
error,
|
|
95
149
|
content: $contents
|
|
96
|
-
})
|
|
97
|
-
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
98
153
|
callback(error, {
|
|
99
154
|
'type': 'file',
|
|
100
155
|
'path': $path,
|
|
101
156
|
'message': 'File created successfully'
|
|
102
|
-
},
|
|
157
|
+
}, loc);
|
|
103
158
|
}
|
|
104
|
-
})
|
|
159
|
+
});
|
|
105
160
|
});
|
|
106
|
-
})
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
161
|
+
});
|
|
110
162
|
}
|
|
111
|
-
|
|
163
|
+
/**
|
|
164
|
+
* read method.
|
|
165
|
+
*
|
|
166
|
+
* @param $path - File path to read from.
|
|
167
|
+
* @param options - Read options.
|
|
168
|
+
* @param callback - Result callback.
|
|
169
|
+
*/
|
|
112
170
|
read($path, options = {}, callback) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
encoding: (this.getConfig()
|
|
171
|
+
const location = this.applyPathPrefix($path);
|
|
172
|
+
fs_extra_1.default.readFile(location, {
|
|
173
|
+
encoding: (this.getConfig()?.encoding || (options.encoding || 'utf-8'))
|
|
116
174
|
}, (error, data) => {
|
|
117
175
|
if (typeof this[kHandler].read == 'function') {
|
|
118
176
|
this[kHandler].read({
|
|
@@ -122,20 +180,32 @@ class Local extends CoreAdapter {
|
|
|
122
180
|
callback,
|
|
123
181
|
error,
|
|
124
182
|
response: data
|
|
125
|
-
})
|
|
126
|
-
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
127
186
|
callback(error, {
|
|
128
187
|
'type': 'file',
|
|
129
188
|
'path': $path,
|
|
130
189
|
'contents': data
|
|
131
|
-
}, location)
|
|
190
|
+
}, location);
|
|
132
191
|
}
|
|
133
192
|
});
|
|
134
|
-
|
|
135
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* global method.
|
|
196
|
+
*
|
|
197
|
+
* @param $path - Optional path.
|
|
198
|
+
* @param options - Optional options.
|
|
199
|
+
* @param callback - Optional callback.
|
|
200
|
+
*/
|
|
136
201
|
global($path, options = {}, callback) {
|
|
137
|
-
|
|
138
202
|
}
|
|
139
|
-
|
|
140
203
|
}
|
|
141
|
-
|
|
204
|
+
exports.default = Local;
|
|
205
|
+
//# sourceMappingURL=local.js.map
|
|
206
|
+
if (exports.default) {
|
|
207
|
+
const d = exports.default;
|
|
208
|
+
module.exports = d;
|
|
209
|
+
Object.assign(module.exports, exports);
|
|
210
|
+
module.exports.default = d;
|
|
211
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/adapter/local.ts"],"names":[],"mappings":"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"}
|
package/adapter/s3.js
CHANGED
|
@@ -1,84 +1,116 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const CoreAdapter_1 = __importDefault(require("./CoreAdapter"));
|
|
7
|
+
const kClient = Symbol('client');
|
|
8
|
+
const kHandler = Symbol('handler');
|
|
9
|
+
/**
|
|
10
|
+
* Class S3.
|
|
11
|
+
*/
|
|
12
|
+
class S3 extends CoreAdapter_1.default {
|
|
13
|
+
[kClient];
|
|
14
|
+
[kHandler];
|
|
15
|
+
/**
|
|
16
|
+
* Create a new instance.
|
|
17
|
+
*
|
|
18
|
+
* @param $client - S3 client instance.
|
|
19
|
+
* @param $config - Configuration options.
|
|
20
|
+
*/
|
|
9
21
|
constructor($client, $config) {
|
|
10
|
-
super()
|
|
22
|
+
super();
|
|
11
23
|
this[kClient] = $client;
|
|
12
|
-
this[kHandler] = typeof $config.handler == 'function' ? new $config.handler : typeof $config.handler == 'object' ? $config.handler : {};
|
|
13
|
-
this.setUrlPrefix(this[kClient].url)
|
|
24
|
+
this[kHandler] = typeof $config.handler == 'function' ? new $config.handler() : typeof $config.handler == 'object' ? $config.handler : {};
|
|
25
|
+
this.setUrlPrefix(this[kClient].url);
|
|
14
26
|
}
|
|
15
|
-
|
|
27
|
+
/**
|
|
28
|
+
* read method.
|
|
29
|
+
*
|
|
30
|
+
* @param $path - File path to read.
|
|
31
|
+
* @param options - Read options.
|
|
32
|
+
* @param callback - Completion callback.
|
|
33
|
+
*/
|
|
16
34
|
read($path, options = {}, callback) {
|
|
17
|
-
|
|
18
|
-
$path = $path.replaceAll('\\', '/')
|
|
19
|
-
if ($path.charAt(0) ==
|
|
20
|
-
$path = $path.substr(1)
|
|
35
|
+
const basePath = this.applyUrlPrefix();
|
|
36
|
+
$path = $path.replaceAll('\\', '/');
|
|
37
|
+
if ($path.charAt(0) == '/') {
|
|
38
|
+
$path = $path.substr(1);
|
|
21
39
|
}
|
|
22
40
|
this[kClient].getConnection().getObject({ Key: $path }).promise()
|
|
23
|
-
.then(response => ({ error: null, data: response.Body }))
|
|
24
|
-
.catch(error => Promise.resolve({ error, data: null }))
|
|
41
|
+
.then((response) => ({ error: null, data: response.Body }))
|
|
42
|
+
.catch((error) => Promise.resolve({ error, data: null }))
|
|
25
43
|
.then(({ error, data }) => {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
44
|
+
if (typeof this[kHandler].read == 'function') {
|
|
45
|
+
this[kHandler].read({
|
|
46
|
+
path: $path,
|
|
47
|
+
options,
|
|
48
|
+
callback,
|
|
49
|
+
error,
|
|
50
|
+
basePath,
|
|
51
|
+
contents: data
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
callback(error, function () {
|
|
56
|
+
return {
|
|
57
|
+
'type': 'file',
|
|
58
|
+
'path': $path,
|
|
59
|
+
'contents': (options.dataType == 'base64') ? data.toString('base64') : data.toString(),
|
|
60
|
+
};
|
|
61
|
+
}, basePath);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
45
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* write method.
|
|
67
|
+
*
|
|
68
|
+
* @param $path - Destination file path.
|
|
69
|
+
* @param data - File content to upload.
|
|
70
|
+
* @param options - Upload options.
|
|
71
|
+
* @param callback - Completion callback.
|
|
72
|
+
*/
|
|
46
73
|
write($path, data, options = {}, callback) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
$path = $path.substr(1)
|
|
74
|
+
$path = $path.replaceAll('\\', '/');
|
|
75
|
+
if ($path.charAt(0) == '/') {
|
|
76
|
+
$path = $path.substr(1);
|
|
51
77
|
}
|
|
52
|
-
|
|
78
|
+
const basePath = this.applyUrlPrefix();
|
|
53
79
|
this[kClient].getConnection().upload({
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
.
|
|
59
|
-
.catch(error => Promise.resolve({ error, response: null }))
|
|
80
|
+
Key: $path,
|
|
81
|
+
Body: data.toString('base64'),
|
|
82
|
+
}).promise()
|
|
83
|
+
.then((response) => ({ error: null, response }))
|
|
84
|
+
.catch((error) => Promise.resolve({ error, response: null }))
|
|
60
85
|
.then(({ error, response }) => {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
86
|
+
if (typeof this[kHandler].write == 'function') {
|
|
87
|
+
this[kHandler].write({
|
|
88
|
+
path: $path,
|
|
89
|
+
options,
|
|
90
|
+
callback,
|
|
91
|
+
error,
|
|
92
|
+
basePath,
|
|
93
|
+
response,
|
|
94
|
+
contents: data
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
callback(error, function () {
|
|
99
|
+
return {
|
|
100
|
+
'type': 'file',
|
|
101
|
+
'path': $path,
|
|
102
|
+
'message': 'File uploaded successfully'
|
|
103
|
+
};
|
|
104
|
+
}, basePath);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
81
107
|
}
|
|
82
|
-
|
|
83
108
|
}
|
|
84
|
-
|
|
109
|
+
exports.default = S3;
|
|
110
|
+
//# sourceMappingURL=s3.js.map
|
|
111
|
+
if (exports.default) {
|
|
112
|
+
const d = exports.default;
|
|
113
|
+
module.exports = d;
|
|
114
|
+
Object.assign(module.exports, exports);
|
|
115
|
+
module.exports.default = d;
|
|
116
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.js","sourceRoot":"","sources":["../../src/adapter/s3.ts"],"names":[],"mappings":"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"}
|
package/callbackHandler.js
CHANGED
|
@@ -1,49 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* Class FilesystemHandler.
|
|
5
|
+
*/
|
|
1
6
|
class FilesystemHandler {
|
|
7
|
+
/**
|
|
8
|
+
* exists method.
|
|
9
|
+
*
|
|
10
|
+
* @param error - Potential error.
|
|
11
|
+
* @param data - Existence check result.
|
|
12
|
+
* @param callback - Resolution callback.
|
|
13
|
+
* @param path - File path.
|
|
14
|
+
* @param options - Options object.
|
|
15
|
+
* @param basePath - Base path.
|
|
16
|
+
*/
|
|
2
17
|
exists(error, data, callback, path, options, basePath) {
|
|
3
18
|
if (error) {
|
|
4
|
-
callback(error)
|
|
5
|
-
}
|
|
6
|
-
|
|
19
|
+
callback(error);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
callback(data);
|
|
7
23
|
}
|
|
8
|
-
|
|
9
24
|
}
|
|
10
|
-
|
|
25
|
+
/**
|
|
26
|
+
* get method.
|
|
27
|
+
*
|
|
28
|
+
* @param error - Potential error.
|
|
29
|
+
* @param data - Retrieved data.
|
|
30
|
+
* @param callback - Resolution callback.
|
|
31
|
+
* @param path - File path.
|
|
32
|
+
* @param options - Options object.
|
|
33
|
+
* @param basePath - Base path.
|
|
34
|
+
*/
|
|
11
35
|
get(error, data, callback, path, options, basePath) {
|
|
12
36
|
if (error) {
|
|
13
|
-
callback(error)
|
|
14
|
-
}
|
|
15
|
-
|
|
37
|
+
callback(error);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
callback(data);
|
|
16
41
|
}
|
|
17
42
|
}
|
|
18
|
-
|
|
43
|
+
/**
|
|
44
|
+
* delete method.
|
|
45
|
+
*
|
|
46
|
+
* @param error - Potential error.
|
|
47
|
+
* @param data - Deletion result.
|
|
48
|
+
* @param callback - Resolution callback.
|
|
49
|
+
* @param path - File path.
|
|
50
|
+
* @param options - Options object.
|
|
51
|
+
* @param basePath - Base path.
|
|
52
|
+
*/
|
|
19
53
|
delete(error, data, callback, path, options, basePath) {
|
|
20
54
|
if (error) {
|
|
21
|
-
callback(error)
|
|
22
|
-
}
|
|
23
|
-
|
|
55
|
+
callback(error);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
callback(data);
|
|
24
59
|
}
|
|
25
60
|
}
|
|
26
|
-
|
|
61
|
+
/**
|
|
62
|
+
* put method.
|
|
63
|
+
*
|
|
64
|
+
* @param error - Potential error.
|
|
65
|
+
* @param data - Write result.
|
|
66
|
+
* @param callback - Resolution callback.
|
|
67
|
+
* @param path - File path.
|
|
68
|
+
* @param options - Options object.
|
|
69
|
+
* @param basePath - Base path.
|
|
70
|
+
*/
|
|
27
71
|
put(error, data, callback, path, options, basePath) {
|
|
28
72
|
if (error) {
|
|
29
|
-
callback(error)
|
|
30
|
-
}
|
|
31
|
-
|
|
73
|
+
callback(error);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
callback(data);
|
|
32
77
|
}
|
|
33
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* global method.
|
|
81
|
+
*
|
|
82
|
+
* @param error - Potential error.
|
|
83
|
+
* @param data - Global data.
|
|
84
|
+
* @param callback - Resolution callback.
|
|
85
|
+
* @param path - File path.
|
|
86
|
+
* @param options - Options object.
|
|
87
|
+
*/
|
|
34
88
|
global(error, data, callback, path, options) {
|
|
35
89
|
if (error) {
|
|
36
|
-
callback(error)
|
|
37
|
-
}
|
|
38
|
-
|
|
90
|
+
callback(error);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
callback(data);
|
|
39
94
|
}
|
|
40
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* createDir method.
|
|
98
|
+
*
|
|
99
|
+
* @param error - Potential error.
|
|
100
|
+
* @param data - Creation result.
|
|
101
|
+
* @param callback - Resolution callback.
|
|
102
|
+
*/
|
|
41
103
|
createDir(error, data, callback) {
|
|
42
104
|
if (error) {
|
|
43
|
-
callback(error)
|
|
44
|
-
}
|
|
45
|
-
|
|
105
|
+
callback(error);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
callback(true);
|
|
46
109
|
}
|
|
47
110
|
}
|
|
48
111
|
}
|
|
49
|
-
|
|
112
|
+
exports.default = FilesystemHandler;
|
|
113
|
+
//# sourceMappingURL=callbackHandler.js.map
|
|
114
|
+
if (exports.default) {
|
|
115
|
+
const d = exports.default;
|
|
116
|
+
module.exports = d;
|
|
117
|
+
Object.assign(module.exports, exports);
|
|
118
|
+
module.exports.default = d;
|
|
119
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callbackHandler.js","sourceRoot":"","sources":["../src/callbackHandler.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAM,iBAAiB;IACnB;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAc,EAAE,IAA0C,EAAE,QAA4B,EAAE,IAAa,EAAE,OAA6B,EAAE,QAAc;QACzJ,IAAI,KAAK,EAAE,CAAC;YACR,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,GAAG,CAAC,KAAc,EAAE,IAAS,EAAE,QAA4B,EAAE,IAAa,EAAE,OAA6B,EAAE,QAAc;QACrH,IAAI,KAAK,EAAE,CAAC;YACR,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAc,EAAE,IAAS,EAAE,QAA4B,EAAE,IAAa,EAAE,OAA6B,EAAE,QAAc;QACxH,IAAI,KAAK,EAAE,CAAC;YACR,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,GAAG,CAAC,KAAc,EAAE,IAAS,EAAE,QAA4B,EAAE,IAAa,EAAE,OAA6B,EAAE,QAAc;QACrH,IAAI,KAAK,EAAE,CAAC;YACR,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAc,EAAE,IAAS,EAAE,QAA4B,EAAE,IAAa,EAAE,OAA6B;QACxG,IAAI,KAAK,EAAE,CAAC;YACR,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,KAAc,EAAE,IAAS,EAAE,QAA4B;QAC7D,IAAI,KAAK,EAAE,CAAC;YACR,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACL,CAAC;CACJ;AAED,kBAAe,iBAAiB,CAAC"}
|