@vcmap/core
    Preparing search index...

    Type Alias OverrideCollectionInterface<T, S>

    The override collection adds the ability to override a unique item and re-creating it, should the override be removed. This does change some flow of called events. 1) if you override an item, removed is not called for the removed current item. 2) replaced is called for items which where replaced. 3) added can be called more the once for the same unique id. Replaced is called before added has been called for the item.

    type OverrideCollectionInterface<T, S> = {
        "[isOverrideCollection]": boolean;
        getSerializedByKey: (key: string) => S | undefined;
        override: (item: T) => T | null;
        parseItems: (
            items: (S & { type?: string })[] | undefined,
            moduleId: string,
        ) => Promise<void>;
        removeModule: (moduleId: string) => void;
        replace: (item: T) => T | null;
        replaced: VcsEvent<ReplacedEvent<T>>;
        serializeModule: (moduleId: string) => S[];
        shadowMap: Map<string, (S & { "[moduleIdSymbol]"?: string })[]>;
        uniqueKey: keyof T;
    }

    Type Parameters

    • T
    • S
    Index

    Properties

    "[isOverrideCollection]": boolean
    getSerializedByKey: (key: string) => S | undefined
    override: (item: T) => T | null

    returns the overriden item or null if the item could not be inserted (this would be the result of a race condition)

    parseItems: (
        items: (S & { type?: string })[] | undefined,
        moduleId: string,
    ) => Promise<void>
    removeModule: (moduleId: string) => void
    replace: (item: T) => T | null

    Replacement is only supported for items of the dynamic module. For other items you may use override instead. Returns the replaced item or null if the item could not be inserted

    replaced is called before added

    serializeModule: (moduleId: string) => S[]
    shadowMap: Map<string, (S & { "[moduleIdSymbol]"?: string })[]>
    uniqueKey: keyof T