sdin
Version:
JavaScript package builder.
75 lines (74 loc) • 2.95 kB
TypeScript
import { OrNil } from "../utils/declaration";
import { SdinProject } from './project';
import { SdinAbstractConfig } from './abstract-config';
import { SdinApplicationModule, SdinApplicationModuleDatas } from './application-module';
export interface SdinApplicationPageElement extends Record<string, string | boolean | undefined> {
key: string;
}
export interface SdinApplicationPageDatas extends SdinApplicationModuleDatas {
SDIN_PAGE_NAME: string;
SDIN_PAGE_TITLE: string;
SDIN_PAGE_PATH: string;
}
export type SdinApplicationPageSkeleton = (page: SdinApplicationPage) => string;
/**
* Sdin 应用页面配置选项
*/
export interface SdinApplicationPageParams {
/** 页面名称 */
name: string;
/** 页面标题 */
title: string;
/** 页面入口文件(默认:页面名称/index.(ts|tsx|js|jsx),相对模块源码目录而言) */
index?: string;
/** 页面网络路径(默认:页面名称,相对模块网络路径而言) */
path?: string;
/** 页面元信息标签列表 */
metas?: OrNil<SdinApplicationPageElement>[];
/** 页面链接标签列表 */
links?: OrNil<SdinApplicationPageElement>[];
/** 页面样式标签列表 */
styles?: OrNil<SdinApplicationPageElement>[];
/** 页面脚本标签列表 */
scripts?: OrNil<SdinApplicationPageElement>[];
/** 页面骨架渲染器 */
skeleton?: SdinApplicationPageSkeleton;
/** 数据宏定义 */
datas?: Record<string, string>;
}
/**
* Sdin 应用页面配置
*/
export declare class SdinApplicationPage extends SdinAbstractConfig<SdinProject, SdinApplicationModule, SdinApplicationPageParams> {
/** 页面名称 */
readonly name: string;
/** 页面标题 */
readonly title: string;
/** 页面入口文件 */
readonly index: string;
/** 页面网络路径(相对模块网络路径而言) */
readonly path: string;
/** 页面元信息标签列表 */
readonly metas: SdinApplicationPageElement[];
/** 页面样式标签列表 */
readonly links: SdinApplicationPageElement[];
/** 页面样式标签列表 */
readonly styles: SdinApplicationPageElement[];
/** 页面脚本标签列表 */
readonly scripts: SdinApplicationPageElement[];
/** 页面骨架渲染器 */
private readonly skeleton;
/** 数据宏定义 */
readonly datas: SdinApplicationPageDatas;
constructor(project: SdinProject, module: SdinApplicationModule, params: SdinApplicationPageParams);
validate(): Promise<void>;
getHtmlTitle(): string;
getHtmlDatas(): import("lodash").Omit<SdinApplicationPageDatas, "SDIN_PROJECT_AUTHOR_NAME" | "SDIN_PROJECT_AUTHOR_EMAIL">;
getMetaHtmlString(): string;
getLinkHtmlString(): string;
getStyleHtmlString(): string;
getScriptHtmlString(scripts?: SdinApplicationPageElement[]): string;
getSkeleton(): string;
private assignLabels;
private toHtmlString;
}