@paulirish/trace_engine 0.0.7 → 0.0.9
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 +4 -4
- package/analyze-trace.mjs +17 -9
- package/package.json +1 -1
- package/test/test-trace-engine.mjs +0 -3
- package/trace.mjs +449 -276
- package/trace.mjs.map +4 -3
package/README.md
CHANGED
|
@@ -26,16 +26,16 @@ See also http://go/btlax
|
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
28
|
# build bundle with esbuild
|
|
29
|
-
|
|
29
|
+
scripts/trace/build-trace-engine-lib.sh
|
|
30
30
|
|
|
31
31
|
# run
|
|
32
|
-
node scripts/analyze-trace.mjs test/unittests/fixtures/traces/web-dev.json.gz
|
|
32
|
+
node scripts/trace/analyze-trace.mjs test/unittests/fixtures/traces/web-dev.json.gz
|
|
33
33
|
|
|
34
34
|
# test
|
|
35
|
-
node scripts/test/test-trace-engine.mjs
|
|
35
|
+
node scripts/trace/test/test-trace-engine.mjs
|
|
36
36
|
|
|
37
37
|
# copy built files to $HOME/code/trace_engine
|
|
38
|
-
|
|
38
|
+
scripts/trace/copy-build-trace-engine-for-publish.sh
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
#### Test and publish
|
package/analyze-trace.mjs
CHANGED
|
@@ -9,18 +9,26 @@
|
|
|
9
9
|
import fs from 'node:fs';
|
|
10
10
|
import zlib from 'node:zlib';
|
|
11
11
|
|
|
12
|
-
/** @
|
|
13
|
-
|
|
12
|
+
/** @typedef {import('../front_end/models/trace/trace.ts')} TraceEngine */
|
|
13
|
+
|
|
14
|
+
// For types... see Connor's manual hack here:
|
|
15
|
+
// https://github.com/GoogleChrome/lighthouse/pull/15703/files#diff-ec7e073cf0e6135d4f2af9bc04fe6100ec0df80ad1686bee2da53871be5f1a7b
|
|
16
|
+
// and https://github.com/GoogleChrome/lighthouse/pull/15703/files#diff-6dab4507247217209f5ab0f6c343ca2b00af1300878abba81fb74d51cdfbedf9
|
|
17
|
+
|
|
18
|
+
/** @type {TraceEngine} */
|
|
19
|
+
import * as TraceEngine from './trace.mjs';
|
|
14
20
|
|
|
15
21
|
polyfillDOMRect();
|
|
16
22
|
|
|
23
|
+
/**
|
|
24
|
+
* @param {string} filename
|
|
25
|
+
* @returns {Promise<TraceEngine.TraceModel>}
|
|
26
|
+
*/
|
|
17
27
|
export async function analyzeTrace(filename) {
|
|
18
28
|
const traceEvents = loadTraceEventsFromFile(filename);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
await processor.parse(traceEvents);
|
|
23
|
-
return processor.data;
|
|
29
|
+
const model = TraceEngine.TraceModel.Model.createWithAllHandlers(TraceEngine.Types.Configuration.DEFAULT); // aka `fullTraceEngine`
|
|
30
|
+
await model.parse(traceEvents);
|
|
31
|
+
return model.traceParsedData();
|
|
24
32
|
}
|
|
25
33
|
|
|
26
34
|
// If run as CLI, parse the argv trace (or a fallback)
|
|
@@ -30,8 +38,8 @@ if (import.meta.url.endsWith(process?.argv[1])) {
|
|
|
30
38
|
|
|
31
39
|
async function cli() {
|
|
32
40
|
const filename = process.argv.at(2);
|
|
33
|
-
const
|
|
34
|
-
console.log(
|
|
41
|
+
const TraceEngine = await analyzeTrace(filename);
|
|
42
|
+
console.log(TraceEngine);
|
|
35
43
|
}
|
|
36
44
|
|
|
37
45
|
|
package/package.json
CHANGED
|
@@ -5,12 +5,9 @@
|
|
|
5
5
|
import test from 'node:test';
|
|
6
6
|
import {strict as assert} from 'assert';
|
|
7
7
|
|
|
8
|
-
/** @typedef {import('../../front_end/models/trace/Processor.js').TraceProcessor['data'] } TraceModel */
|
|
9
|
-
|
|
10
8
|
import {analyzeTrace} from '../analyze-trace.mjs';
|
|
11
9
|
|
|
12
10
|
const filename = './test/invalid-animation-events.json.gz';
|
|
13
|
-
/** @type {TraceModel} */
|
|
14
11
|
const data = await analyzeTrace(filename);
|
|
15
12
|
|
|
16
13
|
test('key values are populated', t => {
|