UNPKG

@omnia/tooling-composers

Version:

Provide tooling to work with manifest things.

31 lines (30 loc) 1.94 kB
import { IDependencyComposer, DependencyComposer } from "./DependencyComposer"; import { IApiComposer, WebComponentOptions, ISecurityComposer } from "./models"; import { CombinableRuleComposer, ICombinableRuleComposer } from "./CombinableRuleComposer"; import { WebComponentDefinition, OmniaBlock } from '../../fx-models'; import { ComposerBase } from './ComposerBase'; export interface IWebComponentComposer extends IDependencyComposer<IWebComponentComposer>, IApiComposer<IWebComponentComposer>, ISecurityComposer<IWebComponentComposer> { /** * The definition for this component, information shown for the component while e.g. being displayed in component pickers */ withDefinition: (definition: WebComponentDefinition) => IWebComponentComposer; /** Add a rule(s) when the component should be loaded Make sure to add rules which is not to generic, i.e. only load when needed (Only (OOTB) rules that are implementing ICombinableLoadRule can be added.) */ withLoadRules: () => ICombinableRuleComposer<IWebComponentComposer>; registerOmniaBlock: <P, T extends OmniaBlock<P>>(options?: T) => IWebComponentComposer; } export declare class ComponentComposer extends ComposerBase<IWebComponentComposer> implements IWebComponentComposer { done: () => IWebComponentComposer; private ruleComposer; constructor(manifestId: string, manifestName?: string); withDefinition: (definition: WebComponentDefinition) => this; registerComponent: (componentOptions: WebComponentOptions) => this; withLoadRules: () => CombinableRuleComposer<IWebComponentComposer>; registerOmniaBlock: <P, T extends OmniaBlock<P>>(options?: T) => this; withNoDependency: () => this; withDependency: (manifestId: string) => DependencyComposer<this>; withExternalDependency: (omniaServiceId: string, manifestId: string) => DependencyComposer<this>; private persistCombinedRules; }