From d1c7ee515cb3194cca901c42aae16bc534060b37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 10 Mar 2022 00:41:50 +0100 Subject: [PATCH] Move side effects from a getter to a function It's just nicer, side effects in getters are surprising. --- packages/babel-helpers/src/index.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/babel-helpers/src/index.ts b/packages/babel-helpers/src/index.ts index 239c690b6060..5a422f226374 100644 --- a/packages/babel-helpers/src/index.ts +++ b/packages/babel-helpers/src/index.ts @@ -253,8 +253,8 @@ interface HelperData { nodes: t.Program["body"]; globals: string[]; }; - minVersion: () => string; - dependencies: Map; + minVersion: string; + getDependencies: () => string[]; } const helperData: Record = Object.create(null); @@ -290,6 +290,7 @@ function loadHelper(name: string) { let metadata: HelperMetadata | null = null; helperData[name] = { + minVersion: helper.minVersion, build(getDependency, id, localBindings) { const file = fn(); metadata ||= getHelperMetadata(file); @@ -300,12 +301,9 @@ function loadHelper(name: string) { globals: metadata.globals, }; }, - minVersion() { - return helper.minVersion; - }, - get dependencies() { + getDependencies() { metadata ||= getHelperMetadata(fn()); - return metadata.dependencies; + return Array.from(metadata.dependencies.values()); }, }; } @@ -323,11 +321,11 @@ export function get( } export function minVersion(name: string) { - return loadHelper(name).minVersion(); + return loadHelper(name).minVersion; } export function getDependencies(name: string): ReadonlyArray { - return Array.from(loadHelper(name).dependencies.values()); + return loadHelper(name).getDependencies(); } export function ensure(name: string, newFileClass: typeof File) {