@e280/mammoth 0.1.0-10 → 0.1.0-11
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 +1 -1
- package/s/core/mammoth.ts +2 -9
- package/s/core/utils/cleanup.ts +14 -0
- package/s/core/utils/save.ts +9 -11
- package/x/core/mammoth.js +2 -8
- package/x/core/mammoth.js.map +1 -1
- package/x/core/utils/cleanup.d.ts +3 -0
- package/x/core/utils/cleanup.js +9 -0
- package/x/core/utils/cleanup.js.map +1 -0
- package/x/core/utils/save.js +7 -10
- package/x/core/utils/save.js.map +1 -1
package/package.json
CHANGED
package/s/core/mammoth.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {lane, queue} from "@e280/stz"
|
|
|
5
5
|
import {consts} from "./consts.js"
|
|
6
6
|
import {save} from "./utils/save.js"
|
|
7
7
|
import {Hash, Bucket} from "./types.js"
|
|
8
|
+
import {cleanup} from "./utils/cleanup.js"
|
|
8
9
|
import {Manifest} from "./utils/manifest.js"
|
|
9
10
|
import {randomId} from "./utils/random-id.js"
|
|
10
11
|
import {MemoryBucket} from "./memory-bucket.js"
|
|
@@ -69,14 +70,6 @@ export class Mammoth {
|
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
#cleanup = queue(
|
|
73
|
-
for await (const id of this.#manifest.getExpiredWipIds())
|
|
74
|
-
await this.#manifest.moveWipToTrash(id)
|
|
75
|
-
|
|
76
|
-
for await (const id of this.#manifest.listTrashIds()) {
|
|
77
|
-
await this.#bucket.delete(id)
|
|
78
|
-
await this.#manifest.dropTrashRecord(id)
|
|
79
|
-
}
|
|
80
|
-
}, consts.max_jobs)
|
|
73
|
+
#cleanup = queue(() => cleanup(this.#bucket, this.#manifest), consts.max_jobs)
|
|
81
74
|
}
|
|
82
75
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
|
|
2
|
+
import {Bucket} from "../types.js"
|
|
3
|
+
import {Manifest} from "./manifest.js"
|
|
4
|
+
|
|
5
|
+
export async function cleanup(bucket: Bucket, manifest: Manifest) {
|
|
6
|
+
for await (const id of manifest.getExpiredWipIds())
|
|
7
|
+
await manifest.moveWipToTrash(id)
|
|
8
|
+
|
|
9
|
+
for await (const id of manifest.listTrashIds()) {
|
|
10
|
+
await bucket.delete(id)
|
|
11
|
+
await manifest.dropTrashRecord(id)
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
package/s/core/utils/save.ts
CHANGED
|
@@ -10,19 +10,17 @@ export async function save(
|
|
|
10
10
|
): Promise<Analysis> {
|
|
11
11
|
|
|
12
12
|
let size = 0
|
|
13
|
-
const pipe = new TransformStream()
|
|
14
|
-
const done = bucket.write(id, pipe.readable)
|
|
15
|
-
const writer = pipe.writable.getWriter()
|
|
16
13
|
const hasher = blake3.create()
|
|
17
14
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
15
|
+
await bucket.write(id, readable.pipeThrough(
|
|
16
|
+
new TransformStream({
|
|
17
|
+
transform(chunk, controller) {
|
|
18
|
+
hasher.update(chunk)
|
|
19
|
+
size += chunk.byteLength
|
|
20
|
+
controller.enqueue(chunk)
|
|
21
|
+
},
|
|
22
|
+
})
|
|
23
|
+
))
|
|
26
24
|
|
|
27
25
|
const hash = hex.fromBytes(hasher.digest())
|
|
28
26
|
return {hash, size}
|
package/x/core/mammoth.js
CHANGED
|
@@ -2,6 +2,7 @@ import { Kv } from "@e280/kv";
|
|
|
2
2
|
import { lane, queue } from "@e280/stz";
|
|
3
3
|
import { consts } from "./consts.js";
|
|
4
4
|
import { save } from "./utils/save.js";
|
|
5
|
+
import { cleanup } from "./utils/cleanup.js";
|
|
5
6
|
import { Manifest } from "./utils/manifest.js";
|
|
6
7
|
import { randomId } from "./utils/random-id.js";
|
|
7
8
|
import { MemoryBucket } from "./memory-bucket.js";
|
|
@@ -56,13 +57,6 @@ export class Mammoth {
|
|
|
56
57
|
void this.#cleanup().catch(e => console.error("cleanup failed", e));
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
|
-
#cleanup = queue(
|
|
60
|
-
for await (const id of this.#manifest.getExpiredWipIds())
|
|
61
|
-
await this.#manifest.moveWipToTrash(id);
|
|
62
|
-
for await (const id of this.#manifest.listTrashIds()) {
|
|
63
|
-
await this.#bucket.delete(id);
|
|
64
|
-
await this.#manifest.dropTrashRecord(id);
|
|
65
|
-
}
|
|
66
|
-
}, consts.max_jobs);
|
|
60
|
+
#cleanup = queue(() => cleanup(this.#bucket, this.#manifest), consts.max_jobs);
|
|
67
61
|
}
|
|
68
62
|
//# sourceMappingURL=mammoth.js.map
|
package/x/core/mammoth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mammoth.js","sourceRoot":"","sources":["../../s/core/mammoth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mammoth.js","sourceRoot":"","sources":["../../s/core/mammoth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export async function cleanup(bucket, manifest) {
|
|
2
|
+
for await (const id of manifest.getExpiredWipIds())
|
|
3
|
+
await manifest.moveWipToTrash(id);
|
|
4
|
+
for await (const id of manifest.listTrashIds()) {
|
|
5
|
+
await bucket.delete(id);
|
|
6
|
+
await manifest.dropTrashRecord(id);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../s/core/utils/cleanup.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAc,EAAE,QAAkB;IAC/D,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,QAAQ,CAAC,gBAAgB,EAAE;QACjD,MAAM,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IAElC,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;QAChD,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACvB,MAAM,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC;AACF,CAAC"}
|
package/x/core/utils/save.js
CHANGED
|
@@ -2,17 +2,14 @@ import { hex } from "@e280/stz";
|
|
|
2
2
|
import { blake3 } from "@noble/hashes/blake3.js";
|
|
3
3
|
export async function save(bucket, id, readable) {
|
|
4
4
|
let size = 0;
|
|
5
|
-
const pipe = new TransformStream();
|
|
6
|
-
const done = bucket.write(id, pipe.readable);
|
|
7
|
-
const writer = pipe.writable.getWriter();
|
|
8
5
|
const hasher = blake3.create();
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
await bucket.write(id, readable.pipeThrough(new TransformStream({
|
|
7
|
+
transform(chunk, controller) {
|
|
8
|
+
hasher.update(chunk);
|
|
9
|
+
size += chunk.byteLength;
|
|
10
|
+
controller.enqueue(chunk);
|
|
11
|
+
},
|
|
12
|
+
})));
|
|
16
13
|
const hash = hex.fromBytes(hasher.digest());
|
|
17
14
|
return { hash, size };
|
|
18
15
|
}
|
package/x/core/utils/save.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save.js","sourceRoot":"","sources":["../../../s/core/utils/save.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAA;AAG9C,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,MAAc,EACd,EAAM,EACN,QAAoC;IAGrC,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,MAAM,
|
|
1
|
+
{"version":3,"file":"save.js","sourceRoot":"","sources":["../../../s/core/utils/save.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAA;AAG9C,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,MAAc,EACd,EAAM,EACN,QAAoC;IAGrC,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;IAE9B,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,WAAW,CAC1C,IAAI,eAAe,CAAC;QACnB,SAAS,CAAC,KAAK,EAAE,UAAU;YAC1B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACpB,IAAI,IAAI,KAAK,CAAC,UAAU,CAAA;YACxB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;KACD,CAAC,CACF,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3C,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,CAAA;AACpB,CAAC"}
|