# 元数据
# 导入
通过如下方式导入元数据api
import metadata from "svr-api/metadata";
# 方法
/**
* 元数据相关API
*/
import { File } from "./fs";
/**返回系统所有的元数据项目 */
export function getAllProjects(): Array<MetaProjectInfo>;
/**
* 创建新的元数据项目
*/
export function createProject(args: { name: string, desc?: string }): void;
/**删除元数据项目 */
export function deleteProject(name: string): void;
/**
* 返回指定的元数据文件。
*
* @param idOrPath 元数据路径或者id,若是路径,可以是如下形式:
* 1. 完整的绝对路径,如`/ProjectName/data/path/to/yourfile.tbl`
* 2. 相对路径,相对于当前执行的脚本文件,如 `yourfile.tbl`、`../folder/yourfile.tbl`
* 3. 资源id
* @param throwIfNotExist 不存在时是否抛出异常,默认为false。
* @returns 返回文件或文件夹信息,不存在时返回`null` 。
*/
export function getFile(idOrPath: string, throwIfNotExist?: boolean): MetaFileInfo;
/**
* 返回指定的元数据文件夹。
*
* @param idOrPath 元数据路径或者id,若是路径,可以是如下形式:
* 1. 完整的绝对路径,如`/ProjectName/data/path/to/yourfile.tbl`
* 2. 相对路径,相对于当前执行的脚本文件,如 `yourfile.tbl`、`../folder/yourfile.tbl`
* 3. 资源id
* @param throwIfNotExist 不存在时是否抛出异常,默认为false。
* @returns 返回文件或文件夹信息,不存在时(也包括存在文件但不是文件夹)返回`null`。
*/
export function getFolder(idOrPath: string, throwIfNotExist?: boolean): MetaFileInfo;
/**
* 读取一个json文件,并返回json对象。
*
* @param path 元数据路径,可以是如下形式:
* 1. 完整的绝对路径,如`/ProjectName/data/path/to/yourfile.tbl`
* 2. 相对路径,相对于当前执行的脚本文件,如 `yourfile.tbl`、`../folder/yourfile.tbl`
* 3. 资源id
* @param throwIfNotExist 不存在时是否抛出异常,默认为false。
* @returns 返回文件的json信息,不存在时返回`null`。
*/
export function getJSON(path: string, throwIfNotExist?: boolean): any;
/**
* 读取一个模型文件,并返回`DwTableInfo`对象。
*
* @param path 元数据路径,可以是如下形式:
* 1. 完整的绝对路径,如`/ProjectName/data/path/to/yourfile.tbl`
* 2. 相对路径,相对于当前执行的脚本文件,如 `yourfile.tbl`、`../folder/yourfile.tbl`
* 3. 资源id
* @param throwIfNotExist 不存在时是否抛出异常,默认为false。
* @returns 返回模型表的信息,不存在时返回`null`。
*/
export function getDwTable(path: string, throwIfNotExist?: boolean): DwTableInfo;
/**
* 读取一个文件,并返回文件内容字符串。
*
* @param path 元数据路径,可以是如下形式:
* 1. 完整的绝对路径,如`/ProjectName/data/path/to/yourfile.tbl`
* 2. 相对路径,相对于当前执行的脚本文件,如 `yourfile.tbl`、`../folder/yourfile.tbl`
* 3. 资源id
* @param throwIfNotExist 不存在时是否抛出异常,默认为false。
* @returns 以字符串形式返回文件内容,不存在时返回`null`。
*/
export function getString(path: string): string;
/**
* 读取一个文件,并返回XML文档。
*
* @param path 元数据路径,可以是如下形式:
* 1. 完整的绝对路径,如`/ProjectName/data/path/to/yourfile.tbl`
* 2. 相对路径,相对于当前执行的脚本文件,如 `yourfile.tbl`、`../folder/yourfile.tbl`
* 3. 资源id
* @param throwIfNotExist 不存在时是否抛出异常,默认为false。
* @returns 以XML文档对象形式返回文件内容,不存在时返回`null`。
*/
export function getXML(path: string): XMLDocument;
/**
* 读取一个文件的内容,并返回对应的对象,支持如下对象:
* 1. tbl
* 2. dash
* 2. json
* 3. xml
* 4. 其它文件返回字符串
* @param path 元数据路径,可以是如下形式:
* 1. 完整的绝对路径,如`/ProjectName/data/path/to/yourfile.tbl`
* 2. 相对路径,相对于当前执行的脚本文件,如 `yourfile.tbl`、`../folder/yourfile.tbl`
* 3. 资源id
* @param throwIfNotExist 不存在时是否抛出异常,默认为false。
* @returns 根据文件的类型返回对应的对象,不存在时返回`null`。
*/
export function getObject(path: string): any;
/**
* 从物理表导入模型
* @returns 模型表的信息。path 模型表的路径,dbTableName 模型表对应的物理表
*/
export function importDWModelFromDbTables(args: {
projectName: string;
tables: Array<{
/**
* 来源数据表所在的数据源
*/
datasource: string,
/**
* 来源数据表所在的schema
*/
schema: string,
/**
* 来源数据表的表名
*/
dbTable: string,
/**
* 导入后的模型的名称
*/
name?: string,
/**
* 导入后模型的描述信息
*/
desc?: string
}>;
schema?: string;
/**目标元数据目录 */
targetFolder: string;
/**
* readonly 实时连接(只读模式,用于实时数据分析)
* readwrite 实时连接(读写模式,系统可能会更新数据或者表结构)
* extract 提取数据(只读模式,将业务系统数据提取到指定数据源,默认为分析主数据库)
**/
connectionType: 'readonly' | 'readwrite' | 'extract';
schedule?: string;
}): Array<{ path: string, dbTableName: string }>;
/**
* 查找满足条件的文件。
*
* @example
* searchFiles({parentDir:'/TestCase/ana/folder1'}); //列出目录`/TestCase/ana/folder1`下的文件列表(不返回文件夹,不递归到子文件夹)
*
* @param args
*/
export function searchFiles(args: {
/**父文件夹路径,完整的绝对路径,或相对于当前脚本的相对路径*/
parentDir: string,
/**是否递归查找,默认`false` */
recur?: boolean,
/**类型匹配,如:`"tbl"`、`["tbl","xml"]`,默认匹配所有类型 */
type?: string | string[],
/**是否返回文件夹对象,默认`false` */
includeFolder?: boolean,
/**包含哪些文件,如`*.tbl`、`['name1.tbl', 'name2.tbl']`,默认匹配所有文件 */
includeFiles?: string | string[],
/**排除那些文件,如`*.tbl`、`['name1.tbl', 'name2.tbl']`,默认不排除任何文件 */
excludeFiles?: string | string[],
/**匹配的文件内容,可以传递字符串或正则表达式,表示只返回包含指定内容的文件,默认不进行内容匹配查找 */
searchContent?: string | RegExp,
}): Array<MetaFileInfo>;
/**
* 创建文件,并保存文件内容。如果文件已存在,那么抛出异常,父文件夹不存在时将自动创建父文件夹。
*
* @param pathOrFileInfo 可以是:
* 1. 文件路径,完整的绝对路径,或相对于当前脚本文件的相对路径
* 2. `MetaFile`文件信息,可以传递`name`、`desc`、`icon`、`type`、`parentDir`、`path`、`content`属性。
* @param content 当`pathOrFileInfo`传递路径时,可以通过此参数传递文件内容,可传递json对象或字符串对象,不传递时写入空内容。
* @returns 返回新建的文件的文件信息,创建失败时跑出异常。
*/
export function createFile(pathOrFileInfo: string | MetaFileModifyInfo, content?: any): MetaFileInfo;
/**
* 写入文件内容,文件不存在时将自动创建,存在时将改写文件内容,父文件夹不存在时将自动创建父文件夹。
*
* @param path 文件路径,完整的绝对路径,或相对于当前脚本的相对路径
* @param content 文件内容,可传递json对象,或字符串对象,不传递时写入空内容
*/
export function writeFile(path: string, content?: any): void;
/**
* 创建文件夹,如果文件夹已存在,那么什么也不做。
*
* @param pathOrFileInfo 可以是:
* 1. 文件路径,完整的绝对路径,或相对于当前脚本文件的相对路径
* 2. `MetaFile`文件信息,可以传递`name`、`desc`、`icon`、`type`、`parentDir`、`path`属性。
*/
export function mkdirs(pathOrFileInfo: string | MetaFileModifyInfo): void;
/**
* 更新文件信息,如果文件不存在,那么抛出异常。
*
* @param resIdOrpath 要更新的文件夹路径或者元数据id,完整的绝对路径,或相对于当前脚本的相对路径
* @param info 更新信息,可以传递`name`、`desc`、`icon`、`type`、`parentDir`、`path`、`content`属性。
*/
export function modifyFile(resIdOrpath: string, info: MetaFileModifyInfo): void;
/**
* 删除元数据文件,如果文件不存在则什么都不做。
* @param path 要删除文件的path或path数组
*/
export function removeFiles(path: string | string[]): void;
/**
* 移动或重命名文件。如果文件不存在或目标文件已存在,那么抛出异常
*
* @param path 要移动的文件路径,完整的绝对路径,或相对于当前脚本的相对路径
* @param targetPath 要移动到的目标路径,完整的绝对路径,或相对于当前脚本的相对路径
*/
export function move(path: string, targetPath: string): void;
/**
* 删除文件到回收站。如果文件不存在,那么抛出异常
*
* @param path 要删除的文件路径,完整的绝对路径,或相对于当前脚本的相对路径
*/
export function remove(path: string): void;
/**
* 刷新指定的文件夹或文件的所有缓存对象。
*
* @param path 要刷新的文件路径,完整的绝对路径,或相对于当前脚本的相对路径
*/
export function refresh(path: string): void;
/**
* 运算一个activeDocx文件,并返回结果文件。
*/
export function runDocx(args: {
path: string;
/**如果不传递,默认生成docx */
export?: "pdf";
/**传递`false`表示忽略缓存,重新刷新文档(但本次刷新的结果还是会缓存起来供下次使用),默认系统会使用缓存尽量快速的显示文档 */
cache?: boolean;
/**传递给docx的计算参数 */
params?: { [name: string]: string | number }
}): File;
/**
* 导出报表、仪表板等对象的运行结果。
*
* @param args
* @return 返回导出的文件
*/
export function exportContent(args: {
/**导出到指定的文件夹,如果不传递,那么将自动产生一个临时文件 */
targetDir?: string,
/**导出设置 */
exportParams?: {
//压缩,可选参数,当resources有多个文件时总是压缩,只有一个文件时默认是false 不压缩
compress?: boolean,
/**压缩文件名。默认为`第一个资源名称_多文件。 */
fileName?: string;
/**导出资源信息 */
resources?: ExportContentObjectArgs[];
}
}): File;
/**
* 获取元数据影响关系,会通过元数据缓存机制获取
* @param resIdOrpath
* @param needLevel 是否查询下级
*/
export function getImpacts(resIdOrpath: string, needLevel: boolean): FileReferenceInfo;
0条评论
评论