From 77dc3c3b8346de309428c7dc465d49a352019d5e Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Mon, 17 Feb 2025 15:31:03 +0800 Subject: [PATCH] Core: Add tags usage telemetry --- .../utils/StoryIndexGenerator.test.ts | 3 + code/core/src/csf-tools/CsfFile.test.ts | 73 +++++++++++++++++++ code/core/src/csf-tools/CsfFile.ts | 2 +- code/core/src/types/modules/indexer.ts | 1 + 4 files changed, 78 insertions(+), 1 deletion(-) diff --git a/code/core/src/core-server/utils/StoryIndexGenerator.test.ts b/code/core/src/core-server/utils/StoryIndexGenerator.test.ts index 544c24375f39..38e7212379fc 100644 --- a/code/core/src/core-server/utils/StoryIndexGenerator.test.ts +++ b/code/core/src/core-server/utils/StoryIndexGenerator.test.ts @@ -103,6 +103,7 @@ describe('StoryIndexGenerator', () => { "play": 0, "render": 0, "storyFn": 0, + "tags": 1, } `); }); @@ -472,6 +473,7 @@ describe('StoryIndexGenerator', () => { "play": 2, "render": 1, "storyFn": 1, + "tags": 5, } `); }); @@ -738,6 +740,7 @@ describe('StoryIndexGenerator', () => { "play": 2, "render": 1, "storyFn": 1, + "tags": 5, } `); }); diff --git a/code/core/src/csf-tools/CsfFile.test.ts b/code/core/src/csf-tools/CsfFile.test.ts index 639e1a6dbfc6..2260f651cbd0 100644 --- a/code/core/src/csf-tools/CsfFile.test.ts +++ b/code/core/src/csf-tools/CsfFile.test.ts @@ -92,6 +92,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -106,6 +107,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -137,6 +139,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -169,6 +172,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -199,6 +203,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -227,6 +232,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -256,6 +262,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -268,6 +275,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -297,6 +305,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -309,6 +318,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -338,6 +348,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -350,6 +361,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -380,6 +392,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -392,6 +405,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -426,6 +440,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -441,6 +456,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -475,6 +491,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -490,6 +507,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -521,6 +539,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -533,6 +552,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -564,6 +584,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -576,6 +597,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -605,6 +627,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -617,6 +640,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -650,6 +674,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -682,6 +707,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -715,6 +741,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -753,6 +780,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -786,6 +814,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -801,6 +830,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -829,6 +859,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -841,6 +872,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -874,6 +906,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -889,6 +922,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -923,6 +957,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -1004,6 +1039,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -1016,6 +1052,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -1070,6 +1107,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -1082,6 +1120,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: true mount: false moduleMock: false @@ -1160,6 +1199,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -1193,6 +1233,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -1224,6 +1265,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -1257,6 +1299,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -1339,6 +1382,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: true storyFn: true mount: false moduleMock: false @@ -1373,6 +1417,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: true storyFn: false mount: false moduleMock: false @@ -1409,6 +1454,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: true storyFn: false mount: false moduleMock: false @@ -1470,6 +1516,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: true storyFn: true mount: false moduleMock: false @@ -1506,6 +1553,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: true storyFn: false mount: false moduleMock: false @@ -1538,6 +1586,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: true moduleMock: false @@ -1569,6 +1618,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: true moduleMock: false @@ -1603,6 +1653,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: true moduleMock: false @@ -1637,6 +1688,7 @@ describe('CsfFile', () => { loaders: true beforeEach: false globals: false + tags: true storyFn: false mount: false moduleMock: false @@ -1670,6 +1722,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: true storyFn: true mount: false moduleMock: false @@ -1721,6 +1774,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: true storyFn: false mount: false moduleMock: false @@ -1742,6 +1796,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: true storyFn: false mount: false moduleMock: false @@ -1781,6 +1836,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: true storyFn: false mount: false moduleMock: false @@ -1825,6 +1881,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: true storyFn: false mount: false moduleMock: false @@ -1884,6 +1941,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -1922,6 +1980,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -1960,6 +2019,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -1998,6 +2058,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -2029,6 +2090,7 @@ describe('CsfFile', () => { loaders: false beforeEach: true globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -2060,6 +2122,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: true + tags: false storyFn: false mount: false moduleMock: false @@ -2090,6 +2153,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: true @@ -2117,6 +2181,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: true @@ -2150,6 +2215,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -2162,6 +2228,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -2191,6 +2258,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -2222,6 +2290,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -2234,6 +2303,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -2263,6 +2333,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -2297,6 +2368,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false @@ -2331,6 +2403,7 @@ describe('CsfFile', () => { loaders: false beforeEach: false globals: false + tags: false storyFn: false mount: false moduleMock: false diff --git a/code/core/src/csf-tools/CsfFile.ts b/code/core/src/csf-tools/CsfFile.ts index 528abdab2323..7e17060a1bcb 100644 --- a/code/core/src/csf-tools/CsfFile.ts +++ b/code/core/src/csf-tools/CsfFile.ts @@ -765,7 +765,7 @@ export class CsfFile { acc[key].tags = [...(acc[key].tags || []), 'play-fn']; } const stats = acc[key].__stats; - ['play', 'render', 'loaders', 'beforeEach', 'globals'].forEach((annotation) => { + ['play', 'render', 'loaders', 'beforeEach', 'globals', 'tags'].forEach((annotation) => { stats[annotation as keyof IndexInputStats] = !!storyAnnotations[annotation] || !!self._metaAnnotations[annotation]; }); diff --git a/code/core/src/types/modules/indexer.ts b/code/core/src/types/modules/indexer.ts index 12a1e3628b67..4dd7fd9a2db7 100644 --- a/code/core/src/types/modules/indexer.ts +++ b/code/core/src/types/modules/indexer.ts @@ -92,6 +92,7 @@ export interface IndexInputStats { moduleMock?: boolean; globals?: boolean; factory?: boolean; + tags?: boolean; } /** The base input for indexing a story or docs entry. */