@cloudbase/wx-cloud-client-sdk 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # 微信云开发客户端 SDK
2
+
3
+ ## 使用
4
+
5
+ [初始化 SDK](https://docs.cloudbase.net/model/init-sdk)
6
+
7
+ ## 参考文档
8
+
9
+ [类型声明](https://docs.cloudbase.net/model/sdk-reference/globals)
@@ -1,2 +1,10 @@
1
- import { MethodResponse, CallDataSourceParams } from '../types';
2
- export declare const callDataSource: ({ dataSourceName, methodName, params, realMethodName, callFunction, }: CallDataSourceParams) => Promise<MethodResponse<any>>;
1
+ import { MethodResponse, CallDataSourceParams, RunMysqlCommandParams } from '../types';
2
+ export declare const enum EQUERY_PARAM_TYPE {
3
+ ARRAY = "ARRAY",
4
+ BOOLEAN = "BOOLEAN",
5
+ NUMBER = "NUMBER",
6
+ OBJECT = "OBJECT",
7
+ STRING = "STRING"
8
+ }
9
+ export declare const callDataSource: ({ dataSourceName, methodName, params, realMethodName, callFunction, mode, }: CallDataSourceParams) => Promise<MethodResponse<any>>;
10
+ export declare const runMysqlCommand: ({ sql, params, config, callFunction, unsafe }: RunMysqlCommandParams) => Promise<MethodResponse<any>>;
@@ -543,6 +543,47 @@ declare type RelationKeys<T> = T extends any ? {
543
543
  * @hidden
544
544
  */
545
545
  export declare type Relation = string;
546
+ export interface SQLCommandParams {
547
+ /**
548
+ * 超时时间,默认是 5s,最大不超过 15s
549
+ */
550
+ timeout?: number;
551
+ }
552
+ /**
553
+ * 运行原生SQL的ORM客户端接口
554
+ */
555
+ export interface OrmRawQueryClient {
556
+ $runSQL?: (
557
+ /**
558
+ * sql 语句
559
+ */
560
+ sql: string,
561
+ /**
562
+ * sql 模版变量
563
+ */
564
+ params?: Record<string, any>,
565
+ /**
566
+ * 配置
567
+ */
568
+ config?: SQLCommandParams) => Promise<MethodResponse<{
569
+ executeResultList: Record<string, any>[];
570
+ total: number;
571
+ backendExecute: string;
572
+ }>>;
573
+ $runSQLRaw?: (
574
+ /**
575
+ * sql 语句
576
+ */
577
+ sql: string,
578
+ /**
579
+ * 配置
580
+ */
581
+ config?: SQLCommandParams) => Promise<MethodResponse<{
582
+ executeResultList: Record<string, any>[];
583
+ total: number;
584
+ backendExecute: string;
585
+ }>>;
586
+ }
546
587
  /**
547
588
  * ORM客户端接口,包含不同模型名称到其操作方法的映射。
548
589
  * @hidden
@@ -558,7 +599,7 @@ export interface CallDataSourceParams {
558
599
  /**
559
600
  * 数据源的名称,标识调用的数据源。
560
601
  */
561
- dataSourceName: string;
602
+ dataSourceName?: string;
562
603
  /**
563
604
  * 方法名称,标识要调用的数据源中的具体方法。
564
605
  */
@@ -575,6 +616,21 @@ export interface CallDataSourceParams {
575
616
  * 调用函数的方法,用于执行实际的云函数调用。
576
617
  */
577
618
  callFunction: CallFunction;
619
+ /**
620
+ * @deprecated 使用 dataSourceName 替代。
621
+ */
622
+ mode?: string;
623
+ }
624
+ /**
625
+ * 调用runMySQLCoommand 参数的结构定义,用于封装调用云函数时所需的参数。
626
+ * @hidden
627
+ */
628
+ export interface RunMysqlCommandParams {
629
+ sql: string;
630
+ params?: Record<string, any>;
631
+ callFunction: CallFunction;
632
+ config?: any;
633
+ unsafe?: boolean;
578
634
  }
579
635
  /**
580
636
  * 云函数调用接口,包含调用函数和认证信息。
@@ -589,7 +645,7 @@ export declare type CloudBaseInstance = {
589
645
  * @hidden
590
646
  */
591
647
  export interface ExtendedCloudBaseInstance extends CloudBaseInstance {
592
- models: OrmClient;
648
+ models: OrmClient & OrmRawQueryClient;
593
649
  }
594
650
  /**
595
651
  * 云函数调用方法定义。
@@ -599,13 +655,6 @@ export interface ExtendedCloudBaseInstance extends CloudBaseInstance {
599
655
  */
600
656
  export declare type CallFunction = (args: {
601
657
  name: string;
602
- data: {
603
- dataSourceName: string;
604
- methodName: string;
605
- params: Record<string, any>;
606
- 'x-sdk-version'?: string;
607
- userAgent?: string;
608
- referrer?: string;
609
- };
658
+ data: Record<string, any>;
610
659
  }) => Promise<any>;
611
660
  export {};
@@ -143,12 +143,12 @@ function getUserAgent() {
143
143
  return ua_1;
144
144
  }
145
145
  }
146
- var VERSION = "1.0.0";
146
+ var VERSION = "1.1.0";
147
147
 
148
148
  var callDataSource = function (_a) {
149
- var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction;
149
+ var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction, mode = _a.mode;
150
150
  return __awaiter(void 0, void 0, void 0, function () {
151
- var result, response, error_1;
151
+ var result, response, requestId, error_1;
152
152
  var _b, _c;
153
153
  return __generator(this, function (_d) {
154
154
  switch (_d.label) {
@@ -168,20 +168,25 @@ var callDataSource = function (_a) {
168
168
  params: params,
169
169
  userAgent: getUserAgent(),
170
170
  referrer: getReferrer(),
171
- 'x-sdk-version': VERSION
171
+ 'x-sdk-version': VERSION,
172
+ /**
173
+ * todo 移除此字段
174
+ */
175
+ mode: mode
172
176
  }
173
177
  })];
174
178
  case 2:
175
179
  response = _d.sent();
180
+ requestId = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.requestId) || (response === null || response === void 0 ? void 0 : response.requestId) || (response === null || response === void 0 ? void 0 : response.requestID);
176
181
  if (response === null || response === void 0 ? void 0 : response.result.code) {
177
- 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'), {
182
+ 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 models.").concat(dataSourceName ? "".concat(dataSourceName, ".") : "").concat(realMethodName, "\n\u3010\u9519\u8BEF\u7801\u3011").concat(response === null || response === void 0 ? void 0 : response.result.code, "\n\u3010\u8BF7\u6C42ID\u3011").concat(requestId || 'N/A'), {
178
183
  code: response === null || response === void 0 ? void 0 : response.result.code,
179
- requestId: response === null || response === void 0 ? void 0 : response.requestId
184
+ requestId: requestId
180
185
  });
181
186
  }
182
187
  else {
183
- result.data = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.data) || {};
184
- result.requestId = ((_c = response === null || response === void 0 ? void 0 : response.result) === null || _c === void 0 ? void 0 : _c.requestId) || '';
188
+ result.data = ((_c = response === null || response === void 0 ? void 0 : response.result) === null || _c === void 0 ? void 0 : _c.data) || {};
189
+ result.requestId = requestId;
185
190
  }
186
191
  return [3 /*break*/, 4];
187
192
  case 3:
@@ -191,7 +196,7 @@ var callDataSource = function (_a) {
191
196
  }
192
197
  else {
193
198
  console.log(error_1);
194
- 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"), {
199
+ throw new WxCloudSDKError("\u3010\u9519\u8BEF\u3011".concat(error_1.message, "\n \u3010\u64CD\u4F5C\u3011\u8C03\u7528 models.").concat(dataSourceName ? "".concat(dataSourceName, ".") : "").concat(realMethodName, "\n \u3010\u8BF7\u6C42ID\u3011N/A"), {
195
200
  code: 'UnknownError',
196
201
  originError: error_1
197
202
  });
@@ -201,6 +206,63 @@ var callDataSource = function (_a) {
201
206
  });
202
207
  });
