MCPcopy Create free account
hub / github.com/microsoft/vscode-cpptools / firstOrFail

Function firstOrFail

Extension/src/Utility/System/array.ts:42–55  ·  view source on GitHub ↗
(iterable: Iterable<TElement> | undefined | Promise<Iterable<TElement> | undefined>, predicateOrMessage: string | Error | ((element: TElement) => true | undefined) = (e) => e as any, message?: string | Error)

Source from the content-addressed store, hash-verified

40export function firstOrFail<TElement>(iterable: Promise<Iterable<TElement>>, predicate: (element: TElement) => true | undefined, message: string | Error): Promise<TElement> | never;
41
42export function firstOrFail<TElement>(iterable: Iterable<TElement> | undefined | Promise<Iterable<TElement> | undefined>, predicateOrMessage: string | Error | ((element: TElement) => true | undefined) = (e) => e as any, message?: string | Error): TElement | Promise<TElement> | never {
43 let result: any;
44 if (message === undefined) {
45 message = predicateOrMessage as string | Error;
46 predicateOrMessage = (e) => e as any;
47 result = first(iterable as Iterable<TElement>, predicateOrMessage);
48 } else {
49 result = first(iterable as any, predicateOrMessage as any);
50 }
51 if (is.promise(result)) {
52 return result.then(r => r !== undefined ? r : fail(message));
53 }
54 return result !== undefined ? result as TElement : fail(message);
55}
56

Callers

nothing calls this directly

Calls 3

firstFunction · 0.85
promiseMethod · 0.80
thenMethod · 0.45

Tested by

no test coverage detected