UNPKG

ts-api-core

Version:

Nodejs api framework core

264 lines 13.1 kB
"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