ts-api-core
Version:
Nodejs api framework core
264 lines • 13.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SQLWrapperRequestConfig = exports.GraphWrapperRequestConfig = exports.ExecuteWrapperRequestConfig = exports.RequestConfig = exports.SQLFieldRequestOptions = exports.RequestResultFiled = exports.RequestResultMerageConditionConfig = exports.RequestResultMarageCondition = exports.RequestResultConfig = exports.RequestBodyParam = exports.RequestParam = exports.SQLRequestResultType = exports.RequestResultConvert = exports.RequestParamValidate = exports.RequestParamType = exports.RequestResultValue = exports.RequestType = exports.RequestMethod = exports.RequestItemArgs = exports.RequestItemArgsSource = exports.RequestItem = exports.RequestItemArgsOption = exports.RequestHeaderItem = exports.RequestData = void 0;
/**
* 请求数据定义
* ```
* 使用此类来定义一个 api 请求给客户端调用
* ```
*/
class RequestData {
constructor() {
/** 请求接口名称 */
this.name = "";
/** 数据源 api 列表 */
this.apis = [];
}
}
exports.RequestData = RequestData;
/** 请求 Header 定义 */
class RequestHeaderItem {
constructor() {
/** 是否必须 */
this.must = true;
}
}
exports.RequestHeaderItem = RequestHeaderItem;
/** 请求方法参数选项 */
var RequestItemArgsOption;
(function (RequestItemArgsOption) {
/** 默认值,仅包含指定的参数 */
RequestItemArgsOption[RequestItemArgsOption["None"] = 0] = "None";
/** Get 请求时全部Query源; POST请求时将全部 Query 源作为 Body */
RequestItemArgsOption[RequestItemArgsOption["AllQuery"] = 1] = "AllQuery";
/** Get请求时使用当前请求的所有BODY源作为Query, POST请求时使用全部Body源 */
RequestItemArgsOption[RequestItemArgsOption["AllBody"] = 2] = "AllBody";
/** 使用当前请求的全部Query和Body源 */
RequestItemArgsOption[RequestItemArgsOption["AllQueryBody"] = 3] = "AllQueryBody";
/** 使用当前请求的全部Query和Body源, 但排除掉 `args` 指定的参数 */
RequestItemArgsOption[RequestItemArgsOption["Exclude"] = 4] = "Exclude";
})(RequestItemArgsOption = exports.RequestItemArgsOption || (exports.RequestItemArgsOption = {}));
/** 请求方法 */
class RequestItem {
}
exports.RequestItem = RequestItem;
/** api 请求参数数据来源 */
var RequestItemArgsSource;
(function (RequestItemArgsSource) {
/** 数据来自于 Query */
RequestItemArgsSource["QUERY"] = "query";
/** 数据来自于 Body */
RequestItemArgsSource["BODY"] = "body";
/** 自动,GET 请求来源于 Query, POST 请求优先使用 Body, 不存在是使用 Query */
RequestItemArgsSource["AUTO"] = "auto";
/** 固定值,配置中直接指定的 `default` 值 */
RequestItemArgsSource["FIXED"] = "fixed";
})(RequestItemArgsSource = exports.RequestItemArgsSource || (exports.RequestItemArgsSource = {}));
/** api 请求参数选项 */
class RequestItemArgs {
}
exports.RequestItemArgs = RequestItemArgs;
/** 请求方法 */
var RequestMethod;
(function (RequestMethod) {
/** GET 请求 */
RequestMethod["GET"] = "get";
/** POST 请求 */
RequestMethod["POST"] = "post";
})(RequestMethod = exports.RequestMethod || (exports.RequestMethod = {}));
/** 请求类型 */
var RequestType;
(function (RequestType) {
/** 原始请求,直接根据参数调用API后按指定规则返回数据 */
RequestType["Raw"] = "raw";
/** 动态执行指定的 Wrapper, `config` 必须指定 `wrapper` 名称, `func` 要执行的函数名称, 及此函数需要的参数 `args` 列表。 配置类型: `ExecuteWrapperRequestConfig`
* @description 返回配置 `resp` 仅作为文档使用 */
RequestType["ExecuteWrapper"] = "wrapper";
/** 执行 GraphQL 查询, `config` 必须指定 `name` GraphQL查询名称, `query` 查询命令, 及此函数可能需要的参数 `args` 列表。 配置类型: `GraphWrapperRequestConfig`
* @description 返回配置 `resp` 仅作为文档使用 */
RequestType["GraphQL"] = "graph";
/** 执行 SQL 语句, `config` 必须指定 `sql` 语句。 配置类型: `SQLWrapperRequestConfig`
* @description 返回配置 `resp` 仅作为文档使用 */
RequestType["SQL"] = "sql";
})(RequestType = exports.RequestType || (exports.RequestType = {}));
/** 请求返回值选项 */
var RequestResultValue;
(function (RequestResultValue) {
/** 取值源于请求参数中的 query */
RequestResultValue[RequestResultValue["QUERY"] = -1] = "QUERY";
/** 取值源于请求参数中的 body */
RequestResultValue[RequestResultValue["BODY"] = -2] = "BODY";
/** 固定的,不取值 */
RequestResultValue[RequestResultValue["FIXED"] = -3] = "FIXED";
// /** 取值源于当前返回值 */
// RESPONSE = -4,
})(RequestResultValue = exports.RequestResultValue || (exports.RequestResultValue = {}));
/** 请求参数类型 */
var RequestParamType;
(function (RequestParamType) {
/** 字符串(默认) */
RequestParamType["StringType"] = "string";
/** 数字型(浮点数,长整数) */
RequestParamType["NumberType"] = "number";
/** 整型数字 */
RequestParamType["IntType"] = "int";
/** 布尔类型 */
RequestParamType["BoolType"] = "bool";
/** 日期类型 */
RequestParamType["DateType"] = "date";
// /** 数组型 */
// ArrayType = "array",
/** 对象型 */
RequestParamType["ObjectType"] = "object";
})(RequestParamType = exports.RequestParamType || (exports.RequestParamType = {}));
/** 请求参数校验器 */
var RequestParamValidate;
(function (RequestParamValidate) {
/** 数字型参数校验, 参数:`(message, max, min, defaultValue)` */
RequestParamValidate["NumberValidator"] = "number";
/** 整数型参数校验, 参数:`(message, max, min, defaultValue, must = true)` */
RequestParamValidate["IntValidator"] = "int";
/** 枚举型参数校验 `@pick`, 参数:`(pick[], defaultValue, must = true, message)` */
RequestParamValidate["PickValidator"] = "pick";
/** 手机号码参数校验, 参数:`must = true` */
RequestParamValidate["MobileValidator"] = "mobile";
/** 必填参数校验, 参数:`message` */
RequestParamValidate["RequiredValidator"] = "required";
/** 字符串参数长度校验, 参数:`lengthMin = 0, lengthMax = 50, message` */
RequestParamValidate["LengthValidator"] = "length";
/** 分页页码参数校验, 参数:`defaultValue = 1, message` */
RequestParamValidate["PageIndexValidator"] = "pageIndex";
/** 分页大小参数校验, 参数:`defaultValue = 50, message, max, min` */
RequestParamValidate["PageSizeValidator"] = "pageSize";
})(RequestParamValidate = exports.RequestParamValidate || (exports.RequestParamValidate = {}));
/** 请求返回数据字段转换器类型 */
var RequestResultConvert;
(function (RequestResultConvert) {
/** 直接排除掉某个字段, 参数:`无` */
RequestResultConvert["ExcludeField"] = "exclude_field";
/** 数据筛选转换器, 参数:`field: string, value: any | undefined` */
RequestResultConvert["ValueFilter"] = "value_filter";
/** 布尔值转换, 参数:`trueValue?: any | undefined` */
RequestResultConvert["BoolValue"] = "bool_value";
/** 布尔值计算转换, 参数:`calcCallBack?: (v: any | undefined) => boolean` */
RequestResultConvert["BoolCalc"] = "bool_calc";
/** 数值型转换, 参数:`calcCallBack?: (v: any) => number` */
RequestResultConvert["INT"] = "int";
/** JSON字符串转对象, 参数:`convSubFieldName = false` */
RequestResultConvert["JSON"] = "json";
/** 日期型转换器,参数:`无` */
RequestResultConvert["DATE"] = "date";
/** 子对象转换至父级,参烤:`convSubFieldName = false, convFieldName?: boolean` */
RequestResultConvert["SubObject"] = "sub_obj";
})(RequestResultConvert = exports.RequestResultConvert || (exports.RequestResultConvert = {}));
/** SQL 请求返回数据来源类型 */
var SQLRequestResultType;
(function (SQLRequestResultType) {
/** sql 语句执行的响应结果 */
SQLRequestResultType["SQL"] = "sql";
/** 插入语句执行结果 */
SQLRequestResultType["Insert"] = "insert";
/** 更新语句执行结果 */
SQLRequestResultType["Update"] = "update";
/** 查询语句执行结果 */
SQLRequestResultType["Query"] = "query";
/** 删除语句执行结果 */
SQLRequestResultType["Delete"] = "delete";
/** 插入或更新语句执行结果 */
SQLRequestResultType["InsertUpdate"] = "json";
})(SQLRequestResultType = exports.SQLRequestResultType || (exports.SQLRequestResultType = {}));
/** 请求 Query 参数 */
class RequestParam {
constructor() {
/** 参数校验器参数列表 */
this.validate_value = [];
}
}
exports.RequestParam = RequestParam;
/** 请求 Body 参数 */
class RequestBodyParam extends RequestParam {
}
exports.RequestBodyParam = RequestBodyParam;
/** 请求返回配置 */
class RequestResultConfig {
}
exports.RequestResultConfig = RequestResultConfig;
/** 请求返回值合并条件枚举 */
var RequestResultMarageCondition;
(function (RequestResultMarageCondition) {
/** 将源数据作为一个对象数组,从此数组中选择1个匹配的数据项,参数:`数组对象字段名`, `当前数据字段名` */
RequestResultMarageCondition["GetObjectArrayItem"] = "get_object_array_item";
})(RequestResultMarageCondition = exports.RequestResultMarageCondition || (exports.RequestResultMarageCondition = {}));
/** 请求返回数据自动合并数据条件配置 */
class RequestResultMerageConditionConfig {
constructor() {
/** 过滤器参数 */
this.args = [];
}
}
exports.RequestResultMerageConditionConfig = RequestResultMerageConditionConfig;
/** 请求返回字段配置 */
class RequestResultFiled {
constructor() {
/** 转换器参数 */
this.convert_param = [];
}
}
exports.RequestResultFiled = RequestResultFiled;
/** SQL 字段自定义选项 */
class SQLFieldRequestOptions {
}
exports.SQLFieldRequestOptions = SQLFieldRequestOptions;
/** 请求配置 */
class RequestConfig {
constructor() {
/** 是否使用小驼峰转换返回数据, `true` 或 `1` 时使用小驼峰, (默认 `true` ) */
this.hump = true;
/** 是否自动合并请求参数的字段, `true` 或 `1` 时自动合并所有字段, (默认 `false`) */
this.merage = false;
/** 是否将请求参数指定的字段认为是需要排除的字段, `true` 或 `1` 时需要排除, (默认 `false`) */
this.exclude = false;
}
}
exports.RequestConfig = RequestConfig;
// /** 表格请求配置 */
// export class TableRequestConfig extends RequestConfig {
// /** 报表 reportName */
// name?: string = "";
// /** 报表配置 reportKey */
// key?: string = "";
// /** 自定义的 `count` 字段原字段名, 默认为 rowCount */
// count?: string | undefined;
// /** 请求Body参数,用于 searchData,当接口本身是GET,请求又是POST时,定义POST请求的body参数 */
// bodyArgs?: RequestItemArgs[];
// }
// /** Report 请求配置 */
// export class ReportRequestConfig extends TableRequestConfig {
// /** 报表名称 total key, 默认使用 reportName */
// total_name?: string = "";
// /** 取 total 信息的 api 地址 */
// url_total?: string;
// /** 取 items 信息的 api 地址 */
// url_items?: string;
// /** 取 columns 信息的 api 地址 */
// url_columns?: string;
// /** 取 config 信息的 api 地址 */
// url_config?: string;
// /** 是否使用 summary 接口的 totals 字段来填充返回的 total (合计信息) 字段 */
// totals_commary?: boolean;
// /** 是否在需要时,自动使用 summary 接口的 TotalCount 字段来填充返回 Talble 的 count 字段 */
// count_commary?: boolean;
// }
/** ExecuteWrapper 请求配置 */
class ExecuteWrapperRequestConfig extends RequestConfig {
}
exports.ExecuteWrapperRequestConfig = ExecuteWrapperRequestConfig;
/** GraphWrapper 请求配置, 使用 GraphQL 查询时,`apis` 默认为 `API_Graphql_Execute`, 要自定义则必须是 `string` */
class GraphWrapperRequestConfig extends RequestConfig {
}
exports.GraphWrapperRequestConfig = GraphWrapperRequestConfig;
/** SQL 请求配置, 会将所以配置项生成 sql 后一起执行 (如果接口设置了 `resp`,最终响应数据可以受 `resp` 影响,否则会返回完整的执行结果) */
class SQLWrapperRequestConfig extends RequestConfig {
}
exports.SQLWrapperRequestConfig = SQLWrapperRequestConfig;
//# sourceMappingURL=reqest.data.js.map