203
208
  };
209
+ var runMysqlCommand = function (_a) {
210
+ var sql = _a.sql, params = _a.params, config = _a.config, callFunction = _a.callFunction, _b = _a.unsafe, unsafe = _b === void 0 ? false : _b;
211
+ return __awaiter(void 0, void 0, void 0, function () {
212
+ return __generator(this, function (_c) {
213
+ return [2 /*return*/, callDataSource({
214
+ realMethodName: '$runSQL',
215
+ methodName: 'callWedaApi',
216
+ params: {
217
+ action: 'RunMysqlCommand',
218
+ data: {
219
+ sqlTemplate: sql,
220
+ config: config,
221
+ parameter: unsafe
222
+ ? ''
223
+ : Object.entries(params || {}).reduce(function (list, _a) {
224
+ var key = _a[0], value = _a[1];
225
+ if (value !== undefined) {
226
+ var type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
227
+ var typeofValue = typeof value;
228
+ switch (typeofValue) {
229
+ case 'boolean': {
230
+ type = "BOOLEAN" /* EQUERY_PARAM_TYPE.BOOLEAN */;
231
+ break;
232
+ }
233
+ case 'number': {
234
+ type = "NUMBER" /* EQUERY_PARAM_TYPE.NUMBER */;
235
+ break;
236
+ }
237
+ case 'string': {
238
+ type = "STRING" /* EQUERY_PARAM_TYPE.STRING */;
239
+ break;
240
+ }
241
+ default: {
242
+ if (Array.isArray(value)) {
243
+ type = "ARRAY" /* EQUERY_PARAM_TYPE.ARRAY */;
244
+ }
245
+ else {
246
+ type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
247
+ }
248
+ }
249
+ }
250
+ list.push({
251
+ key: key,
252
+ type: type,
253
+ value: type === "STRING" /* EQUERY_PARAM_TYPE.STRING */ ? value : JSON.stringify(value)
254
+ });
255
+ }
256
+ return list;
257
+ }, []) || []
258
+ }
259
+ },
260
+ callFunction: callFunction,
261
+ mode: 'sdk'
262
+ })];
263
+ });
264
+ });
265
+ };
204
266
 
