diff --git a/.changeset/slow-ravens-type.md b/.changeset/slow-ravens-type.md new file mode 100644 index 000000000..52afab3a2 --- /dev/null +++ b/.changeset/slow-ravens-type.md @@ -0,0 +1,5 @@ +--- +"@react-pdf/layout": patch +--- + +Prevent Yoga init from running more than once diff --git a/packages/layout/src/yoga/index.js b/packages/layout/src/yoga/index.js index 400e7c299..ab8463b6a 100644 --- a/packages/layout/src/yoga/index.js +++ b/packages/layout/src/yoga/index.js @@ -2,14 +2,12 @@ import { loadYoga as yogaLoadYoga } from 'yoga-layout/load'; -let instance; +let instancePromise; export const loadYoga = async () => { - if (!instance) { - // Yoga WASM binaries must be asynchronously compiled and loaded - // to prevent Event emitter memory leak warnings, Yoga must be loaded only once - instance = await yogaLoadYoga(); - } + // Yoga WASM binaries must be asynchronously compiled and loaded + // to prevent Event emitter memory leak warnings, Yoga must be loaded only once + const instance = await (instancePromise ??= yogaLoadYoga()); const config = instance.Config.create();