jostraca 0.31.0 → 0.31.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/README.md +355 -0
- package/dist/build/BuildContext.d.ts +1 -0
- package/dist/build/BuildContext.js +10 -0
- package/dist/build/BuildContext.js.map +1 -1
- package/dist/build/BuildMeta.js +21 -4
- package/dist/build/BuildMeta.js.map +1 -1
- package/dist/build/FileHandler.d.ts +11 -4
- package/dist/build/FileHandler.js +468 -92
- package/dist/build/FileHandler.js.map +1 -1
- package/dist/cmp/Content.js.map +1 -1
- package/dist/cmp/Copy.js +5 -1
- package/dist/cmp/Copy.js.map +1 -1
- package/dist/cmp/File.js +2 -0
- package/dist/cmp/File.js.map +1 -1
- package/dist/cmp/Folder.js.map +1 -1
- package/dist/cmp/Fragment.js +36 -7
- package/dist/cmp/Fragment.js.map +1 -1
- package/dist/cmp/Inject.js +30 -1
- package/dist/cmp/Inject.js.map +1 -1
- package/dist/cmp/Line.js.map +1 -1
- package/dist/cmp/List.js.map +1 -1
- package/dist/cmp/None.js.map +1 -1
- package/dist/cmp/Project.js.map +1 -1
- package/dist/cmp/Slot.js.map +1 -1
- package/dist/diff.d.ts +36 -0
- package/dist/diff.js +446 -0
- package/dist/diff.js.map +1 -0
- package/dist/jostraca.d.ts +19 -18
- package/dist/jostraca.js +83 -24
- package/dist/jostraca.js.map +1 -1
- package/dist/op/ContentOp.js.map +1 -1
- package/dist/op/CopyOp.js +158 -22
- package/dist/op/CopyOp.js.map +1 -1
- package/dist/op/FileOp.js +26 -27
- package/dist/op/FileOp.js.map +1 -1
- package/dist/op/FolderOp.js +3 -0
- package/dist/op/FolderOp.js.map +1 -1
- package/dist/op/FragmentOp.js.map +1 -1
- package/dist/op/InjectOp.js +29 -7
- package/dist/op/InjectOp.js.map +1 -1
- package/dist/op/NoneOp.js.map +1 -1
- package/dist/op/ProjectOp.js.map +1 -1
- package/dist/op/SlotOp.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/util/basic.d.ts +5 -1
- package/dist/util/basic.js +218 -9
- package/dist/util/basic.js.map +1 -1
- package/dist/util/point.d.ts +8 -7
- package/dist/util/point.js.map +1 -1
- package/package.json +19 -11
- package/src/build/BuildContext.ts +12 -0
- package/src/build/BuildMeta.ts +24 -5
- package/src/build/FileHandler.ts +489 -121
- package/src/cmp/Copy.ts +5 -1
- package/src/cmp/File.ts +3 -0
- package/src/cmp/Fragment.ts +41 -7
- package/src/cmp/Inject.ts +38 -1
- package/src/diff.ts +657 -0
- package/src/jostraca.ts +83 -20
- package/src/op/CopyOp.ts +173 -22
- package/src/op/FileOp.ts +29 -31
- package/src/op/FolderOp.ts +6 -0
- package/src/op/InjectOp.ts +39 -7
- package/src/tsconfig.json +3 -1
- package/src/types.ts +5 -0
- package/src/util/basic.ts +250 -10
package/src/build/BuildMeta.ts
CHANGED
|
@@ -3,7 +3,11 @@ import Path from 'node:path'
|
|
|
3
3
|
|
|
4
4
|
import { FileHandler } from './FileHandler'
|
|
5
5
|
|
|
6
|
-
import { humanify } from '../util/basic'
|
|
6
|
+
import { humanify, getdlog } from '../util/basic'
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
// Log non-fatal weirdness.
|
|
10
|
+
const dlog = getdlog('jostraca', __filename)
|
|
7
11
|
|
|
8
12
|
|
|
9
13
|
type FileMetaData = {
|
|
@@ -94,10 +98,25 @@ function loadMetaData(fh: FileHandler, bmeta: BuildMetaData) {
|
|
|
94
98
|
// directly and no longer re-join `this.folder`.
|
|
95
99
|
const metapath = Path.join(fh.folder, bmeta.foldername, bmeta.filename)
|
|
96
100
|
if (fh.existsFile(metapath)) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
+
try {
|
|
102
|
+
const json = fh.loadJSON(metapath)
|
|
103
|
+
bmeta.last = null == json?.last ? -1 : json.last
|
|
104
|
+
bmeta.hlast = null == json?.hlast ? -1 : json.hlast
|
|
105
|
+
bmeta.files = json?.files || {}
|
|
106
|
+
}
|
|
107
|
+
catch (err: any) {
|
|
108
|
+
// A truncated or hand-edited meta log used to throw straight out of
|
|
109
|
+
// the BuildMeta constructor, so a corrupt bookkeeping file blocked
|
|
110
|
+
// generation entirely — with a JSON parse error that says nothing
|
|
111
|
+
// about how to recover. The log is regenerated on every run, so
|
|
112
|
+
// starting from empty state is safe: the only cost is that merge
|
|
113
|
+
// baselines look absent for one run.
|
|
114
|
+
dlog('meta', 'unreadable meta log, continuing with empty state: ' +
|
|
115
|
+
metapath + ' err=' + err.message)
|
|
116
|
+
bmeta.last = -1
|
|
117
|
+
bmeta.hlast = -1
|
|
118
|
+
bmeta.files = {}
|
|
119
|
+
}
|
|
101
120
|
}
|
|
102
121
|
return bmeta
|
|
103
122
|
}
|