@travetto/model-file 7.0.0-rc.0 → 7.0.0-rc.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/package.json +7 -7
- package/src/service.ts +11 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@travetto/model-file",
|
|
3
|
-
"version": "7.0.0-rc.
|
|
3
|
+
"version": "7.0.0-rc.2",
|
|
4
4
|
"description": "File system backing for the travetto model module.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"datastore",
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"directory": "module/model-file"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@travetto/config": "^7.0.0-rc.
|
|
29
|
-
"@travetto/di": "^7.0.0-rc.
|
|
30
|
-
"@travetto/model": "^7.0.0-rc.
|
|
31
|
-
"@travetto/schema": "^7.0.0-rc.
|
|
28
|
+
"@travetto/config": "^7.0.0-rc.2",
|
|
29
|
+
"@travetto/di": "^7.0.0-rc.2",
|
|
30
|
+
"@travetto/model": "^7.0.0-rc.2",
|
|
31
|
+
"@travetto/schema": "^7.0.0-rc.2"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@travetto/cli": "^7.0.0-rc.
|
|
35
|
-
"@travetto/test": "^7.0.0-rc.
|
|
34
|
+
"@travetto/cli": "^7.0.0-rc.2",
|
|
35
|
+
"@travetto/test": "^7.0.0-rc.2"
|
|
36
36
|
},
|
|
37
37
|
"peerDependenciesMeta": {
|
|
38
38
|
"@travetto/cli": {
|
package/src/service.ts
CHANGED
|
@@ -34,7 +34,7 @@ export class FileModelConfig {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
const exists = (
|
|
37
|
+
const exists = (file: string): Promise<boolean> => fs.stat(file).then(() => true, () => false);
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* Standard file support
|
|
@@ -71,13 +71,13 @@ export class FileModelService implements ModelCrudSupport, ModelBlobSupport, Mod
|
|
|
71
71
|
if (id) {
|
|
72
72
|
resolved = path.resolve(resolved, id.replace(/^[/]/, '').substring(0, 3));
|
|
73
73
|
}
|
|
74
|
-
let
|
|
74
|
+
let folder = resolved;
|
|
75
75
|
if (id) {
|
|
76
76
|
resolved = path.resolve(resolved, `${id}${suffix}`);
|
|
77
|
-
|
|
77
|
+
folder = path.dirname(resolved);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
await fs.mkdir(
|
|
80
|
+
await fs.mkdir(folder, { recursive: true });
|
|
81
81
|
return resolved;
|
|
82
82
|
}
|
|
83
83
|
|
|
@@ -161,9 +161,9 @@ export class FileModelService implements ModelCrudSupport, ModelBlobSupport, Mod
|
|
|
161
161
|
for await (const [id] of FileModelService.scanFolder(await this.#resolveName(cls, '.json'), '.json')) {
|
|
162
162
|
try {
|
|
163
163
|
yield await this.get(cls, id);
|
|
164
|
-
} catch (
|
|
165
|
-
if (!(
|
|
166
|
-
throw
|
|
164
|
+
} catch (error) {
|
|
165
|
+
if (!(error instanceof NotFoundError)) {
|
|
166
|
+
throw error;
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
}
|
|
@@ -219,8 +219,8 @@ export class FileModelService implements ModelCrudSupport, ModelBlobSupport, Mod
|
|
|
219
219
|
let deleted = 0;
|
|
220
220
|
for await (const [_id, file] of FileModelService.scanFolder(await this.#resolveName(cls, '.json'), '.json')) {
|
|
221
221
|
try {
|
|
222
|
-
const
|
|
223
|
-
if (ModelExpiryUtil.getExpiryState(cls,
|
|
222
|
+
const item = await ModelCrudUtil.load(cls, await fs.readFile(file));
|
|
223
|
+
if (ModelExpiryUtil.getExpiryState(cls, item).expired) {
|
|
224
224
|
await fs.rm(file, { force: true });
|
|
225
225
|
deleted += 1;
|
|
226
226
|
}
|
|
@@ -231,8 +231,8 @@ export class FileModelService implements ModelCrudSupport, ModelBlobSupport, Mod
|
|
|
231
231
|
|
|
232
232
|
// Storage management
|
|
233
233
|
async createStorage(): Promise<void> {
|
|
234
|
-
const
|
|
235
|
-
await fs.mkdir(
|
|
234
|
+
const folder = path.resolve(this.config.folder, this.config.namespace);
|
|
235
|
+
await fs.mkdir(folder, { recursive: true });
|
|
236
236
|
}
|
|
237
237
|
|
|
238
238
|
async deleteStorage(): Promise<void> {
|