205
267
  var CRUD_METHODS = {
206
268
  create: {
@@ -288,9 +350,50 @@ var generateClientByDataSourceName = function (dataSourceName, callFunction) {
288
350
  };
289
351
  // 使用 TypeScript 的 Proxy 来定义一个动态的客户端
290
352
  var generateClient = function (callFunction) {
353
+ var rawQueryClient = {
354
+ $runSQL: function (sql, params, config) {
355
+ return __awaiter(this, void 0, void 0, function () {
356
+ var res;
357
+ return __generator(this, function (_a) {
358
+ switch (_a.label) {
359
+ case 0: return [4 /*yield*/, runMysqlCommand({
360
+ sql: sql,
361
+ params: params,
362
+ config: __assign(__assign({}, config), { preparedStatements: true }),
363
+ callFunction: callFunction
364
+ })];
365
+ case 1:
366
+ res = _a.sent();
367
+ return [2 /*return*/, res];
368
+ }
369
+ });
370
+ });
371
+ },
372
+ $runSQLRaw: function (sql, config) {
373
+ return __awaiter(this, void 0, void 0, function () {
374
+ var res;
375
+ return __generator(this, function (_a) {
376
+ switch (_a.label) {
377
+ case 0: return [4 /*yield*/, runMysqlCommand({
378
+ sql: sql,
379
+ params: [],
380
+ config: __assign(__assign({}, config), { preparedStatements: false }),
381
+ callFunction: callFunction
382
+ })];
383
+ case 1:
384
+ res = _a.sent();
385
+ return [2 /*return*/, res];
386
+ }
387
+ });
388
+ });
389
+ }
390
+ };
291
391
  return new Proxy({}, {
292
392
  get: function (target, prop) {
293
393
  if (typeof prop === 'string') {
394
+ if (rawQueryClient.hasOwnProperty(prop)) {
395
+ return rawQueryClient[prop];
396
+ }
294
397
  // 返回一个函数,这个函数接受任意参数并返回一个 Promise
295
398
  return generateClientByDataSourceName(prop, callFunction);
296
399
  }
@@ -141,12 +141,12 @@ function getUserAgent() {
141
141
  return ua_1;
142
142
  }
143
143
  }
144
- var VERSION = "1.0.0";
144
+ var VERSION = "1.1.0";
145
145
 
146
146
  var callDataSource = function (_a) {
147
- var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction;
147
+ var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction, mode = _a.mode;
148
148
  return __awaiter(void 0, void 0, void 0, function () {
149
- var result, response, error_1;
149
+ var result, response, requestId, error_1;
150
150
  var _b, _c;
151
151
  return __generator(this, function (_d) {
152
152
  switch (_d.label) {
@@ -166,20 +166,25 @@ var callDataSource = function (_a) {
166
166
  params: params,
167
167
  userAgent: getUserAgent(),
168
168
  referrer: getReferrer(),
169
- 'x-sdk-version': VERSION
169
+ 'x-sdk-version': VERSION,
170
+ /**
171
+ * todo 移除此字段
172
+ */
173
+ mode: mode
170
174
  }
171
175
  })];
172
176
  case 2:
173
177
  response = _d.sent();
178
+ requestId = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.requestId) || (response === null || response === void 0 ? void 0 : response.requestId) || (response === null || response === void 0 ? void 0 : response.requestID);
174
179
  if (response === null || response === void 0 ? void 0 : response.result.code) {
175
- 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'), {
180
+ 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 models.").concat(dataSourceName ? "".concat(dataSourceName, ".") : "").concat(realMethodName, "\n\u3010\u9519\u8BEF\u7801\u3011").concat(response === null || response === void 0 ? void 0 : response.result.code, "\n\u3010\u8BF7\u6C42ID\u3011").concat(requestId || 'N/A'), {
176
181
  code: response === null || response === void 0 ? void 0 : response.result.code,
177
- requestId: response === null || response === void 0 ? void 0 : response.requestId
182
+ requestId: requestId
178
183
  });
179
184
  }
180
185
  else {
181
- result.data = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.data) || {};
182
- result.requestId = ((_c = response === null || response === void 0 ? void 0 : response.result) === null || _c === void 0 ? void 0 : _c.requestId) || '';
186
+ result.data = ((_c = response === null || response === void 0 ? void 0 : response.result) === null || _c === void 0 ? void 0 : _c.data) || {};
187
+ result.requestId = requestId;
183
188
  }
184
189
  return [3 /*break*/, 4];
185
190
  case 3:
@@ -189,7 +194,7 @@ var callDataSource = function (_a) {
189
194
  }
190
195
  else {
191
196
  console.log(error_1);
192
- 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"), {
197
+ throw new WxCloudSDKError("\u3010\u9519\u8BEF\u3011".concat(error_1.message, "\n \u3010\u64CD\u4F5C\u3011\u8C03\u7528 models.").concat(dataSourceName ? "".concat(dataSourceName, ".") : "").concat(realMethodName, "\n \u3010\u8BF7\u6C42ID\u3011N/A"), {
193
198
  code: 'UnknownError',
194
199
  originError: error_1
195
200
  });
@@ -199,6 +204,63 @@ var callDataSource = function (_a) {
199
204
  });
200
205
  });
201
206
  };
207
+ var runMysqlCommand = function (_a) {
208
+ var sql = _a.sql, params = _a.params, config = _a.config, callFunction = _a.callFunction, _b = _a.unsafe, unsafe = _b === void 0 ? false : _b;
209
+ return __awaiter(void 0, void 0, void 0, function () {
210
+ return __generator(this, function (_c) {
211
+ return [2 /*return*/, callDataSource({
212
+ realMethodName: '$runSQL',
213
+ methodName: 'callWedaApi',
214
+ params: {
215
+ action: 'RunMysqlCommand',
216
+ data: {
217
+ sqlTemplate: sql,
218
+ config: config,
219
+ parameter: unsafe
220
+ ? ''
221
+ : Object.entries(params || {}).reduce(function (list, _a) {
222
+ var key = _a[0], value = _a[1];
223
+ if (value !== undefined) {
224
+ var type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
225
+ var typeofValue = typeof value;
226
+ switch (typeofValue) {
227
+ case 'boolean': {
228
+ type = "BOOLEAN" /* EQUERY_PARAM_TYPE.BOOLEAN */;
229
+ break;
230
+ }
231
+ case 'number': {
232
+ type = "NUMBER" /* EQUERY_PARAM_TYPE.NUMBER */;
233
+ break;
234
+ }
235
+ case 'string': {
236
+ type = "STRING" /* EQUERY_PARAM_TYPE.STRING */;
237
+ break;
238
+ }
239
+ default: {
240
+ if (Array.isArray(value)) {
241
+ type = "ARRAY" /* EQUERY_PARAM_TYPE.ARRAY */;
242
+ }
243
+ else {
244
+ type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
245
+ }
246
+ }
247
+ }
248
+ list.push({
249
+ key: key,
250
+ type: type,
251
+ value: type === "STRING" /* EQUERY_PARAM_TYPE.STRING */ ? value : JSON.stringify(value)
252
+ });
253
+ }
254
+ return list;
255
+ }, []) || []
256
+ }
257
+ },
258
+ callFunction: callFunction,
259
+ mode: 'sdk'
260
+ })];
261
+ });
262
+ });
263
+ };
202
264
 
203
265
  var CRUD_METHODS = {
204
266
  create: {
@@ -286,9 +348,50 @@ var generateClientByDataSourceName = function (dataSourceName, callFunction) {
286
348
  };
287
349
  // 使用 TypeScript 的 Proxy 来定义一个动态的客户端
288
350
  var generateClient = function (callFunction) {
351
+ var rawQueryClient = {
352
+ $runSQL: function (sql, params, config) {
353
+ return __awaiter(this, void 0, void 0, function () {
354
+ var res;
355
+ return __generator(this, function (_a) {
356
+ switch (_a.label) {
357
+ case 0: return [4 /*yield*/, runMysqlCommand({
358
+ sql: sql,
359
+ params: params,
360
+ config: __assign(__assign({}, config), { preparedStatements: true }),
361
+ callFunction: callFunction
362
+ })];
363
+ case 1:
364
+ res = _a.sent();
365
+ return [2 /*return*/, res];
366
+ }
367
+ });
368
+ });
369
+ },
370
+ $runSQLRaw: function (sql, config) {
371
+ return __awaiter(this, void 0, void 0, function () {
372
+ var res;
373
+ return __generator(this, function (_a) {
374
+ switch (_a.label) {
375
+ case 0: return [4 /*yield*/, runMysqlCommand({
376
+ sql: sql,
377
+ params: [],
378
+ config: __assign(__assign({}, config), { preparedStatements: false }),
379
+ callFunction: callFunction
380
+ })];
381
+ case 1:
382
+ res = _a.sent();
383
+ return [2 /*return*/, res];
384
+ }
385
+ });
386
+ });
387
+ }
388
+ };
289
389
  return new Proxy({}, {
290
390
  get: function (target, prop) {
291
391
  if (typeof prop === 'string') {
392
+ if (rawQueryClient.hasOwnProperty(prop)) {
393
+ return rawQueryClient[prop];
394
+ }
292
395
  // 返回一个函数,这个函数接受任意参数并返回一个 Promise
293
396
  return generateClientByDataSourceName(prop, callFunction);
294
397
  }
@@ -147,12 +147,12 @@
147
147
  return ua_1;
148
148
  }
149
149
  }
150
- var VERSION = "1.0.0";
150
+ var VERSION = "1.1.0";
151
151
 
152
152
  var callDataSource = function (_a) {
153
- var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction;
153
+ var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction, mode = _a.mode;
154
154
  return __awaiter(void 0, void 0, void 0, function () {
155
- var result, response, error_1;
155
+ var result, response, requestId, error_1;
156
156
  var _b, _c;
157
157
  return __generator(this, function (_d) {
158
158
  switch (_d.label) {
@@ -172,20 +172,25 @@
172
172
  params: params,
173
173
  userAgent: getUserAgent(),
174
174
  referrer: getReferrer(),
175
- 'x-sdk-version': VERSION
175
+ 'x-sdk-version': VERSION,
176
+ /**
177
+ * todo 移除此字段
178
+ */
179
+ mode: mode
176
180
  }
177
181
  })];
178
182
  case 2:
179
183
  response = _d.sent();
184
+ requestId = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.requestId) || (response === null || response === void 0 ? void 0 : response.requestId) || (response === null || response === void 0 ? void 0 : response.requestID);
180
185
  if (response === null || response === void 0 ? void 0 : response.result.code) {
181
- 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'), {
186
+ 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 models.").concat(dataSourceName ? "".concat(dataSourceName, ".") : "").concat(realMethodName, "\n\u3010\u9519\u8BEF\u7801\u3011").concat(response === null || response === void 0 ? void 0 : response.result.code, "\n\u3010\u8BF7\u6C42ID\u3011").concat(requestId || 'N/A'), {
182
187
  code: response === null || response === void 0 ? void 0 : response.result.code,
183
- requestId: response === null || response === void 0 ? void 0 : response.requestId
188
+ requestId: requestId
184
189
  });
185
190
  }
186
191
  else {
187
- result.data = ((_b = response === null || response === void 0 ? void 0 : response.result) === null || _b === void 0 ? void 0 : _b.data) || {};
188
- result.requestId = ((_c = response === null || response === void 0 ? void 0 : response.result) === null || _c === void 0 ? void 0 : _c.requestId) || '';
192
+ result.data = ((_c = response === null || response === void 0 ? void 0 : response.result) === null || _c === void 0 ? void 0 : _c.data) || {};
193
+ result.requestId = requestId;
189
194
  }
190
195
  return [3 /*break*/, 4];
191
196
  case 3:
@@ -195,7 +200,7 @@
195
200
  }
196
201
  else {
197
202
  console.log(error_1);
198
- 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"), {
203
+ throw new WxCloudSDKError("\u3010\u9519\u8BEF\u3011".concat(error_1.message, "\n \u3010\u64CD\u4F5C\u3011\u8C03\u7528 models.").concat(dataSourceName ? "".concat(dataSourceName, ".") : "").concat(realMethodName, "\n \u3010\u8BF7\u6C42ID\u3011N/A"), {
199
204
  code: 'UnknownError',
200
205
  originError: error_1
201
206
  });
@@ -205,6 +210,63 @@
205
210
  });
206
211
  });
