# 元数据
# 导入
通过如下方式导入元数据api
import metadata from "svr-api/metadata";
# 方法
/**
* 元数据相关API
*/
import { File } from "./fs";
export type MetaFileContentType = JSONObject | Reader | InputStream | number[] | File | Blob | string;
/**
* 返回系统所有的元数据项目
*/
export function getAllProjects(): Array<MetaProjectInfo>;
/**
* 创建新的元数据项目,如果项目存在则抛出异常,提示已存在同名项目。
*
* @return 返回新建的项目信息
*/
export function createProject(args: { name: string, desc?: string }): MetaProjectInfo;
/**
* 删除元数据项目,如果项目不存在则抛出异常。
*/
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;
/**
* 查找满足匹配模式的文件,如:
*
* 1. `getFiles("/DEMO/data/**\/*.tbl")` 可以递归获取`/DEMO/data`目录下的所有tbl文件。
* 2. `getFiles("/DEMO/data/**\/aaa.tbl")` 可以递归搜索`/DEMO/data`目录下的名称为`aaa.tbl`的文件。
* 3. `getFiles("/DEMO/data/*\/aaa.tbl")` 可以搜索`/DEMO/data`目录的下一级目录(不递归)中的名称为
* `aaa.tbl`的文件。
*
* @see https://stackoverflow.com/questions/2952196/ant-path-style-patterns
* @param pathPattern 匹配模式,/开头。
* @returns 返回文件信息数组,如果找不到,返回空数组。
*/
export function getFiles(pathPattern: string): Array<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;
/**
* 返回指定的元数据文件的内容。
*
* 注意:本文件是元数据内部的缓存文件,外部不能修改、删除,否则会出现非预期错误。
*
* @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 getFileContent(idOrPath: string, throwIfNotExist?: boolean): File;
/**
* 读取一个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): JSONObject;
/**
* 读取一个文件,并返回文件内容字符串。
*
* @param path 元数据路径,可以是如下形式:
* 1. 完整的绝对路径,如`/ProjectName/data/path/to/yourfile.tbl`
* 2. 相对路径,相对于当前执行的脚本文件,如 `yourfile.tbl`、`../folder/yourfile.tbl`
* 3. 资源id
* @param encoding 文件内容编码,可选,默认编码`UTF-8`。
* @param throwIfNotExist 不存在时是否抛出异常,默认为`false`。
* @returns 以字符串形式返回文件内容,不存在时返回`null`。
*/
export function getString(path: string, encoding?: string, throwIfNotExist?: boolean): 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, throwIfNotExist?: boolean): XMLDocument;
/**
* 获取文件内容的通用方法。
*
* 根据文件内容返回相应格式的内容,例如对于`tbl`、`dash`文件,返回`JSON`对象,支持如下格式:
* 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, throwIfNotExist?: boolean): JSONObject | XMLDocument | string;
/**
* 创建文件,并保存文件内容。
*
* 如果文件已存在,那么抛出异常,父文件夹不存在时将自动创建父文件夹。
*
* @param pathOrFileInfo 可以是:
* 1. 文件路径,完整的绝对路径,或相对于当前脚本文件的相对路径
* 2. `MetaFile`文件信息,可以传递
* `name`、`desc`、`icon`、`type`、`parentDir`、`path`、`content`属性。
* @param content 当`pathOrFileInfo`传递路径时,可以通过此参数传递文件内容,可传
* 递`JSONObject|Reader|InputStream|byte[]|File|Blob|string`对象,不传递时写入空内容。
* @param encoding 文件内容编码,可选,默认编码`UTF-8`。
* @returns 返回新建的文件的文件信息,创建失败时跑出异常。
*/
export function createFile(pathOrFileInfo: string | MetaFileModifyInfo, content?: MetaFileContentType, encoding?: string): MetaFileInfo;
/**
* 写入文件内容,文件不存在时将自动创建,存在时将改写文件内容,父文件夹不存在时将自动创建父文件夹。
*
* @param path 文件路径,完整的绝对路径,或相对于当前脚本的相对路径
* @param content 文件内容,可传递`JSONObject|Reader|InputStream|byte[]|File|Blob|string`对象,不传递时写入空内容
* @param encoding 文件内容编码,可选,默认编码`UTF-8`。
*/
export function writeFile(path: string, content?: MetaFileContentType, encoding?: string): void;
/**
* 创建或更新一个元数据文件内容,并能同时设置文件的属性,如描述,父文件夹不存在时将自动创建父文件夹。
*
* @param args 设置文件信息,包括路径、内容、描述等。
*/
export function writeFile(args: MetaFileModifyInfo): 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[]): 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;
/**
* 执行程序流,并返回结果。
*
* 注意,此方法会将查询结果转成json字符串进行返回,包括查询节点的查询结果,调用者需保证
* 查询结果不要太大,以免造成oom。
*/
export function runActionFlow(args: {
path: string;
/**传递给程序流的参数 */
params?: { [name: string]: any }
}): JSONObject;
/**
* 运算一个activeDocx文件,并返回结果文件,无法转换时返回null
*
*
* 1. 传递path:将一个activeDocx元数据传入参数执行成指定格式的结果文件
* 2. 传递localFile:将一个docx磁盘文件转换成指定格式的结果文件,params,cache不会有效果
*/
export function runDocx(args: {
/**
* activeDocx元数据路径
*
* 此参数和localFile必须要有一个。
*/
path?: string;
/**
* docx磁盘文件路径
*
* 使用此参数指定磁盘文件作为转换的源头文件时,不支持params参数,只能将该文件转换成指定的格式。
*
* 此参数和path必须要一个。
*/
localFile?: 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 args
*/
export function refreshReferences(args: {
/**
* 要重建的文件路径或资源ID,支持目录,表示整个目录都要重建。
*/
files: string | string[],
/**
* 异步还是等待结束,默认true,不等待。设为false时将等待刷新完成。
*/
async: boolean,
/**
* 等待刷新超时时间,单位为ms,默认为30000ms。
*/
timeout?: number,
}): void;
/**
* 获取元数据影响关系,会通过元数据缓存机制获取
*
* @param resIdOrpath
*/
export function queryReferences(args: {
files: string | string[],
downStream?: boolean,
onlyData?: boolean
}): MetaFileRefInfo[];
/**
* 返回元数据对应的“BO对象”。
*
* 系统常见的元数据如`rpt`、`dash`、`spg`等的元数据格式都是`JSON`,不方便使用,故提供一个接口用于获
* 取元数据对应的业务对象(有时候也叫BO对象),便于访问相关的属性和方法。
*
* @param path 元数据路径,可以是如下形式:
* 1. 完整的绝对路径,如`/ProjectName/data/path/to/yourfile.tbl`
* 2. 相对路径,相对于当前执行的脚本文件,如`yourfile.tbl`、`../folder/yourfile.tbl`
* 3. 资源id
* @param throwIfNotExist 不存在时是否抛出异常,默认为false。
* @returns 根据文件的类型返回对应的对象,不存在时返回`null`。
*/
export function getBusinessObject(path: string, throwIfNotExist?: boolean): any;
0条评论
评论