@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
45 lines (44 loc) • 1.39 kB
TypeScript
export interface Feature {
get(name: 'refName'): string;
get(name: 'start' | 'end'): number;
get(name: 'subfeatures'): Feature[] | undefined;
get(name: string): any;
id(): string;
parent(): Feature | undefined;
children(): Feature[] | undefined;
toJSON(): SimpleFeatureSerialized;
}
export declare function isFeature(thing: unknown): thing is Feature;
export interface SimpleFeatureArgs {
data: Record<string, unknown>;
parent?: Feature;
id: string | number;
}
export interface SimpleFeatureSerializedNoId {
[key: string]: unknown;
parentId?: string;
start: number;
end: number;
refName: string;
type?: string;
subfeatures?: SimpleFeatureSerializedNoId[];
}
export interface SimpleFeatureSerialized extends SimpleFeatureSerializedNoId {
subfeatures?: SimpleFeatureSerializedNoId[];
uniqueId: string;
}
export default class SimpleFeature implements Feature {
private data;
private subfeatures?;
private parentHandle?;
private uniqueId;
constructor(args: SimpleFeatureArgs | SimpleFeatureSerialized);
get(name: string): any;
set(name: string, val: any): void;
tags(): string[];
id(): string;
parent(): Feature | undefined;
children(): Feature[] | undefined;
toJSON(): SimpleFeatureSerialized;
static fromJSON(json: SimpleFeatureSerialized): SimpleFeature;
}