UNPKG

@hahnpro/ms-speech-sdk

Version:
1 lines 12.4 kB
{"version":3,"sources":["src/common/List.ts"],"names":[],"mappings":"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","file":"List.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport { ObjectDisposedError } from \"./Error.js\";\nimport { IDetachable } from \"./IDetachable.js\";\nimport { IStringDictionary } from \"./IDictionary.js\";\nimport { IDisposable } from \"./IDisposable.js\";\n\nexport interface IList<TItem> extends IDisposable {\n get(itemIndex: number): TItem;\n first(): TItem;\n last(): TItem;\n\n add(item: TItem): void;\n insertAt(index: number, item: TItem): void;\n\n removeFirst(): TItem;\n removeLast(): TItem;\n removeAt(index: number): TItem;\n remove(index: number, count: number): TItem[];\n clear(): void;\n\n length(): number;\n\n onAdded(addedCallback: () => void): IDetachable;\n onRemoved(removedCallback: () => void): IDetachable;\n onDisposed(disposedCallback: () => void): IDetachable;\n\n join(seperator?: string): string;\n\n toArray(): TItem[];\n\n any(callback?: (item: TItem, index: number) => boolean): boolean;\n all(callback: (item: TItem) => boolean): boolean;\n forEach(callback: (item: TItem, index: number) => void): void;\n select<T2>(callback: (item: TItem, index: number) => T2): List<T2>;\n where(callback: (item: TItem, index: number) => boolean): List<TItem>;\n orderBy(compareFn: (a: TItem, b: TItem) => number): List<TItem>;\n orderByDesc(compareFn: (a: TItem, b: TItem) => number): List<TItem>;\n clone(): List<TItem>;\n concat(list: List<TItem>): List<TItem>;\n concatArray(array: TItem[]): List<TItem>;\n}\n\nexport class List<TItem> implements IList<TItem> {\n private privList: TItem[];\n private privSubscriptionIdCounter: number = 0;\n private privAddSubscriptions: IStringDictionary<() => void> = {};\n private privRemoveSubscriptions: IStringDictionary<() => void> = {};\n private privDisposedSubscriptions: IStringDictionary<() => void> = {};\n private privDisposeReason: string = null;\n\n public constructor(list?: TItem[]) {\n this.privList = [];\n // copy the list rather than taking as is.\n if (list) {\n for (const item of list) {\n this.privList.push(item);\n }\n }\n }\n\n public get(itemIndex: number): TItem {\n this.throwIfDisposed();\n return this.privList[itemIndex];\n }\n\n public first(): TItem {\n return this.get(0);\n }\n\n public last(): TItem {\n return this.get(this.length() - 1);\n }\n\n public add(item: TItem): void {\n this.throwIfDisposed();\n this.insertAt(this.privList.length, item);\n }\n\n public insertAt(index: number, item: TItem): void {\n this.throwIfDisposed();\n if (index === 0) {\n this.privList.unshift(item);\n } else if (index === this.privList.length) {\n this.privList.push(item);\n } else {\n this.privList.splice(index, 0, item);\n }\n this.triggerSubscriptions(this.privAddSubscriptions);\n }\n\n public removeFirst(): TItem {\n this.throwIfDisposed();\n return this.removeAt(0);\n }\n\n public removeLast(): TItem {\n this.throwIfDisposed();\n return this.removeAt(this.length() - 1);\n }\n\n public removeAt(index: number): TItem {\n this.throwIfDisposed();\n return this.remove(index, 1)[0];\n }\n\n public remove(index: number, count: number): TItem[] {\n this.throwIfDisposed();\n const removedElements = this.privList.splice(index, count);\n this.triggerSubscriptions(this.privRemoveSubscriptions);\n return removedElements;\n }\n\n public clear(): void {\n this.throwIfDisposed();\n this.remove(0, this.length());\n }\n\n public length(): number {\n this.throwIfDisposed();\n return this.privList.length;\n }\n\n public onAdded(addedCallback: () => void): IDetachable {\n this.throwIfDisposed();\n const subscriptionId = this.privSubscriptionIdCounter++;\n\n this.privAddSubscriptions[subscriptionId] = addedCallback;\n\n return {\n detach: (): Promise<void> => {\n delete this.privAddSubscriptions[subscriptionId];\n return Promise.resolve();\n },\n };\n }\n\n public onRemoved(removedCallback: () => void): IDetachable {\n this.throwIfDisposed();\n const subscriptionId = this.privSubscriptionIdCounter++;\n\n this.privRemoveSubscriptions[subscriptionId] = removedCallback;\n\n return {\n detach: (): Promise<void> => {\n delete this.privRemoveSubscriptions[subscriptionId];\n return Promise.resolve();\n },\n };\n }\n\n public onDisposed(disposedCallback: () => void): IDetachable {\n this.throwIfDisposed();\n const subscriptionId = this.privSubscriptionIdCounter++;\n\n this.privDisposedSubscriptions[subscriptionId] = disposedCallback;\n\n return {\n detach: (): Promise<void> => {\n delete this.privDisposedSubscriptions[subscriptionId];\n return Promise.resolve();\n },\n };\n }\n\n public join(seperator?: string): string {\n this.throwIfDisposed();\n return this.privList.join(seperator);\n }\n\n public toArray(): TItem[] {\n const cloneCopy = Array<TItem>();\n this.privList.forEach((val: TItem): void => {\n cloneCopy.push(val);\n });\n return cloneCopy;\n }\n\n public any(callback?: (item: TItem, index: number) => boolean): boolean {\n this.throwIfDisposed();\n if (callback) {\n return this.where(callback).length() > 0;\n } else {\n return this.length() > 0;\n }\n }\n\n public all(callback: (item: TItem) => boolean): boolean {\n this.throwIfDisposed();\n return this.where(callback).length() === this.length();\n }\n\n public forEach(callback: (item: TItem, index: number) => void): void {\n this.throwIfDisposed();\n for (let i = 0; i < this.length(); i++) {\n callback(this.privList[i], i);\n }\n }\n\n public select<T2>(callback: (item: TItem, index: number) => T2): List<T2> {\n this.throwIfDisposed();\n const selectList: T2[] = [];\n for (let i = 0; i < this.privList.length; i++) {\n selectList.push(callback(this.privList[i], i));\n }\n\n return new List<T2>(selectList);\n }\n\n public where(callback: (item: TItem, index: number) => boolean): List<TItem> {\n this.throwIfDisposed();\n const filteredList = new List<TItem>();\n for (let i = 0; i < this.privList.length; i++) {\n if (callback(this.privList[i], i)) {\n filteredList.add(this.privList[i]);\n }\n }\n return filteredList;\n }\n\n public orderBy(compareFn: (a: TItem, b: TItem) => number): List<TItem> {\n this.throwIfDisposed();\n const clonedArray = this.toArray();\n const orderedArray = clonedArray.sort(compareFn);\n return new List(orderedArray);\n }\n\n public orderByDesc(compareFn: (a: TItem, b: TItem) => number): List<TItem> {\n this.throwIfDisposed();\n return this.orderBy((a: TItem, b: TItem): number => compareFn(b, a));\n }\n\n public clone(): List<TItem> {\n this.throwIfDisposed();\n return new List<TItem>(this.toArray());\n }\n\n public concat(list: List<TItem>): List<TItem> {\n this.throwIfDisposed();\n return new List<TItem>(this.privList.concat(list.toArray()));\n }\n\n public concatArray(array: TItem[]): List<TItem> {\n this.throwIfDisposed();\n return new List<TItem>(this.privList.concat(array));\n }\n\n public isDisposed(): boolean {\n return this.privList == null;\n }\n\n public dispose(reason?: string): void {\n if (!this.isDisposed()) {\n this.privDisposeReason = reason;\n this.privList = null;\n this.privAddSubscriptions = null;\n this.privRemoveSubscriptions = null;\n this.triggerSubscriptions(this.privDisposedSubscriptions);\n }\n }\n\n private throwIfDisposed(): void {\n if (this.isDisposed()) {\n throw new ObjectDisposedError(\"List\", this.privDisposeReason);\n }\n }\n\n private triggerSubscriptions(subscriptions: IStringDictionary<() => void>): void {\n if (subscriptions) {\n for (const subscriptionId in subscriptions) {\n if (subscriptionId) {\n subscriptions[subscriptionId]();\n }\n }\n }\n }\n}\n"]}