UNPKG

molstar

Version:

A comprehensive macromolecular library.

36 lines 1.28 kB
"use strict"; /** * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultMap = void 0; /** A `Map` instance with a `getDefault` method added. */ function DefaultMap(valueCtor) { var map = new Map(); map.getDefault = function (key) { if (map.has(key)) return map.get(key); var value = valueCtor(); map.set(key, value); return value; }; return map; } exports.DefaultMap = DefaultMap; // TODO currently not working, see https://github.com/Microsoft/TypeScript/issues/10853 // /** A `Map` with a `getDefault` method added. */ // export class DefaultMap<K, V> extends Map<K, V> { // constructor(private valueCtor: () => V, entries?: ReadonlyArray<[K, V]>) { // super(entries) // } // /** Return the value for `key` when available or the default value otherwise. */ // getDefault(key: K) { // if (this.has(key)) return this.get(key)! // const value = this.valueCtor() // this.set(key, value) // return value // } // } //# sourceMappingURL=map.js.map