@omnia/tooling-composers
Version:
Provide tooling to work with manifest things.
31 lines (30 loc) • 1.94 kB
TypeScript
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;
}