207
212
  };
213
+ var runMysqlCommand = function (_a) {
214
+ var sql = _a.sql, params = _a.params, config = _a.config, callFunction = _a.callFunction, _b = _a.unsafe, unsafe = _b === void 0 ? false : _b;
215
+ return __awaiter(void 0, void 0, void 0, function () {
216
+ return __generator(this, function (_c) {
217
+ return [2 /*return*/, callDataSource({
218
+ realMethodName: '$runSQL',
219
+ methodName: 'callWedaApi',
220
+ params: {
221
+ action: 'RunMysqlCommand',
222
+ data: {
223
+ sqlTemplate: sql,
224
+ config: config,
225
+ parameter: unsafe
226
+ ? ''
227
+ : Object.entries(params || {}).reduce(function (list, _a) {
228
+ var key = _a[0], value = _a[1];
229
+ if (value !== undefined) {
230
+ var type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
231
+ var typeofValue = typeof value;
232
+ switch (typeofValue) {
233
+ case 'boolean': {
234
+ type = "BOOLEAN" /* EQUERY_PARAM_TYPE.BOOLEAN */;
235
+ break;
236
+ }
237
+ case 'number': {
238
+ type = "NUMBER" /* EQUERY_PARAM_TYPE.NUMBER */;
239
+ break;
240
+ }
241
+ case 'string': {
242
+ type = "STRING" /* EQUERY_PARAM_TYPE.STRING */;
243
+ break;
244
+ }
245
+ default: {
246
+ if (Array.isArray(value)) {
247
+ type = "ARRAY" /* EQUERY_PARAM_TYPE.ARRAY */;
248
+ }
249
+ else {
250
+ type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
251
+ }
252
+ }
253
+ }
254
+ list.push({
255
+ key: key,
256
+ type: type,
257
+ value: type === "STRING" /* EQUERY_PARAM_TYPE.STRING */ ? value : JSON.stringify(value)
258
+ });
259
+ }
260
+ return list;
261
+ }, []) || []
262
+ }
263
+ },
264
+ callFunction: callFunction,
265
+ mode: 'sdk'
266
+ })];
267
+ });
268
+ });
269
+ };
208
270
 
