@nubbin/store-fs 0.1.0-rc.0 → 0.1.0-rc.4
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/README.md +34 -0
- package/package.json +18 -2
package/README.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# @nubbin/store-fs
|
|
2
|
+
|
|
3
|
+
The reference artifact store for Nubbin, on the filesystem. One file per artifact, one pointer
|
|
4
|
+
file per route, and no aggregate document — so two publishes to different routes cannot lose
|
|
5
|
+
each other's write, because there is no shared file to read and rewrite.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @nubbin/store-fs@rc
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { createFsArtifactStore } from "@nubbin/store-fs";
|
|
13
|
+
|
|
14
|
+
const store = createFsArtifactStore("./.nubbin");
|
|
15
|
+
await store.write(artifact);
|
|
16
|
+
await store.publish("/promotions/summer", artifact.hash);
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
.nubbin/
|
|
21
|
+
artifacts/<hash>.json
|
|
22
|
+
routes/%2Fpromotions%2Fsummer.json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Writes are temp-then-rename, so a concurrent reader sees the old pointer or the new one and
|
|
26
|
+
never half of either. `manifest()` reads the pointer directory rather than a stored file, so
|
|
27
|
+
there is nothing to keep in step.
|
|
28
|
+
|
|
29
|
+
It passes a shared `ArtifactStore` contract suite, which is how a replacement adapter proves
|
|
30
|
+
itself equivalent — by execution rather than by inspection.
|
|
31
|
+
|
|
32
|
+
**Release candidate.**
|
|
33
|
+
|
|
34
|
+
<https://effekt.github.io/nubbin/>. MIT.
|
package/package.json
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nubbin/store-fs",
|
|
3
|
-
"version": "0.1.0-rc.
|
|
3
|
+
"version": "0.1.0-rc.4",
|
|
4
|
+
"description": "The reference artifact store for Nubbin: one file per artifact, one pointer file per route, and no aggregate to lose a write.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"nubbin",
|
|
7
|
+
"storage",
|
|
8
|
+
"page-builder",
|
|
9
|
+
"cms",
|
|
10
|
+
"filesystem"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/effekt/nubbin.git",
|
|
16
|
+
"directory": "packages/store-fs"
|
|
17
|
+
},
|
|
18
|
+
"homepage": "https://effekt.github.io/nubbin/",
|
|
19
|
+
"bugs": "https://github.com/effekt/nubbin/issues",
|
|
4
20
|
"type": "module",
|
|
5
21
|
"sideEffects": false,
|
|
6
22
|
"exports": {
|
|
@@ -16,7 +32,7 @@
|
|
|
16
32
|
"access": "public"
|
|
17
33
|
},
|
|
18
34
|
"dependencies": {
|
|
19
|
-
"@nubbin/core": "0.1.0-rc.
|
|
35
|
+
"@nubbin/core": "0.1.0-rc.4"
|
|
20
36
|
},
|
|
21
37
|
"devDependencies": {
|
|
22
38
|
"@types/node": "25.9.2",
|