UNPKG

1.22 kBTypeScriptView Raw
1import type { PresentArray } from '@glimmer/interfaces';
2import type { LocatedWithOptionalSpan, LocatedWithSpan } from './location';
3import type { SourceOffset } from './span';
4import { SourceSpan } from './span';
5export type HasSpan = SourceSpan | LocatedWithSpan | PresentArray<LocatedWithSpan>;
6export type MaybeHasSpan = SourceSpan | LocatedWithOptionalSpan | LocatedWithOptionalSpan[] | null;
7export type ToSourceOffset = number | SourceOffset;
8export declare class SpanList {
9 static range(span: PresentArray<HasSourceSpan>): SourceSpan;
10 static range(span: HasSourceSpan[], fallback: SourceSpan): SourceSpan;
11 _span: SourceSpan[];
12 constructor(span?: SourceSpan[]);
13 add(offset: SourceSpan): void;
14 getRangeOffset(fallback: SourceSpan): SourceSpan;
15}
16export type HasSourceSpan = {
17 loc: SourceSpan;
18} | SourceSpan | [HasSourceSpan, ...HasSourceSpan[]];
19export declare function loc(span: HasSourceSpan): SourceSpan;
20export type MaybeHasSourceSpan = {
21 loc: SourceSpan;
22} | SourceSpan | MaybeHasSourceSpan[];
23export declare function hasSpan(span: MaybeHasSourceSpan): span is HasSourceSpan;
24export declare function maybeLoc(location: MaybeHasSourceSpan, fallback: SourceSpan): SourceSpan;