INNER CODE UNIT · TypeScript

compute

babyfish-ct/graphql-ts-client · api/src/DependencyManager.ts:276

function compute<K, V>(map: Map<K, V>, key: K, valueSupplier: (key: K) => V): V {
    let value = map.get(key);
    if (value === undefined) {
        map.set(key, value = valueSupplier(key));
    }
    return value;
}

type RecursiveResourceMap = Map<string, Resources | RecursiveResourceMap>;
function removeResource(recursiveResourceMap: RecursiveResourceMap, resource: string) {
    const deletedKeys = new Set<string>();
    for (const [key, deeperValue] of recursiveResourceMap) {
        if (deeperValue instanceof Resources) {
            if (deeperValue.release(resource) === 0) {
                deletedKeys.add(key);
            }
        } else {
            removeResource(deeperValue, resource);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…