209
271
  var CRUD_METHODS = {
210
272
  create: {
@@ -292,9 +354,50 @@
292
354
  };
293
355
  // 使用 TypeScript 的 Proxy 来定义一个动态的客户端
294
356
  var generateClient = function (callFunction) {
357
+ var rawQueryClient = {
358
+ $runSQL: function (sql, params, config) {
359
+ return __awaiter(this, void 0, void 0, function () {
360
+ var res;
361
+ return __generator(this, function (_a) {
362
+ switch (_a.label) {
363
+ case 0: return [4 /*yield*/, runMysqlCommand({
364
+ sql: sql,
365
+ params: params,
366
+ config: __assign(__assign({}, config), { preparedStatements: true }),
367
+ callFunction: callFunction
368
+ })];
369
+ case 1:
370
+ res = _a.sent();
371
+ return [2 /*return*/, res];
372
+ }
373
+ });
374
+ });
375
+ },
376
+ $runSQLRaw: function (sql, config) {
377
+ return __awaiter(this, void 0, void 0, function () {
378
+ var res;
379
+ return __generator(this, function (_a) {
380
+ switch (_a.label) {
381
+ case 0: return [4 /*yield*/, runMysqlCommand({
382
+ sql: sql,
383
+ params: [],
384
+ config: __assign(__assign({}, config), { preparedStatements: false }),
385
+ callFunction: callFunction
386
+ })];
387
+ case 1:
388
+ res = _a.sent();
389
+ return [2 /*return*/, res];
390
+ }
391
+ });
392
+ });
393
+ }
394
+ };
295
395
  return new Proxy({}, {
296
396
  get: function (target, prop) {
297
397
  if (typeof prop === 'string') {
398
+ if (rawQueryClient.hasOwnProperty(prop)) {
399
+ return rawQueryClient[prop];
400
+ }
298
401
  // 返回一个函数,这个函数接受任意参数并返回一个 Promise
299
402
  return generateClientByDataSourceName(prop, callFunction);
300
403
  }
package/package.json CHANGED
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "name": "@cloudbase/wx-cloud-client-sdk",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
4
7
  "description": "wx cloud client sdk",
5
8
  "main": "lib/wxCloudClientSDK.cjs.js",
6
9
  "module": "lib/wxCloudClientSDK.esm.js",
@@ -17,13 +20,15 @@
17
20
  "build-demo": "npx rimraf dist/* && parcel build demo/index.html --public-url ./",
18
21
  "publish": "npm publish --access public",
19
22
  "publish-demo": "tcb hosting deploy dist wx-cloud-client-sdk-demo -e lowcode-4gs26nnz095f6f4d",
20
- "docs": "npx rimraf docs/* && typedoc --options typedoc.json"
23
+ "docs": "typedoc --options typedoc.json",
24
+ "deploy": "node ./scripts/deploy.mjs"
21
25
  },
22
26
  "devDependencies": {
23
27
  "@rollup/plugin-commonjs": "^25.0.8",
24
28
  "@rollup/plugin-node-resolve": "^15.2.3",
25
29
  "@rollup/plugin-replace": "^5.0.7",
26
30
  "@rollup/plugin-typescript": "^11.1.6",
31
+ "@tcwd/dev-tools": "^1.0.1",
27
32
  "parcel-bundler": "1.6.1",
28
33
  "rollup": "^4.18.0",
29
34
  "typedoc": "^0.25.13",