@chix/loader-remote
Version:
Remote NodeDefinition Loader for Chiχ
73 lines (72 loc) • 1.9 kB
TypeScript
import { Flow as FlowDefinition, NodeDefinition, NodeDefinitions, NodeDependencies } from '@chix/common';
export declare type Dependencies = NodeDependencies;
export declare type DependencyTypes = 'npm';
export interface BaseNodeDefinitionLocation {
providerLocation: string;
}
export declare type ProviderDef = {
ns: string;
name: string;
providerLocation: string;
url: string;
};
export declare type LoadDefinitionResult = {
nodeDefinition: NodeDefinition;
dependencies: Dependencies;
};
export declare type Location = string;
export declare type WillLoad = Location[];
export interface WorkloadBase {
ns: string;
name: string;
providerLocation: string;
}
export interface FSWorkload extends WorkloadBase {
path: string;
}
export interface RemoteWorkload extends WorkloadBase {
url: string;
}
export declare type Workload = Array<FSWorkload | RemoteWorkload>;
export interface XCacheFile {
dependencies: NodeDependencies;
nodeDefinitions: NodeDefinitions;
}
export interface WriteCacheEvent {
file: string;
}
export interface PurgeCacheEvent {
file: string;
}
export interface LoadCacheEvent {
file: string;
cache: XCacheFile;
}
export declare type FSLoaderConfig = {
cache?: boolean;
purge?: boolean;
};
export interface NodeDefinitionLocationFS extends BaseNodeDefinitionLocation {
path: string;
}
export interface LoadFileEvent {
path: string;
}
export interface LoadUrlEvent {
url: string;
}
export declare type LoadNodeResult = {
providerLocation: string;
nodeDef: NodeDefinition | FlowDefinition;
};
export declare type PreloadResult = {
provider: string;
nodeDefinitions: NodeDefinitions;
};
export declare type PreloadConfig = {
provider: string;
collection: string;
};
export interface NodeDefinitionLocationRemote extends BaseNodeDefinitionLocation {
url: string;
}