From f1eda2adf03c473f75608f9fcd49801d3768d5eb Mon Sep 17 00:00:00 2001 From: Paul Marechal Date: Wed, 8 Mar 2023 11:02:37 -0500 Subject: [PATCH] Marker.isMarkerObject --- packages/markers/src/common/marker.ts | 12 +++++++----- packages/markers/src/common/problem-marker.ts | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/markers/src/common/marker.ts b/packages/markers/src/common/marker.ts index 4a5bf25f717bc..0b92b5c025a74 100644 --- a/packages/markers/src/common/marker.ts +++ b/packages/markers/src/common/marker.ts @@ -40,14 +40,16 @@ export interface Marker { data: T; } export namespace Marker { - export function is(value: unknown): value is Marker; - export function is(value: unknown, subTypeCheck: (value: unknown) => value is T): value is Marker; - export function is(value: unknown, subTypeCheck?: (value: unknown) => boolean): boolean { - subTypeCheck ??= isObject; - return isObject>(value) + + export function is(value: unknown, subTypeCheck: (value: unknown) => value is T): value is Marker { + return isObject>(value) && !Array.isArray(value) && subTypeCheck(value.data) && isString(value.uri) && isString(value.owner); } + + export function isMarkerObject(value: unknown): value is Marker { + return is(value, isObject); + } } diff --git a/packages/markers/src/common/problem-marker.ts b/packages/markers/src/common/problem-marker.ts index a9e56a4efbecb..76fec1a8875c1 100644 --- a/packages/markers/src/common/problem-marker.ts +++ b/packages/markers/src/common/problem-marker.ts @@ -25,6 +25,6 @@ export interface ProblemMarker extends Marker { export namespace ProblemMarker { export function is(node: unknown): node is ProblemMarker { - return Marker.is(node) && node.kind === PROBLEM_KIND; + return Marker.isMarkerObject(node) && node.kind === PROBLEM_KIND; } }