@pixture/engine
Version:
Pixture
87 lines • 3 kB
TypeScript
import spellu from "./spellu-engine";
import scriptkit from "./spellu-scriptkit";
import dom from "./pixture-dom";
declare type Dictionary<V = any> = spellu.Dictionary<V>;
declare namespace pixture {
function pluck<V extends Dictionary<any>>(array: V[], keyName: string): Dictionary<V>;
function stepGeneratorOf<T, V extends T = T>(array: T[]): (condition: (item: T) => boolean) => Generator<V, void, unknown>;
}
declare namespace pixture {
interface Environment {
readText(path: string): string;
writeText(path: string, data: string): void;
universeGlobals(): Dictionary<any>;
universeConstructors(): Function[];
}
type ConfigDataFormat = {
data?: string;
pages?: PageRecipe[];
};
type Config = {
data: string;
components: [string];
pages: PageRecipe[];
};
type PageRecipe = {
in: string;
out: string;
};
type Input = {
document: dom.PageDocument;
components: Dictionary<dom.Component>;
dimensions: scriptkit.Dimension[];
constructors: Function[];
};
type Output = {
document: dom.PageDocument;
text: string;
};
type GenerateResult = {};
type TranspileResult = {};
}
declare namespace pixture {
function loadConfig(): void;
}
declare namespace pixture {
function generate(env: Environment, config: Config): TranspileResult;
}
declare namespace pixture {
type Source = {
source: string;
location: string;
};
export function transpile(page: string | Source, components: (string | Source)[], dimensions: scriptkit.Dimension[], constructors: Function[]): string;
export {};
}
declare namespace pixture {
function load(env: Environment, config: Config, recipe: PageRecipe): Input;
}
declare namespace pixture {
function save(env: Environment, config: Config, recipe: PageRecipe, output: Output): TranspileResult;
}
declare namespace pixture {
function process(input: Input): Output;
}
declare namespace pixture {
function applyComponent(world: scriptkit.World, page: dom.PageDocument, components: Dictionary<dom.Component>): void;
}
declare namespace pixture {
function applyControl(world: scriptkit.World, page: dom.PageDocument): void;
/**
* ノードの子要素・テキストに対し、applyString()を実行する。
*
* @param world
* @param node
* @param context
*/
function evaluateInterpolationCode(world: scriptkit.World, node: dom.Node, context: Dictionary<any>): void;
}
declare namespace pixture {
function applyString(world: scriptkit.ScriptWorld, context: Dictionary<any>, string: string, location?: string): string;
}
declare namespace pixture {
function evaluateExpression(world: scriptkit.ScriptWorld, context: Dictionary<any>, string: string, location?: string): any;
}
export default pixture;
export { spellu, scriptkit, dom };
//# sourceMappingURL=pixture-engine.d.ts.map