@atlaspack/query 2.14.9 → 2.14.10
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/CHANGELOG.md +8 -0
- package/lib/index.js +37 -55
- package/package.json +3 -3
- package/src/index.js +41 -61
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# @atlaspack/query
|
2
2
|
|
3
|
+
## 2.14.10
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- Updated dependencies [[`51aba5f`](https://github.com/atlassian-labs/atlaspack/commit/51aba5fc0e49235ee06bbc3c376f48c3e7da5c4b), [`1e32d4e`](https://github.com/atlassian-labs/atlaspack/commit/1e32d4eae6b3af3968e8a0ef97d35b4347fd4196), [`0b2f6f5`](https://github.com/atlassian-labs/atlaspack/commit/0b2f6f55794d3ff6e2f5a41f963e7e5dd8ad9f8d), [`6dd4ccb`](https://github.com/atlassian-labs/atlaspack/commit/6dd4ccb753541de32322d881f973d571dd57e4ca)]:
|
8
|
+
- @atlaspack/core@2.18.0
|
9
|
+
- @atlaspack/cache@3.2.5
|
10
|
+
|
3
11
|
## 2.14.9
|
4
12
|
|
5
13
|
### Patch Changes
|
package/lib/index.js
CHANGED
@@ -4,20 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.loadGraphs = loadGraphs;
|
7
|
-
function _fs() {
|
8
|
-
const data = _interopRequireDefault(require("fs"));
|
9
|
-
_fs = function () {
|
10
|
-
return data;
|
11
|
-
};
|
12
|
-
return data;
|
13
|
-
}
|
14
|
-
function _path() {
|
15
|
-
const data = _interopRequireDefault(require("path"));
|
16
|
-
_path = function () {
|
17
|
-
return data;
|
18
|
-
};
|
19
|
-
return data;
|
20
|
-
}
|
21
7
|
function _v() {
|
22
8
|
const data = _interopRequireDefault(require("v8"));
|
23
9
|
_v = function () {
|
@@ -55,51 +41,47 @@ const {
|
|
55
41
|
} = require('./deep-imports.js');
|
56
42
|
async function loadGraphs(cacheDir) {
|
57
43
|
let cacheInfo = new Map();
|
58
|
-
|
44
|
+
const cache = new LMDBLiteCache(cacheDir);
|
45
|
+
let requestGraphBlob;
|
46
|
+
let requestGraphKey;
|
47
|
+
let bundleGraphBlob;
|
48
|
+
let assetGraphBlob;
|
49
|
+
for (let key of cache.keys()) {
|
50
|
+
if (key.startsWith('Asset/')) {
|
51
|
+
continue;
|
52
|
+
} else if (key.startsWith('PackagerRunner/')) {
|
53
|
+
continue;
|
54
|
+
}
|
55
|
+
if (key.startsWith('RequestTracker/') && key.endsWith('/RequestGraph')) {
|
56
|
+
requestGraphBlob = key;
|
57
|
+
requestGraphKey = key.split('/').slice(0, -1).join('/');
|
58
|
+
}
|
59
|
+
if (key.startsWith('BundleGraph/')) {
|
60
|
+
bundleGraphBlob = key;
|
61
|
+
}
|
62
|
+
if (key.startsWith('AssetGraph/')) {
|
63
|
+
assetGraphBlob = key;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
console.log({
|
59
67
|
requestGraphBlob,
|
60
68
|
bundleGraphBlob,
|
61
69
|
assetGraphBlob
|
62
|
-
}
|
63
|
-
let files = _fs().default.readdirSync(cacheDir);
|
64
|
-
let result = {};
|
65
|
-
let blobsToFind = [{
|
66
|
-
name: 'requestGraphBlob',
|
67
|
-
check: basename => basename.startsWith('requestGraph-') && !basename.startsWith('requestGraph-nodes')
|
68
|
-
}, {
|
69
|
-
name: 'bundleGraphBlob',
|
70
|
-
check: basename => basename.endsWith('BundleGraph-0')
|
71
|
-
}, {
|
72
|
-
name: 'assetGraphBlob',
|
73
|
-
check: basename => basename.endsWith('AssetGraph-0')
|
74
|
-
}];
|
75
|
-
for (let file of files) {
|
76
|
-
let basename = _path().default.basename(file);
|
77
|
-
let match = blobsToFind.find(({
|
78
|
-
check
|
79
|
-
}) => check(basename));
|
80
|
-
if (match) {
|
81
|
-
let stat = _fs().default.statSync(_path().default.join(cacheDir, file));
|
82
|
-
if (!match.mtime || stat.mtime > match.mtime) {
|
83
|
-
match.mtime = stat.mtime;
|
84
|
-
result[match.name] = file;
|
85
|
-
}
|
86
|
-
}
|
87
|
-
}
|
88
|
-
return result;
|
89
|
-
}();
|
90
|
-
const cache = new LMDBLiteCache(cacheDir);
|
70
|
+
});
|
91
71
|
|
92
72
|
// Get requestTracker
|
93
73
|
let requestTracker;
|
94
|
-
if (requestGraphBlob) {
|
74
|
+
if (requestGraphBlob != null && requestGraphKey != null) {
|
95
75
|
try {
|
96
76
|
var _cacheInfo$get;
|
97
|
-
let requestGraphKey = requestGraphBlob.slice(0, -'-0'.length);
|
98
77
|
let date = Date.now();
|
78
|
+
const buffer = await cache.getBlob(requestGraphBlob);
|
79
|
+
const deserializer = new (_v().default.Deserializer)(buffer);
|
80
|
+
console.log('Wire format version stored', deserializer.getWireFormatVersion());
|
99
81
|
let {
|
100
82
|
requestGraph,
|
101
83
|
bufferLength
|
102
|
-
} = await readAndDeserializeRequestGraph(cache,
|
84
|
+
} = await readAndDeserializeRequestGraph(cache, requestGraphBlob, requestGraphKey);
|
103
85
|
requestTracker = new RequestTracker({
|
104
86
|
graph: requestGraph,
|
105
87
|
// $FlowFixMe
|
@@ -111,16 +93,16 @@ async function loadGraphs(cacheDir) {
|
|
111
93
|
cacheInfo.set('RequestGraph', [bufferLength]);
|
112
94
|
(_cacheInfo$get = cacheInfo.get('RequestGraph')) === null || _cacheInfo$get === void 0 || _cacheInfo$get.push(timeToDeserialize);
|
113
95
|
} catch (e) {
|
114
|
-
console.
|
96
|
+
console.error('Error loading Request Graph\n', e);
|
115
97
|
}
|
116
98
|
}
|
117
99
|
|
118
100
|
// Get bundleGraph
|
119
101
|
let bundleGraph;
|
120
|
-
if (bundleGraphBlob) {
|
102
|
+
if (bundleGraphBlob != null) {
|
121
103
|
try {
|
122
104
|
var _cacheInfo$get2;
|
123
|
-
let file = await cache.
|
105
|
+
let file = await cache.getBlob(bundleGraphBlob);
|
124
106
|
let timeToDeserialize = Date.now();
|
125
107
|
let obj = _v().default.deserialize(file);
|
126
108
|
(0, _assert().default)(obj.bundleGraph != null);
|
@@ -129,17 +111,17 @@ async function loadGraphs(cacheDir) {
|
|
129
111
|
cacheInfo.set('BundleGraph', [Buffer.byteLength(file)]);
|
130
112
|
(_cacheInfo$get2 = cacheInfo.get('BundleGraph')) === null || _cacheInfo$get2 === void 0 || _cacheInfo$get2.push(timeToDeserialize);
|
131
113
|
} catch (e) {
|
132
|
-
console.
|
114
|
+
console.error('Error loading Bundle Graph\n', e);
|
133
115
|
}
|
134
116
|
}
|
135
117
|
|
136
118
|
// Get assetGraph
|
137
119
|
let assetGraph;
|
138
|
-
if (assetGraphBlob) {
|
120
|
+
if (assetGraphBlob != null) {
|
139
121
|
try {
|
140
122
|
var _cacheInfo$get3;
|
141
123
|
// TODO: this should be reviewed when `cachePerformanceImprovements` flag is removed, as we'll be writing files to LMDB cache instead of large blobs
|
142
|
-
let file = await cache.
|
124
|
+
let file = await cache.getBlob(assetGraphBlob);
|
143
125
|
let timeToDeserialize = Date.now();
|
144
126
|
let obj = _v().default.deserialize(file);
|
145
127
|
(0, _assert().default)(obj.assetGraph != null);
|
@@ -148,7 +130,7 @@ async function loadGraphs(cacheDir) {
|
|
148
130
|
cacheInfo.set('AssetGraph', [Buffer.byteLength(file)]);
|
149
131
|
(_cacheInfo$get3 = cacheInfo.get('AssetGraph')) === null || _cacheInfo$get3 === void 0 || _cacheInfo$get3.push(timeToDeserialize);
|
150
132
|
} catch (e) {
|
151
|
-
console.
|
133
|
+
console.error('Error loading Asset Graph\n', e);
|
152
134
|
}
|
153
135
|
}
|
154
136
|
function getSubRequests(id) {
|
@@ -170,7 +152,7 @@ async function loadGraphs(cacheDir) {
|
|
170
152
|
bundleInfo = (0, _nullthrows().default)(writeBundlesRequest.result);
|
171
153
|
}
|
172
154
|
} catch (e) {
|
173
|
-
console.
|
155
|
+
console.error('Error loading bundleInfo\n', e);
|
174
156
|
}
|
175
157
|
return {
|
176
158
|
assetGraph,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@atlaspack/query",
|
3
|
-
"version": "2.14.
|
3
|
+
"version": "2.14.10",
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
5
5
|
"publishConfig": {
|
6
6
|
"access": "public"
|
@@ -18,8 +18,8 @@
|
|
18
18
|
},
|
19
19
|
"main": "src/index.js",
|
20
20
|
"dependencies": {
|
21
|
-
"@atlaspack/cache": "3.2.
|
22
|
-
"@atlaspack/core": "2.
|
21
|
+
"@atlaspack/cache": "3.2.5",
|
22
|
+
"@atlaspack/core": "2.18.0",
|
23
23
|
"@atlaspack/graph": "3.4.7",
|
24
24
|
"nullthrows": "^1.1.1",
|
25
25
|
"table": "^6.8.1",
|
package/src/index.js
CHANGED
@@ -3,8 +3,6 @@
|
|
3
3
|
import type {ContentKey, NodeId} from '@atlaspack/graph';
|
4
4
|
import type {PackagedBundleInfo} from '@atlaspack/core/src/types';
|
5
5
|
|
6
|
-
import fs from 'fs';
|
7
|
-
import path from 'path';
|
8
6
|
import v8 from 'v8';
|
9
7
|
import nullthrows from 'nullthrows';
|
10
8
|
import invariant from 'assert';
|
@@ -27,65 +25,51 @@ export async function loadGraphs(cacheDir: string): Promise<{|
|
|
27
25
|
bundleInfo: ?Map<ContentKey, PackagedBundleInfo>,
|
28
26
|
cacheInfo: ?Map<string, Array<string | number>>,
|
29
27
|
|}> {
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
check: (basename) =>
|
43
|
-
basename.startsWith('requestGraph-') &&
|
44
|
-
!basename.startsWith('requestGraph-nodes'),
|
45
|
-
},
|
46
|
-
{
|
47
|
-
name: 'bundleGraphBlob',
|
48
|
-
check: (basename) => basename.endsWith('BundleGraph-0'),
|
49
|
-
},
|
50
|
-
{
|
51
|
-
name: 'assetGraphBlob',
|
52
|
-
check: (basename) => basename.endsWith('AssetGraph-0'),
|
53
|
-
},
|
54
|
-
];
|
55
|
-
|
56
|
-
for (let file of files) {
|
57
|
-
let basename = path.basename(file);
|
58
|
-
let match = blobsToFind.find(({check}) => check(basename));
|
59
|
-
|
60
|
-
if (match) {
|
61
|
-
let stat = fs.statSync(path.join(cacheDir, file));
|
62
|
-
|
63
|
-
if (!match.mtime || stat.mtime > match.mtime) {
|
64
|
-
match.mtime = stat.mtime;
|
65
|
-
result[match.name] = file;
|
66
|
-
}
|
67
|
-
}
|
28
|
+
let cacheInfo: Map<string, Array<string | number>> = new Map();
|
29
|
+
const cache = new LMDBLiteCache(cacheDir);
|
30
|
+
|
31
|
+
let requestGraphBlob;
|
32
|
+
let requestGraphKey;
|
33
|
+
let bundleGraphBlob;
|
34
|
+
let assetGraphBlob;
|
35
|
+
for (let key of cache.keys()) {
|
36
|
+
if (key.startsWith('Asset/')) {
|
37
|
+
continue;
|
38
|
+
} else if (key.startsWith('PackagerRunner/')) {
|
39
|
+
continue;
|
68
40
|
}
|
69
41
|
|
70
|
-
|
42
|
+
if (key.startsWith('RequestTracker/') && key.endsWith('/RequestGraph')) {
|
43
|
+
requestGraphBlob = key;
|
44
|
+
requestGraphKey = key.split('/').slice(0, -1).join('/');
|
45
|
+
}
|
46
|
+
if (key.startsWith('BundleGraph/')) {
|
47
|
+
bundleGraphBlob = key;
|
48
|
+
}
|
49
|
+
if (key.startsWith('AssetGraph/')) {
|
50
|
+
assetGraphBlob = key;
|
51
|
+
}
|
71
52
|
}
|
72
53
|
|
73
|
-
|
74
|
-
|
75
|
-
let {requestGraphBlob, bundleGraphBlob, assetGraphBlob} =
|
76
|
-
getMostRecentCacheBlobs();
|
77
|
-
const cache = new LMDBLiteCache(cacheDir);
|
54
|
+
console.log({requestGraphBlob, bundleGraphBlob, assetGraphBlob});
|
78
55
|
|
79
56
|
// Get requestTracker
|
80
57
|
let requestTracker;
|
81
|
-
if (requestGraphBlob) {
|
58
|
+
if (requestGraphBlob != null && requestGraphKey != null) {
|
82
59
|
try {
|
83
|
-
let requestGraphKey = requestGraphBlob.slice(0, -'-0'.length);
|
84
60
|
let date = Date.now();
|
61
|
+
|
62
|
+
const buffer = await cache.getBlob(requestGraphBlob);
|
63
|
+
const deserializer = new v8.Deserializer(buffer);
|
64
|
+
console.log(
|
65
|
+
'Wire format version stored',
|
66
|
+
deserializer.getWireFormatVersion(),
|
67
|
+
);
|
68
|
+
|
85
69
|
let {requestGraph, bufferLength} = await readAndDeserializeRequestGraph(
|
86
70
|
cache,
|
71
|
+
requestGraphBlob,
|
87
72
|
requestGraphKey,
|
88
|
-
requestGraphKey.replace('requestGraph-', ''),
|
89
73
|
);
|
90
74
|
|
91
75
|
requestTracker = new RequestTracker({
|
@@ -99,17 +83,15 @@ export async function loadGraphs(cacheDir: string): Promise<{|
|
|
99
83
|
cacheInfo.set('RequestGraph', [bufferLength]);
|
100
84
|
cacheInfo.get('RequestGraph')?.push(timeToDeserialize);
|
101
85
|
} catch (e) {
|
102
|
-
console.
|
86
|
+
console.error('Error loading Request Graph\n', e);
|
103
87
|
}
|
104
88
|
}
|
105
89
|
|
106
90
|
// Get bundleGraph
|
107
91
|
let bundleGraph;
|
108
|
-
if (bundleGraphBlob) {
|
92
|
+
if (bundleGraphBlob != null) {
|
109
93
|
try {
|
110
|
-
let file = await cache.
|
111
|
-
path.basename(bundleGraphBlob).slice(0, -'-0'.length),
|
112
|
-
);
|
94
|
+
let file = await cache.getBlob(bundleGraphBlob);
|
113
95
|
|
114
96
|
let timeToDeserialize = Date.now();
|
115
97
|
let obj = v8.deserialize(file);
|
@@ -120,18 +102,16 @@ export async function loadGraphs(cacheDir: string): Promise<{|
|
|
120
102
|
cacheInfo.set('BundleGraph', [Buffer.byteLength(file)]);
|
121
103
|
cacheInfo.get('BundleGraph')?.push(timeToDeserialize);
|
122
104
|
} catch (e) {
|
123
|
-
console.
|
105
|
+
console.error('Error loading Bundle Graph\n', e);
|
124
106
|
}
|
125
107
|
}
|
126
108
|
|
127
109
|
// Get assetGraph
|
128
110
|
let assetGraph;
|
129
|
-
if (assetGraphBlob) {
|
111
|
+
if (assetGraphBlob != null) {
|
130
112
|
try {
|
131
113
|
// TODO: this should be reviewed when `cachePerformanceImprovements` flag is removed, as we'll be writing files to LMDB cache instead of large blobs
|
132
|
-
let file = await cache.
|
133
|
-
path.basename(assetGraphBlob).slice(0, -'-0'.length),
|
134
|
-
);
|
114
|
+
let file = await cache.getBlob(assetGraphBlob);
|
135
115
|
|
136
116
|
let timeToDeserialize = Date.now();
|
137
117
|
let obj = v8.deserialize(file);
|
@@ -142,7 +122,7 @@ export async function loadGraphs(cacheDir: string): Promise<{|
|
|
142
122
|
cacheInfo.set('AssetGraph', [Buffer.byteLength(file)]);
|
143
123
|
cacheInfo.get('AssetGraph')?.push(timeToDeserialize);
|
144
124
|
} catch (e) {
|
145
|
-
console.
|
125
|
+
console.error('Error loading Asset Graph\n', e);
|
146
126
|
}
|
147
127
|
}
|
148
128
|
|
@@ -179,7 +159,7 @@ export async function loadGraphs(cacheDir: string): Promise<{|
|
|
179
159
|
>);
|
180
160
|
}
|
181
161
|
} catch (e) {
|
182
|
-
console.
|
162
|
+
console.error('Error loading bundleInfo\n', e);
|
183
163
|
}
|
184
164
|
|
185
165
|
return {assetGraph, bundleGraph, requestTracker, bundleInfo, cacheInfo};
|