UNPKG

@dolittle/sdk.artifacts

Version:

Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.

81 lines 5.17 kB
"use strict"; // Copyright (c) Dolittle. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.ComplexValueMap = void 0; const NestedMap_1 = require("./NestedMap"); /** * Represents a {@link Map} that handles complex value types - that can be decomposed into stable primitive keys - as keys. * @template K The type of the complex key. * @template V The type of the value. * @template D The type of the decomposed primitive values key. */ class ComplexValueMap { /** * Initialises a new instance of the {@link ComplexValueMap} class. * @param {Constructor} type - The type of the complex value key. * @param {(K) => D} _decomposer - The callback to use for decomposing the complex valye key to primitive types. * @param {number} depth - The length of a decomposed key. */ constructor(type, _decomposer, depth) { this._decomposer = _decomposer; this._map = new NestedMap_1.NestedMap(depth); this[Symbol.toStringTag] = `ComplexValueMap<${type.name}>`; } /** @inheritdoc */ get size() { return this._map.size; } /** @inheritdoc */ has(key) { return this._map.has(this._decomposer(key)); } /** @inheritdoc */ get(key) { var _a; return (_a = this._map.get(this._decomposer(key))) === null || _a === void 0 ? void 0 : _a[1]; } /** @inheritdoc */ set(key, value) { this._map.set(this._decomposer(key), [key, value]); return this; } /** @inheritdoc */ delete(key) { return this._map.delete(this._decomposer(key)); } /** @inheritdoc */ clear() { this._map.clear(); } /** @inheritdoc */ *entries() { for (const [_, [key, value]] of this._map.entries()) { yield [key, value]; } } /** @inheritdoc */ [(Symbol.toStringTag, Symbol.iterator)]() { return this.entries(); } /** @inheritdoc */ *keys() { for (const [key, _] of this.entries()) { yield key; } } /** @inheritdoc */ *values() { for (const [_, value] of this.entries()) { yield value; } } /** @inheritdoc */ forEach(callbackfn, thisArg) { for (const [key, value] of this.entries()) { callbackfn.call(thisArg, value, key, this); } } } exports.ComplexValueMap = ComplexValueMap; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcGxleFZhbHVlTWFwLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXMiOlsiTWFwcGluZ3MvQ29tcGxleFZhbHVlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0MscUdBQXFHOzs7QUFJckcsMkNBQXNEO0FBT3REOzs7OztHQUtHO0FBQ0gsTUFBYSxlQUFlO0lBR3hCOzs7OztPQUtHO0lBQ0gsWUFDSSxJQUFvQixFQUNILFdBQTBCLEVBQzNDLEtBQWtCO1FBREQsZ0JBQVcsR0FBWCxXQUFXLENBQWU7UUFHM0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHFCQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxtQkFBbUIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDO0lBQy9ELENBQUM7SUFLRCxrQkFBa0I7SUFDbEIsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLEdBQUcsQ0FBQyxHQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixHQUFHLENBQUMsR0FBTTs7UUFDTixPQUFPLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQywwQ0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLEdBQUcsQ0FBQyxHQUFNLEVBQUUsS0FBUTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixNQUFNLENBQUMsR0FBTTtRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsS0FBSztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixDQUFDLE9BQU87UUFDSixLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pELE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLEVBekNDLE1BQU0sQ0FBQyxXQUFXLEVBeUNsQixNQUFNLENBQUMsUUFBUSxFQUFDO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixDQUFDLElBQUk7UUFDRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ25DLE1BQU0sR0FBRyxDQUFDO1NBQ2I7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLENBQUMsTUFBTTtRQUNILEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckMsTUFBTSxLQUFLLENBQUM7U0FDZjtJQUNMLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLFVBQXNELEVBQUUsT0FBYTtRQUN6RSxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3ZDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDOUM7SUFDTCxDQUFDO0NBQ0o7QUFwRkQsMENBb0ZDIn0=