@cloudbase/wx-cloud-client-sdk
Advanced tools
| export {}; |
| import { MethodResponse, CallDataSourceParams } from '../types'; | ||
| export declare const callDataSource: ({ dataSourceName, methodName, params, realMethodName, callFunction, }: CallDataSourceParams) => Promise<MethodResponse<any>>; |
| export declare class WxCloudSDKError extends Error { | ||
| code: string | undefined; | ||
| requestId: string | undefined; | ||
| originError: Error | undefined; | ||
| constructor(message: string, extra?: { | ||
| requestId?: string; | ||
| code?: string; | ||
| originError?: Error; | ||
| }); | ||
| } |
| import { CloudBaseInstance, ExtendedCloudBaseInstance } from './types'; | ||
| export declare function init(cloud: CloudBaseInstance): ExtendedCloudBaseInstance; | ||
| export * from './types'; |
| import { OrmClient, CallFunction } from '../types'; | ||
| export declare const generateClientByDataSourceName: (dataSourceName: string, callFunction: CallFunction) => OrmClient; | ||
| export declare const generateClient: (callFunction: CallFunction) => OrmClient; |
| /** | ||
| * 基础 Model 类型定义 | ||
| */ | ||
| export interface Model { | ||
| _id?: string; | ||
| createdAt?: number; | ||
| updatedAt?: number; | ||
| owner?: Relation; | ||
| createBy?: Relation; | ||
| updateBy?: Relation; | ||
| _openid?: string; | ||
| } | ||
| /** | ||
| * 模型方法的定义 | ||
| * ===================================================================== | ||
| */ | ||
| /** | ||
| * 模型操作方法的返回类型定义。 | ||
| * @template T 返回数据的类型。 | ||
| */ | ||
| export declare type MethodResponse<T> = { | ||
| /** | ||
| * 返回的数据。 | ||
| */ | ||
| data: T; | ||
| /** | ||
| * 请求的唯一标识符。 | ||
| */ | ||
| requestId?: string; | ||
| }; | ||
| /** | ||
| * 模型操作方法接口定义。 | ||
| * @template T 模型字段的类型。 | ||
| */ | ||
| export interface DataModelMethods<T> { | ||
| /** | ||
| * 创建单条数据的方法。 | ||
| * @param {Object} params - 包含创建数据的参数对象。 | ||
| * @returns {Promise<MethodResponse<CreateResponse<T>>>} 包含创建响应的Promise对象。 | ||
| * @example | ||
| * models.<model_name>.create({ | ||
| * data: { | ||
| * // 模型字段数据 | ||
| * } | ||
| * }).then(({ data }) => { | ||
| * console.log(data.id); // 输出创建的数据ID | ||
| * }); | ||
| */ | ||
| create: (params: { | ||
| data: T; | ||
| }) => Promise<MethodResponse<CreateResponse<T>>>; | ||
| /** | ||
| * 创建多条数据的方法。 | ||
| * @param {Object} params - 包含创建数据数组的参数对象。 | ||
| * @returns {Promise<MethodResponse<CreateManyResponse<T>>>} 包含创建多个响应的Promise对象。 | ||
| * @example | ||
| * models.<model_name>.createMany({ | ||
| * data: [ | ||
| * // 模型字段数据数组 | ||
| * ] | ||
| * }).then(({ data }) => { | ||
| * console.log(data.idList); // 输出创建的数据ID列表 | ||
| * }); | ||
| */ | ||
| createMany: (params: { | ||
| data: T[]; | ||
| }) => Promise<MethodResponse<CreateManyResponse<T>>>; | ||
| /** | ||
| * 更新单条数据的方法。 | ||
| * @param {Object} params - 包含更新数据和筛选条件的参数对象。 | ||
| * @returns {Promise<MethodResponse<UpdateResponse<T>>>} 包含更新响应的Promise对象。 | ||
| * @example | ||
| * models.<model_name>.update({ | ||
| * data: { | ||
| * // 更新的数据字段 | ||
| * }, | ||
| * filter: { | ||
| * where: { | ||
| * // 筛选条件 | ||
| * } | ||
| * } | ||
| * }).then(({ data }) => { | ||
| * console.log(data.count); // 输出更新的数据条数 | ||
| * }); | ||
| */ | ||
| update: (params: { | ||
| data: T; | ||
| filter: FilterParams<T>; | ||
| }) => Promise<MethodResponse<UpdateResponse<T>>>; | ||
| /** | ||
| * 更新多条数据的方法。 | ||
| * @param {Object} params - 包含更新数据和筛选条件的参数对象。 | ||
| * @returns {Promise<MethodResponse<UpdateManyResponse<T>>>} 包含更新多个响应的Promise对象。 | ||
| * @example | ||
| * models.<model_name>.updateMany({ | ||
| * data: { | ||
| * // 更新的数据字段 | ||
| * }, | ||
| * filter: { | ||
| * where: { | ||
| * // 筛选条件 | ||
| * } | ||
| * } | ||
| * }).then(({ data }) => { | ||
| * console.log(data.count); // 输出更新的数据条数 | ||
| * }); | ||
| */ | ||
| updateMany: (params: { | ||
| data: T; | ||
| filter: FilterParams<T>; | ||
| }) => Promise<MethodResponse<CreateManyResponse<T>>>; | ||
| /** | ||
| * 删除单条数据的方法。 | ||
| * @param {Object} params - 包含筛选条件的参数对象。 | ||
| * @returns {Promise<MethodResponse<DeleteResponse<T>>>} 包含删除响应的Promise对象。 | ||
| * @example | ||
| * models.<model_name>.delete({ | ||
| * filter: { | ||
| * where: { | ||
| * // 筛选条件,例如根据ID删除特定记录 | ||
| * _id: { | ||
| * $eq: "特定ID值" | ||
| * } | ||
| * } | ||
| * } | ||
| * }).then(({ data }) => { | ||
| * console.log(data.count); // 输出删除的数据条数 | ||
| * }); | ||
| */ | ||
| delete: (params: { | ||
| filter: FilterParams<T>; | ||
| }) => Promise<MethodResponse<DeleteResponse<T>>>; | ||
| /** | ||
| * 删除多条数据的方法。 | ||
| * @param {Object} params - 包含筛选条件的参数对象。 | ||
| * @returns {Promise<MethodResponse<DeleteManyResponse<T>>>} 包含删除多个响应的Promise对象。 | ||
| * @example | ||
| * models.<model_name>.deleteMany({ | ||
| * filter: { | ||
| * where: { | ||
| * // 筛选条件,例如删除所有满足特定条件的记录 | ||
| * } | ||
| * } | ||
| * }).then(({ data }) => { | ||
| * console.log(data.count); // 输出删除的数据条数 | ||
| * }); | ||
| */ | ||
| deleteMany: (params: { | ||
| filter: FilterParams<T>; | ||
| }) => Promise<MethodResponse<DeleteManyResponse<T>>>; | ||
| /** | ||
| * 获取单条数据的方法。 | ||
| * @param {Object} params - 包含筛选条件和选择字段的参数对象。 | ||
| * @returns {Promise<MethodResponse<T>>} 包含单个记录的Promise对象。 | ||
| * @example | ||
| * models.<model_name>.get({ | ||
| * filter: { | ||
| * where: { | ||
| * // 筛选条件 | ||
| * } | ||
| * }, | ||
| * select: { | ||
| * $master: true // 选择主表所有字段 | ||
| * } | ||
| * }).then(({ data }) => { | ||
| * console.log(data); // 输出查询到的数据 | ||
| * }); | ||
| */ | ||
| get: (params: { | ||
| filter: FilterParams<T>; | ||
| select?: SelectParams<T>; | ||
| }) => Promise<MethodResponse<T>>; | ||
| /** | ||
| * 获取多条数据的方法。 | ||
| * @param {Object} params - 包含筛选条件、选择字段、分页和排序选项的参数对象。 | ||
| * @returns {Promise<MethodResponse<{ records: T[]; total?: number }>>} 包含记录列表和总数的Promise对象。 | ||
| * @example | ||
| * models.<model_name>.list({ | ||
| * filter: { | ||
| * where: { | ||
| * // 筛选条件 | ||
| * } | ||
| * }, | ||
| * select: { | ||
| * $master: true // 选择主表所有字段 | ||
| * }, | ||
| * getCount: true, // 开启用来获取总数 | ||
| * pageSize: 10, // 分页大小 | ||
| * pageNumber: 1, // 当前页码 | ||
| * orderBy: [{ createdAt: 'desc' }] // 排序参数 | ||
| * }).then(({ data }) => { | ||
| * console.log(data.records, data.total); // 输出查询到的数据列表和总数 | ||
| * }); | ||
| */ | ||
| list: (params: { | ||
| /** | ||
| * 过滤条件 | ||
| */ | ||
| filter?: FilterParams<T>; | ||
| /** | ||
| * 可以指定返回本表或者关联表的字段,如果想查询本表所有字段,请使用 { $master: true } | ||
| */ | ||
| select?: SelectParams<T>; | ||
| /** | ||
| * 是否获取 filter 命中条件的查询条数 | ||
| */ | ||
| getCount?: boolean; | ||
| /** | ||
| * 分页大小,建议指定,如需设置为其它值,需要和pageNo配合使用,两者同时指定才会生效 | ||
| */ | ||
| pageSize?: number; | ||
| /** | ||
| * 分页数目 | ||
| */ | ||
| pageNumber?: number; | ||
| /** | ||
| * 排序参数,当前仅支持最多 3 字段排序 | ||
| */ | ||
| orderBy?: OrderByParams[]; | ||
| }) => Promise<MethodResponse<{ | ||
| records: T[]; | ||
| total?: number; | ||
| }>>; | ||
| } | ||
| /** | ||
| * 模型方法返回值的定义 | ||
| * ===================================================================== | ||
| */ | ||
| /** | ||
| * 数据创建方法的返回类型定义。 | ||
| * @template T 模型字段的类型。 | ||
| */ | ||
| export declare type CreateResponse<T> = { | ||
| id: string; | ||
| }; | ||
| /** | ||
| * 创建多条记录的响应类型定义。 | ||
| * @template T 模型字段的类型。 | ||
| */ | ||
| export declare type CreateManyResponse<T> = { | ||
| /** | ||
| * 创建的记录的ID列表。 | ||
| */ | ||
| idList: string[]; | ||
| }; | ||
| /** | ||
| * 更新操作的响应类型定义。 | ||
| * @template T 模型字段的类型。 | ||
| */ | ||
| export declare type UpdateResponse<T> = { | ||
| /** | ||
| * 更新操作影响的记录数量。 | ||
| */ | ||
| count: number; | ||
| }; | ||
| /** | ||
| * 删除操作的响应类型定义,用于表示删除操作影响的记录数量。 | ||
| * @template T 模型字段的类型。 | ||
| */ | ||
| export declare type DeleteResponse<T> = { | ||
| /** | ||
| * 删除操作影响的记录数量。 | ||
| * 如果count为0,表示没有记录被删除; | ||
| * 如果count大于0,表示有相应数量的记录被成功删除。 | ||
| */ | ||
| count: number; | ||
| }; | ||
| /** | ||
| * 删除多条记录的响应类型定义,与更新操作的响应类型相同。 | ||
| * @template T 模型字段的类型。 | ||
| */ | ||
| export declare type DeleteManyResponse<T> = UpdateResponse<T>; | ||
| /** | ||
| * 数据列表方法的返回类型定义。 | ||
| * @template T 模型字段的类型。 | ||
| */ | ||
| export declare type ListResponse<T> = MethodResponse<{ | ||
| records: T[]; | ||
| total?: number; | ||
| }>; | ||
| /** | ||
| * list 方法参数定义。 | ||
| * @template T 模型字段的类型。 | ||
| */ | ||
| export declare type ListParams<T> = { | ||
| filter?: FilterParams<T>; | ||
| select?: SelectParams<T> | { | ||
| $master: boolean; | ||
| }; | ||
| getCount?: boolean; | ||
| pageSize?: number; | ||
| pageNumber?: number; | ||
| orderBy?: OrderByParams[]; | ||
| relateWhere?: any; | ||
| }; | ||
| /** | ||
| * 过滤条件项的类型定义。 | ||
| * ===================================================================== | ||
| */ | ||
| /** | ||
| * 定义过滤参数的类型。 | ||
| * | ||
| * @template T 表示模型字段的类型。 | ||
| * @example | ||
| * { | ||
| relateWhere: { | ||
| comments: { | ||
| where: { | ||
| comment: { | ||
| $nempty: true, | ||
| }, | ||
| }, | ||
| }, | ||
| }, | ||
| where: {}, | ||
| } | ||
| */ | ||
| export declare type FilterParams<T> = { | ||
| /** | ||
| * 基础查询 | ||
| */ | ||
| where?: FilterConditionItem<T> | FilterObject<T>; | ||
| /** | ||
| * 关联关系查询 | ||
| */ | ||
| relateWhere?: { | ||
| [K in RelationKeys<T>]?: { | ||
| where: FilterConditionItem<T[K] extends Model[] ? T[K][0] : T[K]> | FilterObject<T[K]>; | ||
| }; | ||
| }; | ||
| }; | ||
| /** | ||
| * 定义过滤参数的类型。 | ||
| * | ||
| * @template T 表示模型字段的类型。 | ||
| * 此类型定义允许使用复杂的查询条件来过滤数据。 | ||
| * | ||
| * @example <caption>示例 1: 使用`$and`运算符来组合多个条件。</caption> | ||
| * { | ||
| * "$and": [ | ||
| * { | ||
| * "title": { | ||
| * "$eq": "hello" | ||
| * } | ||
| * } | ||
| * ] | ||
| * } | ||
| * | ||
| * @example <caption>示例 2: 使用`$or`运算符来组合多个条件,其中包含一个`$and`子条件。</caption> | ||
| * { | ||
| * "$or": [ | ||
| * { | ||
| * "$and": [ | ||
| * { | ||
| * "title": { | ||
| * "$eq": "hello" | ||
| * } | ||
| * }, | ||
| * { | ||
| * "body": { | ||
| * "$neq": "world" | ||
| * } | ||
| * } | ||
| * ] | ||
| * }, | ||
| * { | ||
| * "createdBy": { | ||
| * "$eq": "xxx" | ||
| * } | ||
| * } | ||
| * ] | ||
| * } | ||
| */ | ||
| export declare type FilterObject<T> = { | ||
| [operator in LogicalOperator]?: FilterConditionItem<T>[] | FilterObject<T>; | ||
| }; | ||
| /** | ||
| * 过滤参数类型定义。 | ||
| * | ||
| * 此类型定义允许对模型字段进行条件过滤,支持复杂的查询操作。 | ||
| * | ||
| * @template T 模型字段的类型。 | ||
| * | ||
| * @example | ||
| * 示例 1: 使用`$and`运算符来组合条件,确保所有条件都满足。 | ||
| * ```json | ||
| * { | ||
| * "$and": [ | ||
| * { | ||
| * "key": { | ||
| * "$eq": "val" | ||
| * } | ||
| * } | ||
| * ] | ||
| * } | ||
| * ``` | ||
| * | ||
| * @example | ||
| * 示例 2: 使用`$and`运算符来组合条件,其中包含`$in`运算符来检查数组包含性。 | ||
| * ```json | ||
| * { | ||
| * "$and": [ | ||
| * { | ||
| * "key1": { | ||
| * "$in": [ | ||
| * "foo", | ||
| * "bar" | ||
| * ] | ||
| * } | ||
| * }, | ||
| * { | ||
| * "key2": { | ||
| * "$in": [ | ||
| * 1, | ||
| * 2 | ||
| * ] | ||
| * } | ||
| * } | ||
| * ] | ||
| * } | ||
| * ``` | ||
| */ | ||
| export declare type FilterConditionItem<T> = { | ||
| [key in keyof T]?: FilterCondition; | ||
| }; | ||
| /** | ||
| * 复杂查询条件类型定义 | ||
| * | ||
| * @example | ||
| * { | ||
| * "$eq": "val" | ||
| * } | ||
| */ | ||
| export declare type FilterCondition = { | ||
| [key in ComparisonOperator]?: any; | ||
| }; | ||
| /** | ||
| * 比较运算符类型定义,包括基础和特殊运算符。 | ||
| * @example | ||
| * $eq: 等于 | ||
| */ | ||
| export declare type ComparisonOperator = BasicComparisonOperator | SpecialComparisonOperator; | ||
| /** | ||
| * 排序参数结构定义。 | ||
| * | ||
| * @example | ||
| * { | ||
| "createdAt": "asc", | ||
| } | ||
| */ | ||
| export declare type OrderByParams = { | ||
| [key: string]: 'asc' | 'desc'; | ||
| }; | ||
| /** | ||
| * 选择参数结构定义,用于指定查询时返回的字段。 | ||
| * @template T 模型字段的类型。 | ||
| * @example | ||
| * { | ||
| "key1": true, | ||
| } | ||
| * | ||
| * @example | ||
| * { | ||
| $master: true, | ||
| } | ||
| * | ||
| * @example | ||
| * { | ||
| $master: true, | ||
| comments: { | ||
| comment: true, | ||
| } | ||
| } | ||
| */ | ||
| export declare type SelectParams<T> = { | ||
| [K in keyof T]?: T[K] extends Array<infer U> | undefined ? SelectParams<U> | boolean : T[K] extends object | undefined ? SelectParams<T[K]> | boolean : boolean; | ||
| } & { | ||
| $master?: boolean; | ||
| }; | ||
| /** | ||
| * 基础比较运算符类型定义。 | ||
| */ | ||
| export declare type BasicComparisonOperator = '$eq' | '$neq' | '$gt' | '$gte' | '$lt' | '$lte' | '$in' | '$nin'; | ||
| /** | ||
| * 特殊比较运算符类型定义 | ||
| */ | ||
| export declare type SpecialComparisonOperator = '$search' | '$nsearch' | '$empty' | '$nempty'; | ||
| /** | ||
| * 逻辑运算符类型定义。 | ||
| */ | ||
| export declare type LogicalOperator = '$and' | '$or'; | ||
| export declare type RelationField<T> = T extends { | ||
| [key: string]: infer U; | ||
| } ? U : never; | ||
| /** | ||
| * @hidden | ||
| */ | ||
| declare type RelationKeys<T> = T extends any ? { | ||
| [K in keyof T]: T[K] extends Model | Model[] ? K : never; | ||
| }[keyof T] : never; | ||
| /** | ||
| * 关联关系类型定义。 | ||
| * @hidden | ||
| */ | ||
| export declare type Relation = string; | ||
| /** | ||
| * ORM客户端接口,包含不同模型名称到其操作方法的映射。 | ||
| * @hidden | ||
| */ | ||
| export interface OrmClient { | ||
| [modelName: string]: DataModelMethods<any>; | ||
| } | ||
| /** | ||
| * 调用数据源参数的结构定义,用于封装调用云函数时所需的参数。 | ||
| * @hidden | ||
| */ | ||
| export interface CallDataSourceParams { | ||
| /** | ||
| * 数据源的名称,标识调用的数据源。 | ||
| */ | ||
| dataSourceName: string; | ||
| /** | ||
| * 方法名称,标识要调用的数据源中的具体方法。 | ||
| */ | ||
| methodName: string; | ||
| /** | ||
| * 传递给数据源方法的参数,可以是任意形式的键值对。 | ||
| */ | ||
| params: Record<string, any>; | ||
| /** | ||
| * 真实的方法名称,可能在某些情况下与`methodName`不同。 | ||
| */ | ||
| realMethodName: string; | ||
| /** | ||
| * 调用函数的方法,用于执行实际的云函数调用。 | ||
| */ | ||
| callFunction: CallFunction; | ||
| } | ||
| /** | ||
| * 云函数调用接口,包含调用函数和认证信息。 | ||
| * @hidden | ||
| */ | ||
| export declare type CloudBaseInstance = { | ||
| callFunction: CallFunction; | ||
| auth: any; | ||
| }; | ||
| /** | ||
| * 扩展的云实例接口,扩展了云函数调用接口并包含ORM客户端。 | ||
| * @hidden | ||
| */ | ||
| export interface ExtendedCloudBaseInstance extends CloudBaseInstance { | ||
| models: OrmClient; | ||
| } | ||
| /** | ||
| * 云函数调用方法定义。 | ||
| * @hidden | ||
| * @param args - 包含函数名称、数据源名称、方法名称和参数的对象。 | ||
| * @returns 返回一个Promise,解析为任意类型。 | ||
| */ | ||
| export declare type CallFunction = (args: { | ||
| name: string; | ||
| data: { | ||
| dataSourceName: string; | ||
| methodName: string; | ||
| params: Record<string, any>; | ||
| }; | ||
| }) => Promise<any>; | ||
| export {}; |
| 'use strict'; | ||
| /****************************************************************************** | ||
| Copyright (c) Microsoft Corporation. | ||
| Permission to use, copy, modify, and/or distribute this software for any | ||
| purpose with or without fee is hereby granted. | ||
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
| REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
| AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
| INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
| LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
| OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
| PERFORMANCE OF THIS SOFTWARE. | ||
| ***************************************************************************** */ | ||
| /* global Reflect, Promise */ | ||
| var extendStatics = function(d, b) { | ||
| extendStatics = Object.setPrototypeOf || | ||
| ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
| function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; | ||
| return extendStatics(d, b); | ||
| }; | ||
| function __extends(d, b) { | ||
| if (typeof b !== "function" && b !== null) | ||
| throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); | ||
| extendStatics(d, b); | ||
| function __() { this.constructor = d; } | ||
| d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
| } | ||
| var __assign = function() { | ||
| __assign = Object.assign || function __assign(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| function __awaiter(thisArg, _arguments, P, generator) { | ||
| function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
| return new (P || (P = Promise))(function (resolve, reject) { | ||
| function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
| function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
| function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
| step((generator = generator.apply(thisArg, [])).next()); | ||
| }); | ||
| } | ||
| function __generator(thisArg, body) { | ||
| var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
| return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
| function verb(n) { return function (v) { return step([n, v]); }; } | ||
| function step(op) { | ||
| if (f) throw new TypeError("Generator is already executing."); | ||
| while (_) try { | ||
| if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
| if (y = 0, t) op = [op[0] & 2, t.value]; | ||
| switch (op[0]) { | ||
| case 0: case 1: t = op; break; | ||
| case 4: _.label++; return { value: op[1], done: false }; | ||
| case 5: _.label++; y = op[1]; op = [0]; continue; | ||
| case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
| default: | ||
| if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
| if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
| if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
| if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
| if (t[2]) _.ops.pop(); | ||
| _.trys.pop(); continue; | ||
| } | ||
| op = body.call(thisArg, _); | ||
| } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
| if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
| } | ||
| } | ||
| var WxCloudSDKError = /** @class */ (function (_super) { | ||
| __extends(WxCloudSDKError, _super); | ||
| function WxCloudSDKError(message, extra) { | ||
| var _this = _super.call(this, message) || this; | ||
| _this.name = 'WxCloudSDKError'; | ||
| _this.code = extra === null || extra === void 0 ? void 0 : extra.code; | ||
| _this.requestId = extra === null || extra === void 0 ? void 0 : extra.requestId; | ||
| _this.originError = extra === null || extra === void 0 ? void 0 : extra.originError; | ||
| return _this; | ||
| } | ||
| return WxCloudSDKError; | ||
| }(Error)); | ||
| var callDataSource = function (_a) { | ||
| var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction; | ||
| return __awaiter(void 0, void 0, void 0, function () { | ||
| var result, response, error_1; | ||
| var _b, _c; | ||
| return __generator(this, function (_d) { | ||
| switch (_d.label) { | ||
| case 0: | ||
| result = { | ||
| data: {}, | ||
| requestId: '' | ||
| }; | ||
| _d.label = 1; | ||
| case 1: | ||
| _d.trys.push([1, 3, , 4]); | ||
| return [4 /*yield*/, callFunction({ | ||
| name: 'lowcode-datasource', | ||
| data: { | ||
| dataSourceName: dataSourceName, | ||
| methodName: methodName, | ||
| params: params | ||
| } | ||
| })]; | ||
| case 2: | ||
| response = _d.sent(); | ||
| if (response === null || response === void 0 ? void 0 : response.result.code) { | ||
| throw new WxCloudSDKError("\u3010\u9519\u8BEF\u3011".concat(response === null || response === void 0 ? void 0 : response.result.message, "\n\u3010\u64CD\u4F5C\u3011\u8C03\u7528 ").concat(dataSourceName, ".").concat(realMethodName, "\n\u3010\u8BF7\u6C42ID\u3011").concat((response === null || response === void 0 ? void 0 : response.requestId) || 'N/A'), { | ||
| code: response === null || response === void 0 ? void 0 : response.result.code, | ||
| requestId: response === null || response === void 0 ? void 0 : response.requestId | ||
| }); | ||
| } | ||
| else { | ||
| result.data = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.data) || {}; | ||
| result.requestId = ((_c = response === null || response === void 0 ? void 0 : response.result) === null || _c === void 0 ? void 0 : _c.requestId) || ''; | ||
| } | ||
| return [3 /*break*/, 4]; | ||
| case 3: | ||
| error_1 = _d.sent(); | ||
| if (error_1.name === 'WxCloudSDKError') { | ||
| throw error_1; | ||
| } | ||
| else { | ||
| console.log(error_1); | ||
| throw new WxCloudSDKError("\u3010\u9519\u8BEF\u3011".concat(error_1.message, "\n \u3010\u64CD\u4F5C\u3011\u8C03\u7528 ").concat(dataSourceName, ".").concat(realMethodName, "\n \u3010\u8BF7\u6C42ID\u3011N/A"), { | ||
| code: 'UnknownError', | ||
| originError: error_1 | ||
| }); | ||
| } | ||
| case 4: return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); | ||
| }; | ||
| var CRUD_METHODS = { | ||
| create: { | ||
| methodName: 'wedaCreateV2' | ||
| }, | ||
| createMany: { | ||
| methodName: 'wedaBatchCreateV2' | ||
| }, | ||
| update: { | ||
| methodName: 'wedaUpdateV2' | ||
| }, | ||
| updateMany: { | ||
| methodName: 'wedaBatchUpdateV2' | ||
| }, | ||
| "delete": { | ||
| methodName: 'wedaDeleteV2' | ||
| }, | ||
| deleteMany: { | ||
| methodName: 'wedaBatchDeleteV2' | ||
| }, | ||
| get: { | ||
| methodName: 'wedaGetItemV2', | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| }, | ||
| list: { | ||
| methodName: 'wedaGetRecordsV2', | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| } | ||
| }; | ||
| var generateClientByDataSourceName = function (dataSourceName, callFunction) { | ||
| var client = new Proxy({}, { | ||
| get: function (target, methodName) { | ||
| var operation = CRUD_METHODS[methodName]; | ||
| if (!operation) { | ||
| var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName)); | ||
| throw new WxCloudSDKError(error.message || 'Unknown error occurred', { | ||
| originError: error, | ||
| code: 'NotSupported', | ||
| requestId: 'N/A' | ||
| }); | ||
| } | ||
| return function (params) { return __awaiter(void 0, void 0, void 0, function () { | ||
| var effectiveParams, rawData, result, dataKey; | ||
| var _a; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: | ||
| effectiveParams = __assign(__assign({}, (operation.defaultParams || {})), (params || {})); | ||
| return [4 /*yield*/, callDataSource({ | ||
| callFunction: callFunction, | ||
| dataSourceName: dataSourceName, | ||
| methodName: operation.methodName, | ||
| realMethodName: methodName, | ||
| params: effectiveParams | ||
| })]; | ||
| case 1: | ||
| rawData = _b.sent(); | ||
| result = { data: {} }; | ||
| dataKey = operation.responseKey; | ||
| result.data = dataKey ? (_a = rawData === null || rawData === void 0 ? void 0 : rawData.data) === null || _a === void 0 ? void 0 : _a[dataKey] : rawData === null || rawData === void 0 ? void 0 : rawData.data; | ||
| return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); }; | ||
| } | ||
| }); | ||
| return client; | ||
| }; | ||
| // 使用 TypeScript 的 Proxy 来定义一个动态的客户端 | ||
| var generateClient = function (callFunction) { | ||
| return new Proxy({}, { | ||
| get: function (target, prop) { | ||
| if (typeof prop === 'string') { | ||
| // 返回一个函数,这个函数接受任意参数并返回一个 Promise | ||
| return generateClientByDataSourceName(prop, callFunction); | ||
| } | ||
| } | ||
| }); | ||
| }; | ||
| function init(cloud) { | ||
| if (!cloud) { | ||
| throw new Error('cloud is required'); | ||
| } | ||
| if (!cloud.callFunction) { | ||
| throw new Error('cloud.callFunction is required'); | ||
| } | ||
| var OrmClientImpl = generateClient(cloud.callFunction.bind(cloud)); | ||
| cloud.models = OrmClientImpl; | ||
| return cloud; | ||
| } | ||
| exports.init = init; |
| /****************************************************************************** | ||
| Copyright (c) Microsoft Corporation. | ||
| Permission to use, copy, modify, and/or distribute this software for any | ||
| purpose with or without fee is hereby granted. | ||
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
| REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
| AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
| INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
| LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
| OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
| PERFORMANCE OF THIS SOFTWARE. | ||
| ***************************************************************************** */ | ||
| /* global Reflect, Promise */ | ||
| var extendStatics = function(d, b) { | ||
| extendStatics = Object.setPrototypeOf || | ||
| ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
| function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; | ||
| return extendStatics(d, b); | ||
| }; | ||
| function __extends(d, b) { | ||
| if (typeof b !== "function" && b !== null) | ||
| throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); | ||
| extendStatics(d, b); | ||
| function __() { this.constructor = d; } | ||
| d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
| } | ||
| var __assign = function() { | ||
| __assign = Object.assign || function __assign(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| function __awaiter(thisArg, _arguments, P, generator) { | ||
| function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
| return new (P || (P = Promise))(function (resolve, reject) { | ||
| function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
| function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
| function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
| step((generator = generator.apply(thisArg, [])).next()); | ||
| }); | ||
| } | ||
| function __generator(thisArg, body) { | ||
| var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
| return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
| function verb(n) { return function (v) { return step([n, v]); }; } | ||
| function step(op) { | ||
| if (f) throw new TypeError("Generator is already executing."); | ||
| while (_) try { | ||
| if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
| if (y = 0, t) op = [op[0] & 2, t.value]; | ||
| switch (op[0]) { | ||
| case 0: case 1: t = op; break; | ||
| case 4: _.label++; return { value: op[1], done: false }; | ||
| case 5: _.label++; y = op[1]; op = [0]; continue; | ||
| case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
| default: | ||
| if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
| if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
| if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
| if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
| if (t[2]) _.ops.pop(); | ||
| _.trys.pop(); continue; | ||
| } | ||
| op = body.call(thisArg, _); | ||
| } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
| if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
| } | ||
| } | ||
| var WxCloudSDKError = /** @class */ (function (_super) { | ||
| __extends(WxCloudSDKError, _super); | ||
| function WxCloudSDKError(message, extra) { | ||
| var _this = _super.call(this, message) || this; | ||
| _this.name = 'WxCloudSDKError'; | ||
| _this.code = extra === null || extra === void 0 ? void 0 : extra.code; | ||
| _this.requestId = extra === null || extra === void 0 ? void 0 : extra.requestId; | ||
| _this.originError = extra === null || extra === void 0 ? void 0 : extra.originError; | ||
| return _this; | ||
| } | ||
| return WxCloudSDKError; | ||
| }(Error)); | ||
| var callDataSource = function (_a) { | ||
| var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction; | ||
| return __awaiter(void 0, void 0, void 0, function () { | ||
| var result, response, error_1; | ||
| var _b, _c; | ||
| return __generator(this, function (_d) { | ||
| switch (_d.label) { | ||
| case 0: | ||
| result = { | ||
| data: {}, | ||
| requestId: '' | ||
| }; | ||
| _d.label = 1; | ||
| case 1: | ||
| _d.trys.push([1, 3, , 4]); | ||
| return [4 /*yield*/, callFunction({ | ||
| name: 'lowcode-datasource', | ||
| data: { | ||
| dataSourceName: dataSourceName, | ||
| methodName: methodName, | ||
| params: params | ||
| } | ||
| })]; | ||
| case 2: | ||
| response = _d.sent(); | ||
| if (response === null || response === void 0 ? void 0 : response.result.code) { | ||
| throw new WxCloudSDKError("\u3010\u9519\u8BEF\u3011".concat(response === null || response === void 0 ? void 0 : response.result.message, "\n\u3010\u64CD\u4F5C\u3011\u8C03\u7528 ").concat(dataSourceName, ".").concat(realMethodName, "\n\u3010\u8BF7\u6C42ID\u3011").concat((response === null || response === void 0 ? void 0 : response.requestId) || 'N/A'), { | ||
| code: response === null || response === void 0 ? void 0 : response.result.code, | ||
| requestId: response === null || response === void 0 ? void 0 : response.requestId | ||
| }); | ||
| } | ||
| else { | ||
| result.data = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.data) || {}; | ||
| result.requestId = ((_c = response === null || response === void 0 ? void 0 : response.result) === null || _c === void 0 ? void 0 : _c.requestId) || ''; | ||
| } | ||
| return [3 /*break*/, 4]; | ||
| case 3: | ||
| error_1 = _d.sent(); | ||
| if (error_1.name === 'WxCloudSDKError') { | ||
| throw error_1; | ||
| } | ||
| else { | ||
| console.log(error_1); | ||
| throw new WxCloudSDKError("\u3010\u9519\u8BEF\u3011".concat(error_1.message, "\n \u3010\u64CD\u4F5C\u3011\u8C03\u7528 ").concat(dataSourceName, ".").concat(realMethodName, "\n \u3010\u8BF7\u6C42ID\u3011N/A"), { | ||
| code: 'UnknownError', | ||
| originError: error_1 | ||
| }); | ||
| } | ||
| case 4: return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); | ||
| }; | ||
| var CRUD_METHODS = { | ||
| create: { | ||
| methodName: 'wedaCreateV2' | ||
| }, | ||
| createMany: { | ||
| methodName: 'wedaBatchCreateV2' | ||
| }, | ||
| update: { | ||
| methodName: 'wedaUpdateV2' | ||
| }, | ||
| updateMany: { | ||
| methodName: 'wedaBatchUpdateV2' | ||
| }, | ||
| "delete": { | ||
| methodName: 'wedaDeleteV2' | ||
| }, | ||
| deleteMany: { | ||
| methodName: 'wedaBatchDeleteV2' | ||
| }, | ||
| get: { | ||
| methodName: 'wedaGetItemV2', | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| }, | ||
| list: { | ||
| methodName: 'wedaGetRecordsV2', | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| } | ||
| }; | ||
| var generateClientByDataSourceName = function (dataSourceName, callFunction) { | ||
| var client = new Proxy({}, { | ||
| get: function (target, methodName) { | ||
| var operation = CRUD_METHODS[methodName]; | ||
| if (!operation) { | ||
| var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName)); | ||
| throw new WxCloudSDKError(error.message || 'Unknown error occurred', { | ||
| originError: error, | ||
| code: 'NotSupported', | ||
| requestId: 'N/A' | ||
| }); | ||
| } | ||
| return function (params) { return __awaiter(void 0, void 0, void 0, function () { | ||
| var effectiveParams, rawData, result, dataKey; | ||
| var _a; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: | ||
| effectiveParams = __assign(__assign({}, (operation.defaultParams || {})), (params || {})); | ||
| return [4 /*yield*/, callDataSource({ | ||
| callFunction: callFunction, | ||
| dataSourceName: dataSourceName, | ||
| methodName: operation.methodName, | ||
| realMethodName: methodName, | ||
| params: effectiveParams | ||
| })]; | ||
| case 1: | ||
| rawData = _b.sent(); | ||
| result = { data: {} }; | ||
| dataKey = operation.responseKey; | ||
| result.data = dataKey ? (_a = rawData === null || rawData === void 0 ? void 0 : rawData.data) === null || _a === void 0 ? void 0 : _a[dataKey] : rawData === null || rawData === void 0 ? void 0 : rawData.data; | ||
| return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); }; | ||
| } | ||
| }); | ||
| return client; | ||
| }; | ||
| // 使用 TypeScript 的 Proxy 来定义一个动态的客户端 | ||
| var generateClient = function (callFunction) { | ||
| return new Proxy({}, { | ||
| get: function (target, prop) { | ||
| if (typeof prop === 'string') { | ||
| // 返回一个函数,这个函数接受任意参数并返回一个 Promise | ||
| return generateClientByDataSourceName(prop, callFunction); | ||
| } | ||
| } | ||
| }); | ||
| }; | ||
| function init(cloud) { | ||
| if (!cloud) { | ||
| throw new Error('cloud is required'); | ||
| } | ||
| if (!cloud.callFunction) { | ||
| throw new Error('cloud.callFunction is required'); | ||
| } | ||
| var OrmClientImpl = generateClient(cloud.callFunction.bind(cloud)); | ||
| cloud.models = OrmClientImpl; | ||
| return cloud; | ||
| } | ||
| export { init }; |
| (function (global, factory) { | ||
| typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : | ||
| typeof define === 'function' && define.amd ? define(['exports'], factory) : | ||
| (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.wxCloudClientSDK = {})); | ||
| })(this, (function (exports) { 'use strict'; | ||
| /****************************************************************************** | ||
| Copyright (c) Microsoft Corporation. | ||
| Permission to use, copy, modify, and/or distribute this software for any | ||
| purpose with or without fee is hereby granted. | ||
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
| REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
| AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
| INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
| LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
| OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
| PERFORMANCE OF THIS SOFTWARE. | ||
| ***************************************************************************** */ | ||
| /* global Reflect, Promise */ | ||
| var extendStatics = function(d, b) { | ||
| extendStatics = Object.setPrototypeOf || | ||
| ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
| function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; | ||
| return extendStatics(d, b); | ||
| }; | ||
| function __extends(d, b) { | ||
| if (typeof b !== "function" && b !== null) | ||
| throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); | ||
| extendStatics(d, b); | ||
| function __() { this.constructor = d; } | ||
| d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
| } | ||
| var __assign = function() { | ||
| __assign = Object.assign || function __assign(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| function __awaiter(thisArg, _arguments, P, generator) { | ||
| function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
| return new (P || (P = Promise))(function (resolve, reject) { | ||
| function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
| function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
| function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
| step((generator = generator.apply(thisArg, [])).next()); | ||
| }); | ||
| } | ||
| function __generator(thisArg, body) { | ||
| var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
| return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
| function verb(n) { return function (v) { return step([n, v]); }; } | ||
| function step(op) { | ||
| if (f) throw new TypeError("Generator is already executing."); | ||
| while (_) try { | ||
| if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
| if (y = 0, t) op = [op[0] & 2, t.value]; | ||
| switch (op[0]) { | ||
| case 0: case 1: t = op; break; | ||
| case 4: _.label++; return { value: op[1], done: false }; | ||
| case 5: _.label++; y = op[1]; op = [0]; continue; | ||
| case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
| default: | ||
| if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
| if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
| if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
| if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
| if (t[2]) _.ops.pop(); | ||
| _.trys.pop(); continue; | ||
| } | ||
| op = body.call(thisArg, _); | ||
| } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
| if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
| } | ||
| } | ||
| var WxCloudSDKError = /** @class */ (function (_super) { | ||
| __extends(WxCloudSDKError, _super); | ||
| function WxCloudSDKError(message, extra) { | ||
| var _this = _super.call(this, message) || this; | ||
| _this.name = 'WxCloudSDKError'; | ||
| _this.code = extra === null || extra === void 0 ? void 0 : extra.code; | ||
| _this.requestId = extra === null || extra === void 0 ? void 0 : extra.requestId; | ||
| _this.originError = extra === null || extra === void 0 ? void 0 : extra.originError; | ||
| return _this; | ||
| } | ||
| return WxCloudSDKError; | ||
| }(Error)); | ||
| var callDataSource = function (_a) { | ||
| var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction; | ||
| return __awaiter(void 0, void 0, void 0, function () { | ||
| var result, response, error_1; | ||
| var _b, _c; | ||
| return __generator(this, function (_d) { | ||
| switch (_d.label) { | ||
| case 0: | ||
| result = { | ||
| data: {}, | ||
| requestId: '' | ||
| }; | ||
| _d.label = 1; | ||
| case 1: | ||
| _d.trys.push([1, 3, , 4]); | ||
| return [4 /*yield*/, callFunction({ | ||
| name: 'lowcode-datasource', | ||
| data: { | ||
| dataSourceName: dataSourceName, | ||
| methodName: methodName, | ||
| params: params | ||
| } | ||
| })]; | ||
| case 2: | ||
| response = _d.sent(); | ||
| if (response === null || response === void 0 ? void 0 : response.result.code) { | ||
| throw new WxCloudSDKError("\u3010\u9519\u8BEF\u3011".concat(response === null || response === void 0 ? void 0 : response.result.message, "\n\u3010\u64CD\u4F5C\u3011\u8C03\u7528 ").concat(dataSourceName, ".").concat(realMethodName, "\n\u3010\u8BF7\u6C42ID\u3011").concat((response === null || response === void 0 ? void 0 : response.requestId) || 'N/A'), { | ||
| code: response === null || response === void 0 ? void 0 : response.result.code, | ||
| requestId: response === null || response === void 0 ? void 0 : response.requestId | ||
| }); | ||
| } | ||
| else { | ||
| result.data = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.data) || {}; | ||
| result.requestId = ((_c = response === null || response === void 0 ? void 0 : response.result) === null || _c === void 0 ? void 0 : _c.requestId) || ''; | ||
| } | ||
| return [3 /*break*/, 4]; | ||
| case 3: | ||
| error_1 = _d.sent(); | ||
| if (error_1.name === 'WxCloudSDKError') { | ||
| throw error_1; | ||
| } | ||
| else { | ||
| console.log(error_1); | ||
| throw new WxCloudSDKError("\u3010\u9519\u8BEF\u3011".concat(error_1.message, "\n \u3010\u64CD\u4F5C\u3011\u8C03\u7528 ").concat(dataSourceName, ".").concat(realMethodName, "\n \u3010\u8BF7\u6C42ID\u3011N/A"), { | ||
| code: 'UnknownError', | ||
| originError: error_1 | ||
| }); | ||
| } | ||
| case 4: return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); | ||
| }; | ||
| var CRUD_METHODS = { | ||
| create: { | ||
| methodName: 'wedaCreateV2' | ||
| }, | ||
| createMany: { | ||
| methodName: 'wedaBatchCreateV2' | ||
| }, | ||
| update: { | ||
| methodName: 'wedaUpdateV2' | ||
| }, | ||
| updateMany: { | ||
| methodName: 'wedaBatchUpdateV2' | ||
| }, | ||
| "delete": { | ||
| methodName: 'wedaDeleteV2' | ||
| }, | ||
| deleteMany: { | ||
| methodName: 'wedaBatchDeleteV2' | ||
| }, | ||
| get: { | ||
| methodName: 'wedaGetItemV2', | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| }, | ||
| list: { | ||
| methodName: 'wedaGetRecordsV2', | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| } | ||
| }; | ||
| var generateClientByDataSourceName = function (dataSourceName, callFunction) { | ||
| var client = new Proxy({}, { | ||
| get: function (target, methodName) { | ||
| var operation = CRUD_METHODS[methodName]; | ||
| if (!operation) { | ||
| var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName)); | ||
| throw new WxCloudSDKError(error.message || 'Unknown error occurred', { | ||
| originError: error, | ||
| code: 'NotSupported', | ||
| requestId: 'N/A' | ||
| }); | ||
| } | ||
| return function (params) { return __awaiter(void 0, void 0, void 0, function () { | ||
| var effectiveParams, rawData, result, dataKey; | ||
| var _a; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: | ||
| effectiveParams = __assign(__assign({}, (operation.defaultParams || {})), (params || {})); | ||
| return [4 /*yield*/, callDataSource({ | ||
| callFunction: callFunction, | ||
| dataSourceName: dataSourceName, | ||
| methodName: operation.methodName, | ||
| realMethodName: methodName, | ||
| params: effectiveParams | ||
| })]; | ||
| case 1: | ||
| rawData = _b.sent(); | ||
| result = { data: {} }; | ||
| dataKey = operation.responseKey; | ||
| result.data = dataKey ? (_a = rawData === null || rawData === void 0 ? void 0 : rawData.data) === null || _a === void 0 ? void 0 : _a[dataKey] : rawData === null || rawData === void 0 ? void 0 : rawData.data; | ||
| return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); }; | ||
| } | ||
| }); | ||
| return client; | ||
| }; | ||
| // 使用 TypeScript 的 Proxy 来定义一个动态的客户端 | ||
| var generateClient = function (callFunction) { | ||
| return new Proxy({}, { | ||
| get: function (target, prop) { | ||
| if (typeof prop === 'string') { | ||
| // 返回一个函数,这个函数接受任意参数并返回一个 Promise | ||
| return generateClientByDataSourceName(prop, callFunction); | ||
| } | ||
| } | ||
| }); | ||
| }; | ||
| function init(cloud) { | ||
| if (!cloud) { | ||
| throw new Error('cloud is required'); | ||
| } | ||
| if (!cloud.callFunction) { | ||
| throw new Error('cloud.callFunction is required'); | ||
| } | ||
| var OrmClientImpl = generateClient(cloud.callFunction.bind(cloud)); | ||
| cloud.models = OrmClientImpl; | ||
| return cloud; | ||
| } | ||
| exports.init = init; | ||
| })); |
+11
-7
| { | ||
| "name": "@cloudbase/wx-cloud-client-sdk", | ||
| "version": "1.0.0-alpha.1", | ||
| "version": "1.0.0-alpha.2", | ||
| "description": "wx cloud client sdk", | ||
| "main": "lib/wxCloudCLientSDK.cjs.js", | ||
| "module": "lib/wxCloudCLientSDK.esm.js", | ||
| "browser": "lib/wxCloudCLientSDK.umd.js", | ||
| "main": "lib/wxCloudClientSDK.cjs.js", | ||
| "module": "lib/wxCloudClientSDK.esm.js", | ||
| "browser": "lib/wxCloudClientSDK.umd.js", | ||
| "types": "lib/index.d.ts", | ||
@@ -15,6 +15,8 @@ "files": [ | ||
| "build": "npm run clean && rollup -c", | ||
| "start-demo": "parcel demo/index.html", | ||
| "develop": "parcel demo/index.html", | ||
| "sync-dts": "cd demo && tcb model sync-dts --envId=lowcode-4gs26nnz095f6f4d", | ||
| "build-demo": "npx rimraf dist/* && parcel build demo/index.html --public-url ./", | ||
| "publish": "npm publish --access public", | ||
| "publish-demo": "tcb hosting deploy dist wx-cloud-client-sdk-demo -e lowcode-4gs26nnz095f6f4d" | ||
| "publish-demo": "tcb hosting deploy dist wx-cloud-client-sdk-demo -e lowcode-4gs26nnz095f6f4d", | ||
| "docs": "npx rimraf docs/* && typedoc --options typedoc.json" | ||
| }, | ||
@@ -27,2 +29,4 @@ "devDependencies": { | ||
| "rollup": "^4.18.0", | ||
| "typedoc": "^0.25.13", | ||
| "typedoc-plugin-markdown": "^4.0.3", | ||
| "typescript": "4.4.4" | ||
@@ -37,2 +41,2 @@ }, | ||
| ] | ||
| } | ||
| } |
| import { MethodResponse, CallDataSourceParams } from '../types'; | ||
| export declare const callDataSource: ({ dataSourceName, methodName, params, realMethodName, callFunction }: CallDataSourceParams) => Promise<MethodResponse<any>>; |
| import { CloudBaseInstance, ExtendedCloudBaseInstance } from "./types"; | ||
| export declare function init(cloud: CloudBaseInstance): ExtendedCloudBaseInstance; | ||
| export * from "./types"; |
| import { OrmClient, CallFunction } from "../types"; | ||
| export declare const generateClientByDataSourceName: (dataSourceName: string, callFunction: CallFunction) => OrmClient; | ||
| export declare const generateClient: (callFunction: CallFunction) => OrmClient; |
| export declare type DataModelFields<T> = { | ||
| [key: string]: T; | ||
| }; | ||
| export declare type MethodResponse<T> = { | ||
| data: T; | ||
| error?: null | { | ||
| code: string; | ||
| message: string; | ||
| requestId: string; | ||
| }; | ||
| }; | ||
| export declare type CloudBaseInstance = { | ||
| callFunction: CallFunction; | ||
| auth: any; | ||
| }; | ||
| export interface ExtendedCloudBaseInstance extends CloudBaseInstance { | ||
| models: OrmClient; | ||
| } | ||
| export declare type CallFunction = (args: { | ||
| name: string; | ||
| data: { | ||
| dataSourceName: string; | ||
| methodName: string; | ||
| params: Record<string, any>; | ||
| }; | ||
| }) => Promise<any>; | ||
| export interface CallDataSourceParams { | ||
| dataSourceName: string; | ||
| methodName: string; | ||
| params: Record<string, any>; | ||
| realMethodName: string; | ||
| callFunction: CallFunction; | ||
| } | ||
| export declare type CreateResponse<T> = { | ||
| id: string; | ||
| }; | ||
| export declare type CreateManyResponse<T> = { | ||
| idList: string[]; | ||
| }; | ||
| export declare type UpdateResponse<T> = { | ||
| count: number; | ||
| }; | ||
| export declare type DeleteResponse<T> = UpdateResponse<T>; | ||
| export declare type GetResponse<T> = MethodResponse<T>; | ||
| export declare type ListResponse<T> = MethodResponse<{ | ||
| records: T[]; | ||
| total?: number; | ||
| }>; | ||
| export declare type OrderByParams = { | ||
| [key: string]: 'asc' | 'desc'; | ||
| }; | ||
| export declare type SelectParams<T> = { | ||
| [key in keyof T]?: boolean; | ||
| }; | ||
| export declare type BasicComparisonOperator = '$eq' | '$neq' | '$gt' | '$gte' | '$lt' | '$lte' | '$in' | '$nin'; | ||
| export declare type SpecialComparisonOperator = '$search' | '$nsearch' | '$empty' | '$nempty' | '$eq-current-user' | '$ne-current-user'; | ||
| export declare type ComparisonOperator = BasicComparisonOperator | SpecialComparisonOperator; | ||
| export declare type FilterCondition = { | ||
| [key in ComparisonOperator]?: any; | ||
| }; | ||
| export declare type FilterConditionItem<T> = { | ||
| [key in keyof T]?: FilterCondition; | ||
| }; | ||
| export declare type LogicalOperator = '$and' | '$or'; | ||
| export declare type FilterObject<T> = { | ||
| [operator in LogicalOperator]?: FilterConditionItem<T>[] | FilterObject<T>; | ||
| }; | ||
| export declare type FilterParams<T> = { | ||
| where?: FilterObject<T>; | ||
| }; | ||
| export declare type ListParams<T> = { | ||
| filter?: FilterParams<T>; | ||
| select?: SelectParams<T>; | ||
| getCount?: boolean; | ||
| pageSize?: number; | ||
| pageNumber?: number; | ||
| orderBy?: OrderByParams[]; | ||
| relateWhere?: any; | ||
| }; | ||
| export declare type Relation = string; | ||
| export interface Fields { | ||
| _id?: string; | ||
| createdAt?: Date; | ||
| updatedAt?: Date; | ||
| owner?: Relation; | ||
| createBy?: Relation; | ||
| updateBy?: Relation; | ||
| _departmentList?: Relation[]; | ||
| _openid?: string; | ||
| } | ||
| export interface DataModelMethods<T> { | ||
| create: (params: { | ||
| data: T; | ||
| }) => Promise<MethodResponse<CreateResponse<T>>>; | ||
| createMany: (params: { | ||
| data: T[]; | ||
| }) => Promise<MethodResponse<CreateManyResponse<T>>>; | ||
| update: (params: { | ||
| data: T; | ||
| filter: FilterParams<T>; | ||
| }) => Promise<MethodResponse<UpdateResponse<T>>>; | ||
| updateMany: (params: { | ||
| data: T; | ||
| filter: FilterParams<T>; | ||
| }) => Promise<MethodResponse<UpdateResponse<T>>>; | ||
| delete: (params: { | ||
| filter: FilterParams<T>; | ||
| }) => Promise<MethodResponse<DeleteResponse<T>>>; | ||
| deleteMany: (params: { | ||
| filter: FilterParams<T>; | ||
| }) => Promise<MethodResponse<DeleteResponse<T>>>; | ||
| get: (params: { | ||
| filter: FilterParams<T>; | ||
| select?: SelectParams<T>; | ||
| }) => Promise<MethodResponse<T>>; | ||
| list: (params: { | ||
| filter?: FilterParams<T>; | ||
| select?: SelectParams<T>; | ||
| getCount?: boolean; | ||
| pageSize?: number; | ||
| pageNumber?: number; | ||
| orderBy?: OrderByParams[]; | ||
| }) => Promise<MethodResponse<{ | ||
| records: T[]; | ||
| total?: number; | ||
| }>>; | ||
| } | ||
| export interface OrmClient { | ||
| [modelName: string]: DataModelMethods<any>; | ||
| } |
| 'use strict'; | ||
| /****************************************************************************** | ||
| Copyright (c) Microsoft Corporation. | ||
| Permission to use, copy, modify, and/or distribute this software for any | ||
| purpose with or without fee is hereby granted. | ||
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
| REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
| AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
| INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
| LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
| OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
| PERFORMANCE OF THIS SOFTWARE. | ||
| ***************************************************************************** */ | ||
| /* global Reflect, Promise, SuppressedError, Symbol */ | ||
| var __assign = function() { | ||
| __assign = Object.assign || function __assign(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| function __awaiter(thisArg, _arguments, P, generator) { | ||
| function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
| return new (P || (P = Promise))(function (resolve, reject) { | ||
| function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
| function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
| function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
| step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
| }); | ||
| } | ||
| function __generator(thisArg, body) { | ||
| var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
| return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
| function verb(n) { return function (v) { return step([n, v]); }; } | ||
| function step(op) { | ||
| if (f) throw new TypeError("Generator is already executing."); | ||
| while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
| if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
| if (y = 0, t) op = [op[0] & 2, t.value]; | ||
| switch (op[0]) { | ||
| case 0: case 1: t = op; break; | ||
| case 4: _.label++; return { value: op[1], done: false }; | ||
| case 5: _.label++; y = op[1]; op = [0]; continue; | ||
| case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
| default: | ||
| if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
| if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
| if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
| if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
| if (t[2]) _.ops.pop(); | ||
| _.trys.pop(); continue; | ||
| } | ||
| op = body.call(thisArg, _); | ||
| } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
| if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
| } | ||
| } | ||
| typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { | ||
| var e = new Error(message); | ||
| return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; | ||
| }; | ||
| var callDataSource = function (_a) { | ||
| var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction; | ||
| return __awaiter(void 0, void 0, void 0, function () { | ||
| var result, response, error_1; | ||
| var _b; | ||
| return __generator(this, function (_c) { | ||
| switch (_c.label) { | ||
| case 0: | ||
| result = { | ||
| data: {}, | ||
| error: null | ||
| }; | ||
| _c.label = 1; | ||
| case 1: | ||
| _c.trys.push([1, 3, , 4]); | ||
| return [4 /*yield*/, callFunction({ | ||
| name: "lowcode-datasource-preview", | ||
| data: { | ||
| dataSourceName: dataSourceName, | ||
| methodName: methodName, | ||
| params: params | ||
| } | ||
| })]; | ||
| case 2: | ||
| response = _c.sent(); | ||
| if (response === null || response === void 0 ? void 0 : response.result.code) { | ||
| result.error = { | ||
| code: response === null || response === void 0 ? void 0 : response.result.code, | ||
| message: "\u3010\u9519\u8BEF\u3011" + (response === null || response === void 0 ? void 0 : response.result.message) + " \n\u3010\u64CD\u4F5C\u3011\u8C03\u7528 " + dataSourceName + "." + realMethodName + "\n\u3010\u8BF7\u6C42ID\u3011" + (response === null || response === void 0 ? void 0 : response.requestId), | ||
| requestId: response === null || response === void 0 ? void 0 : response.requestId | ||
| }; | ||
| } | ||
| else { | ||
| result.data = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.data) || {}; | ||
| } | ||
| return [3 /*break*/, 4]; | ||
| case 3: | ||
| error_1 = _c.sent(); | ||
| console.error(error_1); | ||
| result.error = { | ||
| code: 'InternalError', | ||
| message: error_1.message || 'Unknown error occurred', | ||
| requestId: 'N/A' | ||
| }; | ||
| return [3 /*break*/, 4]; | ||
| case 4: | ||
| if (result.error) { | ||
| console.error(result.error); | ||
| } | ||
| return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); | ||
| }; | ||
| var CRUD_METHODS = { | ||
| create: { | ||
| methodName: "wedaCreateV2" | ||
| }, | ||
| createMany: { | ||
| methodName: "wedaBatchCreateV2" | ||
| }, | ||
| update: { | ||
| methodName: "wedaUpdateV2" | ||
| }, | ||
| updateMany: { | ||
| methodName: "wedaBatchUpdateV2" | ||
| }, | ||
| "delete": { | ||
| methodName: "wedaDeleteV2" | ||
| }, | ||
| deleteMany: { | ||
| methodName: "wedaBatchDeleteV2" | ||
| }, | ||
| get: { | ||
| methodName: "wedaGetItemV2", | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| }, | ||
| list: { | ||
| methodName: "wedaGetRecordsV2", | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| } | ||
| }; | ||
| var generateClientByDataSourceName = function (dataSourceName, callFunction) { | ||
| var client = new Proxy({}, { | ||
| get: function (target, methodName) { | ||
| var operation = CRUD_METHODS[methodName]; | ||
| if (!operation) { | ||
| var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: " + methodName); | ||
| console.error(error); | ||
| return { | ||
| data: {}, | ||
| error: { | ||
| code: "InternalError", | ||
| message: error.message || "Unknown error occurred", | ||
| requestId: "N/A" | ||
| } | ||
| }; | ||
| } | ||
| console.group("[" + dataSourceName + "." + methodName + "]"); | ||
| return function (params) { return __awaiter(void 0, void 0, void 0, function () { | ||
| var effectiveParams, rawData, result, dataKey; | ||
| var _a; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: | ||
| effectiveParams = __assign(__assign({}, (operation.defaultParams || {})), (params || {})); | ||
| console.log(params); | ||
| console.log({ | ||
| dataSourceName: dataSourceName, | ||
| methodName: operation.methodName, | ||
| realMethodName: methodName, | ||
| params: effectiveParams | ||
| }); | ||
| return [4 /*yield*/, callDataSource({ | ||
| callFunction: callFunction, | ||
| dataSourceName: dataSourceName, | ||
| methodName: operation.methodName, | ||
| realMethodName: methodName, | ||
| params: effectiveParams | ||
| })]; | ||
| case 1: | ||
| rawData = _b.sent(); | ||
| result = { error: null, data: {} }; | ||
| if (!rawData.error) { | ||
| dataKey = operation.responseKey; | ||
| result.data = dataKey ? (_a = rawData === null || rawData === void 0 ? void 0 : rawData.data) === null || _a === void 0 ? void 0 : _a[dataKey] : rawData === null || rawData === void 0 ? void 0 : rawData.data; | ||
| } | ||
| else { | ||
| result.error = rawData.error; | ||
| } | ||
| console.log(result); | ||
| console.groupEnd(); | ||
| return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); }; | ||
| } | ||
| }); | ||
| return client; | ||
| }; | ||
| // 使用 TypeScript 的 Proxy 来定义一个动态的客户端 | ||
| var generateClient = function (callFunction) { | ||
| return new Proxy({}, { | ||
| get: function (target, prop) { | ||
| if (typeof prop === "string") { | ||
| // 返回一个函数,这个函数接受任意参数并返回一个 Promise | ||
| return generateClientByDataSourceName(prop, callFunction); | ||
| } | ||
| } | ||
| }); | ||
| }; | ||
| function init(cloud) { | ||
| if (!cloud) { | ||
| throw new Error("cloud is required"); | ||
| } | ||
| if (!cloud.callFunction) { | ||
| throw new Error("cloud.callFunction is required"); | ||
| } | ||
| var OrmClientImpl = generateClient(cloud.callFunction.bind(cloud)); | ||
| cloud.models = OrmClientImpl; | ||
| return cloud; | ||
| } | ||
| exports.init = init; |
| /****************************************************************************** | ||
| Copyright (c) Microsoft Corporation. | ||
| Permission to use, copy, modify, and/or distribute this software for any | ||
| purpose with or without fee is hereby granted. | ||
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
| REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
| AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
| INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
| LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
| OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
| PERFORMANCE OF THIS SOFTWARE. | ||
| ***************************************************************************** */ | ||
| /* global Reflect, Promise, SuppressedError, Symbol */ | ||
| var __assign = function() { | ||
| __assign = Object.assign || function __assign(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| function __awaiter(thisArg, _arguments, P, generator) { | ||
| function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
| return new (P || (P = Promise))(function (resolve, reject) { | ||
| function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
| function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
| function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
| step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
| }); | ||
| } | ||
| function __generator(thisArg, body) { | ||
| var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
| return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
| function verb(n) { return function (v) { return step([n, v]); }; } | ||
| function step(op) { | ||
| if (f) throw new TypeError("Generator is already executing."); | ||
| while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
| if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
| if (y = 0, t) op = [op[0] & 2, t.value]; | ||
| switch (op[0]) { | ||
| case 0: case 1: t = op; break; | ||
| case 4: _.label++; return { value: op[1], done: false }; | ||
| case 5: _.label++; y = op[1]; op = [0]; continue; | ||
| case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
| default: | ||
| if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
| if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
| if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
| if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
| if (t[2]) _.ops.pop(); | ||
| _.trys.pop(); continue; | ||
| } | ||
| op = body.call(thisArg, _); | ||
| } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
| if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
| } | ||
| } | ||
| typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { | ||
| var e = new Error(message); | ||
| return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; | ||
| }; | ||
| var callDataSource = function (_a) { | ||
| var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction; | ||
| return __awaiter(void 0, void 0, void 0, function () { | ||
| var result, response, error_1; | ||
| var _b; | ||
| return __generator(this, function (_c) { | ||
| switch (_c.label) { | ||
| case 0: | ||
| result = { | ||
| data: {}, | ||
| error: null | ||
| }; | ||
| _c.label = 1; | ||
| case 1: | ||
| _c.trys.push([1, 3, , 4]); | ||
| return [4 /*yield*/, callFunction({ | ||
| name: "lowcode-datasource-preview", | ||
| data: { | ||
| dataSourceName: dataSourceName, | ||
| methodName: methodName, | ||
| params: params | ||
| } | ||
| })]; | ||
| case 2: | ||
| response = _c.sent(); | ||
| if (response === null || response === void 0 ? void 0 : response.result.code) { | ||
| result.error = { | ||
| code: response === null || response === void 0 ? void 0 : response.result.code, | ||
| message: "\u3010\u9519\u8BEF\u3011" + (response === null || response === void 0 ? void 0 : response.result.message) + " \n\u3010\u64CD\u4F5C\u3011\u8C03\u7528 " + dataSourceName + "." + realMethodName + "\n\u3010\u8BF7\u6C42ID\u3011" + (response === null || response === void 0 ? void 0 : response.requestId), | ||
| requestId: response === null || response === void 0 ? void 0 : response.requestId | ||
| }; | ||
| } | ||
| else { | ||
| result.data = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.data) || {}; | ||
| } | ||
| return [3 /*break*/, 4]; | ||
| case 3: | ||
| error_1 = _c.sent(); | ||
| console.error(error_1); | ||
| result.error = { | ||
| code: 'InternalError', | ||
| message: error_1.message || 'Unknown error occurred', | ||
| requestId: 'N/A' | ||
| }; | ||
| return [3 /*break*/, 4]; | ||
| case 4: | ||
| if (result.error) { | ||
| console.error(result.error); | ||
| } | ||
| return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); | ||
| }; | ||
| var CRUD_METHODS = { | ||
| create: { | ||
| methodName: "wedaCreateV2" | ||
| }, | ||
| createMany: { | ||
| methodName: "wedaBatchCreateV2" | ||
| }, | ||
| update: { | ||
| methodName: "wedaUpdateV2" | ||
| }, | ||
| updateMany: { | ||
| methodName: "wedaBatchUpdateV2" | ||
| }, | ||
| "delete": { | ||
| methodName: "wedaDeleteV2" | ||
| }, | ||
| deleteMany: { | ||
| methodName: "wedaBatchDeleteV2" | ||
| }, | ||
| get: { | ||
| methodName: "wedaGetItemV2", | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| }, | ||
| list: { | ||
| methodName: "wedaGetRecordsV2", | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| } | ||
| }; | ||
| var generateClientByDataSourceName = function (dataSourceName, callFunction) { | ||
| var client = new Proxy({}, { | ||
| get: function (target, methodName) { | ||
| var operation = CRUD_METHODS[methodName]; | ||
| if (!operation) { | ||
| var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: " + methodName); | ||
| console.error(error); | ||
| return { | ||
| data: {}, | ||
| error: { | ||
| code: "InternalError", | ||
| message: error.message || "Unknown error occurred", | ||
| requestId: "N/A" | ||
| } | ||
| }; | ||
| } | ||
| console.group("[" + dataSourceName + "." + methodName + "]"); | ||
| return function (params) { return __awaiter(void 0, void 0, void 0, function () { | ||
| var effectiveParams, rawData, result, dataKey; | ||
| var _a; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: | ||
| effectiveParams = __assign(__assign({}, (operation.defaultParams || {})), (params || {})); | ||
| console.log(params); | ||
| console.log({ | ||
| dataSourceName: dataSourceName, | ||
| methodName: operation.methodName, | ||
| realMethodName: methodName, | ||
| params: effectiveParams | ||
| }); | ||
| return [4 /*yield*/, callDataSource({ | ||
| callFunction: callFunction, | ||
| dataSourceName: dataSourceName, | ||
| methodName: operation.methodName, | ||
| realMethodName: methodName, | ||
| params: effectiveParams | ||
| })]; | ||
| case 1: | ||
| rawData = _b.sent(); | ||
| result = { error: null, data: {} }; | ||
| if (!rawData.error) { | ||
| dataKey = operation.responseKey; | ||
| result.data = dataKey ? (_a = rawData === null || rawData === void 0 ? void 0 : rawData.data) === null || _a === void 0 ? void 0 : _a[dataKey] : rawData === null || rawData === void 0 ? void 0 : rawData.data; | ||
| } | ||
| else { | ||
| result.error = rawData.error; | ||
| } | ||
| console.log(result); | ||
| console.groupEnd(); | ||
| return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); }; | ||
| } | ||
| }); | ||
| return client; | ||
| }; | ||
| // 使用 TypeScript 的 Proxy 来定义一个动态的客户端 | ||
| var generateClient = function (callFunction) { | ||
| return new Proxy({}, { | ||
| get: function (target, prop) { | ||
| if (typeof prop === "string") { | ||
| // 返回一个函数,这个函数接受任意参数并返回一个 Promise | ||
| return generateClientByDataSourceName(prop, callFunction); | ||
| } | ||
| } | ||
| }); | ||
| }; | ||
| function init(cloud) { | ||
| if (!cloud) { | ||
| throw new Error("cloud is required"); | ||
| } | ||
| if (!cloud.callFunction) { | ||
| throw new Error("cloud.callFunction is required"); | ||
| } | ||
| var OrmClientImpl = generateClient(cloud.callFunction.bind(cloud)); | ||
| cloud.models = OrmClientImpl; | ||
| return cloud; | ||
| } | ||
| export { init }; |
| (function (global, factory) { | ||
| typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : | ||
| typeof define === 'function' && define.amd ? define(['exports'], factory) : | ||
| (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.wxCloudClientSDK = {})); | ||
| })(this, (function (exports) { 'use strict'; | ||
| /****************************************************************************** | ||
| Copyright (c) Microsoft Corporation. | ||
| Permission to use, copy, modify, and/or distribute this software for any | ||
| purpose with or without fee is hereby granted. | ||
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
| REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
| AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
| INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
| LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
| OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
| PERFORMANCE OF THIS SOFTWARE. | ||
| ***************************************************************************** */ | ||
| /* global Reflect, Promise, SuppressedError, Symbol */ | ||
| var __assign = function() { | ||
| __assign = Object.assign || function __assign(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| function __awaiter(thisArg, _arguments, P, generator) { | ||
| function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
| return new (P || (P = Promise))(function (resolve, reject) { | ||
| function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
| function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
| function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
| step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
| }); | ||
| } | ||
| function __generator(thisArg, body) { | ||
| var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
| return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
| function verb(n) { return function (v) { return step([n, v]); }; } | ||
| function step(op) { | ||
| if (f) throw new TypeError("Generator is already executing."); | ||
| while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
| if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
| if (y = 0, t) op = [op[0] & 2, t.value]; | ||
| switch (op[0]) { | ||
| case 0: case 1: t = op; break; | ||
| case 4: _.label++; return { value: op[1], done: false }; | ||
| case 5: _.label++; y = op[1]; op = [0]; continue; | ||
| case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
| default: | ||
| if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
| if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
| if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
| if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
| if (t[2]) _.ops.pop(); | ||
| _.trys.pop(); continue; | ||
| } | ||
| op = body.call(thisArg, _); | ||
| } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
| if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
| } | ||
| } | ||
| typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { | ||
| var e = new Error(message); | ||
| return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; | ||
| }; | ||
| var callDataSource = function (_a) { | ||
| var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction; | ||
| return __awaiter(void 0, void 0, void 0, function () { | ||
| var result, response, error_1; | ||
| var _b; | ||
| return __generator(this, function (_c) { | ||
| switch (_c.label) { | ||
| case 0: | ||
| result = { | ||
| data: {}, | ||
| error: null | ||
| }; | ||
| _c.label = 1; | ||
| case 1: | ||
| _c.trys.push([1, 3, , 4]); | ||
| return [4 /*yield*/, callFunction({ | ||
| name: "lowcode-datasource-preview", | ||
| data: { | ||
| dataSourceName: dataSourceName, | ||
| methodName: methodName, | ||
| params: params | ||
| } | ||
| })]; | ||
| case 2: | ||
| response = _c.sent(); | ||
| if (response === null || response === void 0 ? void 0 : response.result.code) { | ||
| result.error = { | ||
| code: response === null || response === void 0 ? void 0 : response.result.code, | ||
| message: "\u3010\u9519\u8BEF\u3011" + (response === null || response === void 0 ? void 0 : response.result.message) + " \n\u3010\u64CD\u4F5C\u3011\u8C03\u7528 " + dataSourceName + "." + realMethodName + "\n\u3010\u8BF7\u6C42ID\u3011" + (response === null || response === void 0 ? void 0 : response.requestId), | ||
| requestId: response === null || response === void 0 ? void 0 : response.requestId | ||
| }; | ||
| } | ||
| else { | ||
| result.data = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.data) || {}; | ||
| } | ||
| return [3 /*break*/, 4]; | ||
| case 3: | ||
| error_1 = _c.sent(); | ||
| console.error(error_1); | ||
| result.error = { | ||
| code: 'InternalError', | ||
| message: error_1.message || 'Unknown error occurred', | ||
| requestId: 'N/A' | ||
| }; | ||
| return [3 /*break*/, 4]; | ||
| case 4: | ||
| if (result.error) { | ||
| console.error(result.error); | ||
| } | ||
| return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); | ||
| }; | ||
| var CRUD_METHODS = { | ||
| create: { | ||
| methodName: "wedaCreateV2" | ||
| }, | ||
| createMany: { | ||
| methodName: "wedaBatchCreateV2" | ||
| }, | ||
| update: { | ||
| methodName: "wedaUpdateV2" | ||
| }, | ||
| updateMany: { | ||
| methodName: "wedaBatchUpdateV2" | ||
| }, | ||
| "delete": { | ||
| methodName: "wedaDeleteV2" | ||
| }, | ||
| deleteMany: { | ||
| methodName: "wedaBatchDeleteV2" | ||
| }, | ||
| get: { | ||
| methodName: "wedaGetItemV2", | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| }, | ||
| list: { | ||
| methodName: "wedaGetRecordsV2", | ||
| defaultParams: { | ||
| filter: { | ||
| where: {} | ||
| }, | ||
| select: { | ||
| $master: true | ||
| } | ||
| } | ||
| } | ||
| }; | ||
| var generateClientByDataSourceName = function (dataSourceName, callFunction) { | ||
| var client = new Proxy({}, { | ||
| get: function (target, methodName) { | ||
| var operation = CRUD_METHODS[methodName]; | ||
| if (!operation) { | ||
| var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: " + methodName); | ||
| console.error(error); | ||
| return { | ||
| data: {}, | ||
| error: { | ||
| code: "InternalError", | ||
| message: error.message || "Unknown error occurred", | ||
| requestId: "N/A" | ||
| } | ||
| }; | ||
| } | ||
| console.group("[" + dataSourceName + "." + methodName + "]"); | ||
| return function (params) { return __awaiter(void 0, void 0, void 0, function () { | ||
| var effectiveParams, rawData, result, dataKey; | ||
| var _a; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: | ||
| effectiveParams = __assign(__assign({}, (operation.defaultParams || {})), (params || {})); | ||
| console.log(params); | ||
| console.log({ | ||
| dataSourceName: dataSourceName, | ||
| methodName: operation.methodName, | ||
| realMethodName: methodName, | ||
| params: effectiveParams | ||
| }); | ||
| return [4 /*yield*/, callDataSource({ | ||
| callFunction: callFunction, | ||
| dataSourceName: dataSourceName, | ||
| methodName: operation.methodName, | ||
| realMethodName: methodName, | ||
| params: effectiveParams | ||
| })]; | ||
| case 1: | ||
| rawData = _b.sent(); | ||
| result = { error: null, data: {} }; | ||
| if (!rawData.error) { | ||
| dataKey = operation.responseKey; | ||
| result.data = dataKey ? (_a = rawData === null || rawData === void 0 ? void 0 : rawData.data) === null || _a === void 0 ? void 0 : _a[dataKey] : rawData === null || rawData === void 0 ? void 0 : rawData.data; | ||
| } | ||
| else { | ||
| result.error = rawData.error; | ||
| } | ||
| console.log(result); | ||
| console.groupEnd(); | ||
| return [2 /*return*/, result]; | ||
| } | ||
| }); | ||
| }); }; | ||
| } | ||
| }); | ||
| return client; | ||
| }; | ||
| // 使用 TypeScript 的 Proxy 来定义一个动态的客户端 | ||
| var generateClient = function (callFunction) { | ||
| return new Proxy({}, { | ||
| get: function (target, prop) { | ||
| if (typeof prop === "string") { | ||
| // 返回一个函数,这个函数接受任意参数并返回一个 Promise | ||
| return generateClientByDataSourceName(prop, callFunction); | ||
| } | ||
| } | ||
| }); | ||
| }; | ||
| function init(cloud) { | ||
| if (!cloud) { | ||
| throw new Error("cloud is required"); | ||
| } | ||
| if (!cloud.callFunction) { | ||
| throw new Error("cloud.callFunction is required"); | ||
| } | ||
| var OrmClientImpl = generateClient(cloud.callFunction.bind(cloud)); | ||
| cloud.models = OrmClientImpl; | ||
| return cloud; | ||
| } | ||
| exports.init = init; | ||
| })); |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
52868
31.38%10
25%1320
52.07%8
33.33%1
Infinity%