UNPKG

motion-dom

Version:
1 lines • 3.33 kB
{"version":3,"file":"index.mjs","sources":["../../../src/stats/index.ts"],"sourcesContent":["import { ActiveStatsBuffer, statsBuffer } from \"./buffer\"\nimport type { LayoutProjectionMetrics } from \"./types\"\n\n/**\n * The metrics projection counts, in the order of the index it passes to\n * statsBuffer.countProjection.\n */\nconst projectionMetrics = [\n \"nodes\",\n \"calculatedTargetDeltas\",\n \"calculatedProjections\",\n] as const\n\nfunction clearStatsBuffer() {\n statsBuffer.value = null\n statsBuffer.addProjectionMetrics = null\n statsBuffer.countProjection = undefined\n}\n\nexport function recordStats() {\n if (statsBuffer.value) {\n clearStatsBuffer()\n throw new Error(\"Stats are already being measured\")\n }\n\n const buffer = statsBuffer as unknown as ActiveStatsBuffer\n\n buffer.value = {\n layoutProjection: {\n nodes: [],\n calculatedTargetDeltas: [],\n calculatedProjections: [],\n },\n }\n\n buffer.addProjectionMetrics = (metrics) => {\n const { layoutProjection } = buffer.value\n layoutProjection.nodes.push(metrics.nodes)\n layoutProjection.calculatedTargetDeltas.push(\n metrics.calculatedTargetDeltas\n )\n layoutProjection.calculatedProjections.push(\n metrics.calculatedProjections\n )\n }\n\n /**\n * Counting lives here rather than in projection, so bundles that never\n * call recordStats() don't ship it.\n */\n const metrics: LayoutProjectionMetrics = {\n nodes: 0,\n calculatedTargetDeltas: 0,\n calculatedProjections: 0,\n }\n\n buffer.countProjection = (metric) => {\n if (metric !== undefined) {\n metrics[projectionMetrics[metric]]++\n } else {\n buffer.addProjectionMetrics(metrics)\n metrics.nodes =\n metrics.calculatedTargetDeltas =\n metrics.calculatedProjections =\n 0\n }\n }\n}\n"],"names":[],"mappings":";;AAGA;;;AAGG;AACH,MAAM,iBAAiB,GAAG;IACtB,OAAO;IACP,wBAAwB;IACxB,uBAAuB;CACjB;AAEV,SAAS,gBAAgB,GAAA;AACrB,IAAA,WAAW,CAAC,KAAK,GAAG,IAAI;AACxB,IAAA,WAAW,CAAC,oBAAoB,GAAG,IAAI;AACvC,IAAA,WAAW,CAAC,eAAe,GAAG,SAAS;AAC3C;SAEgB,WAAW,GAAA;AACvB,IAAA,IAAI,WAAW,CAAC,KAAK,EAAE;AACnB,QAAA,gBAAgB,EAAE;AAClB,QAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;IACvD;IAEA,MAAM,MAAM,GAAG,WAA2C;IAE1D,MAAM,CAAC,KAAK,GAAG;AACX,QAAA,gBAAgB,EAAE;AACd,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,sBAAsB,EAAE,EAAE;AAC1B,YAAA,qBAAqB,EAAE,EAAE;AAC5B,SAAA;KACJ;AAED,IAAA,MAAM,CAAC,oBAAoB,GAAG,CAAC,OAAO,KAAI;AACtC,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,KAAK;QACzC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1C,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CACxC,OAAO,CAAC,sBAAsB,CACjC;QACD,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CACvC,OAAO,CAAC,qBAAqB,CAChC;AACL,IAAA,CAAC;AAED;;;AAGG;AACH,IAAA,MAAM,OAAO,GAA4B;AACrC,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,sBAAsB,EAAE,CAAC;AACzB,QAAA,qBAAqB,EAAE,CAAC;KAC3B;AAED,IAAA,MAAM,CAAC,eAAe,GAAG,CAAC,MAAM,KAAI;AAChC,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACtB,YAAA,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE;QACxC;aAAO;AACH,YAAA,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC;AACpC,YAAA,OAAO,CAAC,KAAK;AACT,gBAAA,OAAO,CAAC,sBAAsB;AAC9B,oBAAA,OAAO,CAAC,qBAAqB;AACzB,wBAAA,CAAC;QACb;AACJ,IAAA,CAAC;AACL;;;;"}