@featurevisor/core
Version:
Core package of Featurevisor for Node.js usage
58 lines (57 loc) • 2.88 kB
TypeScript
import type { ParsedFeature, Segment, Attribute, Group, FeatureKey, Test, EnvironmentKey, ExistingState, SegmentKey, AttributeKey, DatafileContent, EntityType } from "@featurevisor/types";
import { ProjectConfig } from "../config";
import { DatafileOptions } from "./adapter";
export declare class Datasource {
private config;
private rootDirectoryPath?;
private adapter;
constructor(config: ProjectConfig, rootDirectoryPath?: string);
getExtension(): string;
/**
* State
*/
readState(environment: EnvironmentKey | false): Promise<ExistingState>;
writeState(environment: EnvironmentKey | false, existingState: ExistingState): Promise<void>;
/**
* Revision
*/
readRevision(): Promise<string>;
writeRevision(revision: string): Promise<void>;
/**
* Datafile
*/
readDatafile(options: DatafileOptions): Promise<DatafileContent>;
writeDatafile(datafileContent: DatafileContent, options: DatafileOptions): Promise<void>;
/**
* Entity specific methods
*/
listFeatures(): Promise<string[]>;
featureExists(featureKey: FeatureKey): Promise<boolean>;
readFeature(featureKey: FeatureKey): Promise<ParsedFeature>;
writeFeature(featureKey: FeatureKey, feature: ParsedFeature): Promise<ParsedFeature>;
deleteFeature(featureKey: FeatureKey): Promise<void>;
getRequiredFeaturesChain(featureKey: FeatureKey, chain?: Set<string>): Promise<Set<FeatureKey>>;
listSegments(): Promise<string[]>;
segmentExists(segmentKey: SegmentKey): Promise<boolean>;
readSegment(segmentKey: SegmentKey): Promise<Segment>;
writeSegment(segmentKey: SegmentKey, segment: Segment): Promise<Segment>;
deleteSegment(segmentKey: SegmentKey): Promise<void>;
listAttributes(): Promise<string[]>;
listFlattenedAttributes(): Promise<string[]>;
attributeExists(attributeKey: AttributeKey): Promise<boolean>;
readAttribute(attributeKey: AttributeKey): Promise<Attribute>;
writeAttribute(attributeKey: AttributeKey, attribute: Attribute): Promise<Attribute>;
deleteAttribute(attributeKey: AttributeKey): Promise<void>;
listGroups(): Promise<string[]>;
groupExists(groupKey: string): Promise<boolean>;
readGroup(groupKey: string): Promise<Group>;
writeGroup(groupKey: string, group: Group): Promise<Group>;
deleteGroup(groupKey: string): Promise<void>;
listTests(): Promise<string[]>;
readTest(testKey: string): Promise<Test>;
writeTest(testKey: string, test: Test): Promise<Test>;
deleteTest(testKey: string): Promise<void>;
getTestSpecName(testKey: string): string;
listHistoryEntries(entityType?: EntityType, entityKey?: string): Promise<import("@featurevisor/types").HistoryEntry[]>;
readCommit(commitHash: string, entityType?: EntityType, entityKey?: string): Promise<import("@featurevisor/types").Commit>;
}