@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 CHANGED
@@ -26,16 +26,16 @@ See also http://go/btlax
26
26
 
27
27
  ```sh
28
28
  # build bundle with esbuild
29
- front_end/models/trace/build-trace-engine-lib.sh
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
- front_end/models/trace/copy-build-trace-engine-for-publish.sh
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
- /** @type {import('../front_end/models/trace/trace.ts').TraceModel} */
13
- import * as TraceModel from './trace.mjs';
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
- /** @type {import('../front_end/models/trace/trace.ts').Processor.TraceProcessor} */
21
- const processor = TraceModel.Processor.TraceProcessor.createWithAllHandlers(); // aka `fullTraceEngine`
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 traceModel = await analyzeTrace(filename);
34
- console.log(traceModel);
41
+ const TraceEngine = await analyzeTrace(filename);
42
+ console.log(TraceEngine);
35
43
  }
36
44
 
37
45
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paulirish/trace_engine",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "description": "",
5
5
  "main": "trace.mjs",
6
6
  "scripts": {
@@ -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 => {