UNPKG

@salesforce/core

Version:

Core libraries to interact with SFDX projects, orgs, and APIs.

63 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Cache = void 0; /* * Copyright 2026, Salesforce, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ class Cache extends Map { static #instance; static #enabled = true; #hits; #lookups; constructor() { super(); this.#hits = 0; this.#lookups = 0; } static get hits() { return Cache.instance().#hits; } static get lookups() { return Cache.instance().#lookups; } static instance() { if (!Cache.#instance) { Cache.#enabled = true; Cache.#instance = new Cache(); } return Cache.#instance; } static set(key, value) { if (Cache.#enabled) { Cache.instance().set(key, value); } } static get(key) { if (!Cache.#enabled) { return undefined; } Cache.instance().#lookups++; Cache.instance().#hits += Cache.instance().has(key) ? 1 : 0; return Cache.#instance.get(key); } static disable() { Cache.#enabled = false; } static enable() { Cache.#enabled = true; } } exports.Cache = Cache; //# sourceMappingURL=cache.js.map