@cloudbase/wx-cloud-client-sdk 1.4.0 → 1.6.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/lib/index.d.ts CHANGED
@@ -1,10 +1,15 @@
1
1
  import { CloudBaseInstance, ExtendedCloudBaseInstance } from './types';
2
2
  import { generateHTTPClient } from './orm/http-orm-client';
3
- export declare function init(cloud: CloudBaseInstance): ExtendedCloudBaseInstance;
3
+ export declare function init(cloud: CloudBaseInstance, options?: {
4
+ baseUrl?: string;
5
+ sqlBaseUrl?: string;
6
+ }): ExtendedCloudBaseInstance;
4
7
  export * from './types';
5
8
  export { generateHTTPClient };
6
9
  declare const _default: {
7
10
  init: typeof init;
8
- generateHTTPClient: (callFunction: import("./types").CallFunction, fetch: (options: import("@cloudbase/adapter-interface").IFetchOptions) => any, baseUrl: string) => import("./types").OrmClient;
11
+ generateHTTPClient: (callFunction: import("./types").CallFunction, fetch: (options: import("@cloudbase/adapter-interface").IFetchOptions) => any, baseUrl: string, options?: {
12
+ sqlBaseUrl?: string | undefined;
13
+ } | undefined) => import("./types").OrmClient;
9
14
  };
10
15
  export default _default;
@@ -1,5 +1,11 @@
1
- import { SDKRequestInterface } from '@cloudbase/adapter-interface';
2
- import { OrmClient, CallFunction } from '../types';
3
- type ModelFetch = NonNullable<SDKRequestInterface['fetch']>;
4
- export declare const generateHTTPClient: (callFunction: CallFunction, fetch: ModelFetch, baseUrl: string) => OrmClient;
5
- export {};
1
+ import { OrmClient, CallFunction, ModelFetch } 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 generateHTTPClient: (callFunction: CallFunction, fetch: ModelFetch, baseUrl: string, options?: {
10
+ sqlBaseUrl?: string;
11
+ }) => OrmClient;
@@ -1,3 +1,4 @@
1
+ import { SDKRequestInterface } from '@cloudbase/adapter-interface';
1
2
  /**
2
3
  * 基础 Model 类型定义
3
4
  */
@@ -284,6 +285,25 @@ export interface DataModelMethods<T> {
284
285
  records: T[];
285
286
  total?: number;
286
287
  }>>;
288
+ /**
289
+ * 运行 sql模板
290
+ * @param {Object} params - 包含模板名、模板参数、环境类型的参数对象。
291
+ * @returns {Promise<MethodResponse<unknown>>} 包含记录列表和总数的Promise对象。
292
+ */
293
+ runSQLTemplate: (params: {
294
+ /**
295
+ * 模板名称
296
+ */
297
+ templateName: string;
298
+ /**
299
+ * 模板参数
300
+ */
301
+ params?: Record<string, any>;
302
+ /**
303
+ * 请求数据的环境类型,默认是 prod,可选值有 prod 和 pre
304
+ */
305
+ envType?: EnvType;
306
+ }) => Promise<MethodResponse<unknown>>;
287
307
  }
288
308
  /**
289
309
  * 模型方法返回值的定义
@@ -706,4 +726,5 @@ export type CallFunction = (args: {
706
726
  name: string;
707
727
  data: Record<string, any>;
708
728
  }) => Promise<any>;
729
+ export type ModelFetch = NonNullable<SDKRequestInterface['fetch']>;
709
730
  export {};
@@ -145,7 +145,7 @@ function getUserAgent() {
145
145
  return ua_1;
146
146
  }
147
147
  }
148
- var VERSION = "1.4.0";
148
+ var VERSION = "1.6.0";
149
149
 
150
150
  var callDataSource = function (_a) {
151
151
  var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction, _b = _a.envType, envType = _b === void 0 ? 'prod' : _b, mode = _a.mode;
@@ -306,107 +306,6 @@ var createRawQueryClient = function (callFunction) { return ({
306
306
  }
307
307
  }); };
308
308
 
309
- var CRUD_METHODS = {
310
- create: {
311
- methodName: 'wedaCreateV2'
312
- },
313
- createMany: {
314
- methodName: 'wedaBatchCreateV2'
315
- },
316
- update: {
317
- methodName: 'wedaUpdateV2'
318
- },
319
- upsert: {
320
- methodName: 'wedaUpsertV2'
321
- },
322
- updateMany: {
323
- methodName: 'wedaBatchUpdateV2'
324
- },
325
- "delete": {
326
- methodName: 'wedaDeleteV2'
327
- },
328
- deleteMany: {
329
- methodName: 'wedaBatchDeleteV2'
330
- },
331
- get: {
332
- methodName: 'wedaGetItemV2',
333
- defaultParams: {
334
- filter: {
335
- where: {}
336
- },
337
- select: {
338
- $master: true
339
- }
340
- }
341
- },
342
- list: {
343
- methodName: 'wedaGetRecordsV2',
344
- defaultParams: {
345
- filter: {
346
- where: {}
347
- },
348
- select: {
349
- $master: true
350
- }
351
- }
352
- }
353
- };
354
- var generateClientByDataSourceName = function (dataSourceName, callFunction) {
355
- var client = new Proxy({}, {
356
- get: function (target, methodName) {
357
- var operation = CRUD_METHODS[methodName];
358
- if (!operation) {
359
- var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
360
- throw new WxCloudSDKError(error.message || 'Unknown error occurred', {
361
- originError: error,
362
- code: 'NotSupported',
363
- requestId: 'N/A'
364
- });
365
- }
366
- return function (params) { return __awaiter(void 0, void 0, void 0, function () {
367
- var effectiveParams, rawData, result, dataKey;
368
- var _a;
369
- return __generator(this, function (_b) {
370
- switch (_b.label) {
371
- case 0:
372
- effectiveParams = __assign(__assign({}, (operation.defaultParams || {})), (params || {}));
373
- return [4 /*yield*/, callDataSource({
374
- callFunction: callFunction,
375
- dataSourceName: dataSourceName,
376
- methodName: operation.methodName,
377
- realMethodName: methodName,
378
- params: effectiveParams,
379
- envType: params === null || params === void 0 ? void 0 : params.envType
380
- })];
381
- case 1:
382
- rawData = _b.sent();
383
- result = { data: {} };
384
- dataKey = operation.responseKey;
385
- 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;
386
- return [2 /*return*/, result];
387
- }
388
- });
389
- }); };
390
- }
391
- });
392
- return client;
393
- };
394
- // 使用 TypeScript 的 Proxy 来定义一个动态的客户端
395
- var generateClient = function (callFunction) {
396
- var rawQueryClient = createRawQueryClient(callFunction);
397
- return new Proxy({}, {
398
- get: function (target, prop) {
399
- if (typeof prop === 'string') {
400
- if (Object.prototype.hasOwnProperty.call(rawQueryClient, prop)) {
401
- return rawQueryClient[prop];
402
- }
403
- // 返回一个函数,这个函数接受任意参数并返回一个 Promise
404
- return generateClientByDataSourceName(prop, callFunction);
405
- }
406
- }
407
- });
408
- };
409
-
410
309
  var READ_DEFAULT_PARAMS = {
411
310
  filter: {
412
311
  where: {}
@@ -434,7 +333,7 @@ var HTTP_DATA_MODEL_METHODS = {
434
333
  };
435
334
  var UNKNOWN_ERROR_MESSAGE = 'Unknown error occurred';
436
335
  var NOT_SUPPORTED_CODE = 'NotSupported';
437
- var generateHTTPClient = function (callFunction, fetch, baseUrl) {
336
+ var generateHTTPClient = function (callFunction, fetch, baseUrl, options) {
438
337
  var rawQueryClient = createRawQueryClient(callFunction);
439
338
  return new Proxy({}, {
440
339
  get: function (_, modelName) {
@@ -443,7 +342,7 @@ var generateHTTPClient = function (callFunction, fetch, baseUrl) {
443
342
  if (Object.prototype.hasOwnProperty.call(rawQueryClient, modelName)) {
444
343
  return rawQueryClient[modelName];
445
344
  }
446
- return generateHTTPClientByDataSourceName(baseUrl, modelName, fetch);
345
+ return generateHTTPClientByDataSourceName(baseUrl, modelName, fetch, options);
447
346
  }
448
347
  });
449
348
  };
@@ -453,75 +352,199 @@ var createWxCloudSDKError = function (message, modelName, methodName, code, requ
453
352
  requestId: requestId
454
353
  });
455
354
  };
456
- var generateHTTPClientByDataSourceName = function (baseUrl, modelName, fetch) {
355
+ var generateHTTPClientByDataSourceName = function (baseUrl, modelName, fetch, options) {
457
356
  var client = new Proxy({}, {
458
357
  get: function (_, methodName) {
459
- var httpDataModelMethod = HTTP_DATA_MODEL_METHODS[methodName];
460
- if (!httpDataModelMethod) {
461
- var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
462
- throw new WxCloudSDKError(error.message || UNKNOWN_ERROR_MESSAGE, {
463
- originError: error,
464
- code: NOT_SUPPORTED_CODE,
465
- requestId: 'N/A'
466
- });
358
+ if (methodName !== 'runSQLTemplate') {
359
+ var httpDataModelMethod_1 = HTTP_DATA_MODEL_METHODS[methodName];
360
+ if (!httpDataModelMethod_1) {
361
+ var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
362
+ throw new WxCloudSDKError(error.message || UNKNOWN_ERROR_MESSAGE, {
363
+ originError: error,
364
+ code: NOT_SUPPORTED_CODE,
365
+ requestId: 'N/A'
366
+ });
367
+ }
368
+ return function (params) {
369
+ if (params === void 0) { params = {}; }
370
+ return __awaiter(void 0, void 0, void 0, function () {
371
+ var getUrl, method, _a, defaultParams, effectiveParams, envType, url, result, error_1;
372
+ var _b;
373
+ return __generator(this, function (_c) {
374
+ switch (_c.label) {
375
+ case 0:
376
+ getUrl = httpDataModelMethod_1.getUrl, method = httpDataModelMethod_1.method, _a = httpDataModelMethod_1.defaultParams, defaultParams = _a === void 0 ? {} : _a;
377
+ effectiveParams = Object.assign({}, defaultParams, params);
378
+ envType = effectiveParams.envType === 'pre' ? 'pre' : 'prod';
379
+ url = [baseUrl, envType, getUrl(modelName)].join('/');
380
+ _c.label = 1;
381
+ case 1:
382
+ _c.trys.push([1, 3, , 4]);
383
+ return [4 /*yield*/, fetch({
384
+ url: url,
385
+ body: JSON.stringify(effectiveParams),
386
+ method: method
387
+ })];
388
+ case 2:
389
+ result = _c.sent();
390
+ if (result.code) {
391
+ // 抛出错误
392
+ throw createWxCloudSDKError(result === null || result === void 0 ? void 0 : result.message, modelName, methodName, result === null || result === void 0 ? void 0 : result.code, result === null || result === void 0 ? void 0 : result.requestId);
393
+ }
394
+ if (methodName === 'get') {
395
+ // 和 callFunction 实现保持一致
396
+ Object.assign(result, { data: (_b = result.data.record) !== null && _b !== void 0 ? _b : result.data });
397
+ }
398
+ return [2 /*return*/, result];
399
+ case 3:
400
+ error_1 = _c.sent();
401
+ throw new WxCloudSDKError((error_1 === null || error_1 === void 0 ? void 0 : error_1.message) || UNKNOWN_ERROR_MESSAGE, {
402
+ originError: error_1
403
+ });
404
+ case 4: return [2 /*return*/];
405
+ }
406
+ });
407
+ });
408
+ };
467
409
  }
468
- return function (params) {
469
- if (params === void 0) { params = {}; }
470
- return __awaiter(void 0, void 0, void 0, function () {
471
- var getUrl, method, _a, defaultParams, effectiveParams, envType, url, result, error_1;
472
- var _b;
473
- return __generator(this, function (_c) {
474
- switch (_c.label) {
410
+ else {
411
+ if (!(options === null || options === void 0 ? void 0 : options.sqlBaseUrl)) {
412
+ var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
413
+ throw new WxCloudSDKError(error.message || UNKNOWN_ERROR_MESSAGE, {
414
+ originError: error,
415
+ code: NOT_SUPPORTED_CODE,
416
+ requestId: 'N/A'
417
+ });
418
+ }
419
+ return function (props) { return __awaiter(void 0, void 0, void 0, function () {
420
+ var params, templateName, _envType, envType, url, parameter, result, error_2;
421
+ var _a, _b, _c, _d, _e, _f, _g, _h;
422
+ return __generator(this, function (_j) {
423
+ switch (_j.label) {
475
424
  case 0:
476
- getUrl = httpDataModelMethod.getUrl, method = httpDataModelMethod.method, _a = httpDataModelMethod.defaultParams, defaultParams = _a === void 0 ? {} : _a;
477
- effectiveParams = Object.assign({}, defaultParams, params);
478
- envType = effectiveParams.envType === 'pre' ? 'pre' : 'prod';
479
- url = [baseUrl, envType, getUrl(modelName)].join('/');
480
- _c.label = 1;
425
+ params = props.params, templateName = props.templateName, _envType = props.envType;
426
+ envType = _envType === 'pre' ? 'pre' : 'prod';
427
+ url = [options.sqlBaseUrl, envType, templateName, 'run'].join('/');
428
+ parameter = Object.entries(params || {}).reduce(function (list, _a) {
429
+ var key = _a[0], value = _a[1];
430
+ if (value !== undefined) {
431
+ var type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
432
+ var typeofValue = typeof value;
433
+ switch (typeofValue) {
434
+ case 'boolean': {
435
+ type = "BOOLEAN" /* EQUERY_PARAM_TYPE.BOOLEAN */;
436
+ break;
437
+ }
438
+ case 'number': {
439
+ type = "NUMBER" /* EQUERY_PARAM_TYPE.NUMBER */;
440
+ break;
441
+ }
442
+ case 'string': {
443
+ type = "STRING" /* EQUERY_PARAM_TYPE.STRING */;
444
+ break;
445
+ }
446
+ default: {
447
+ if (Array.isArray(value)) {
448
+ type = "ARRAY" /* EQUERY_PARAM_TYPE.ARRAY */;
449
+ }
450
+ else {
451
+ type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
452
+ }
453
+ }
454
+ }
455
+ list.push({
456
+ key: key,
457
+ type: type,
458
+ value: type === "STRING" /* EQUERY_PARAM_TYPE.STRING */ ? value : JSON.stringify(value)
459
+ });
460
+ }
461
+ return list;
462
+ }, []);
463
+ _j.label = 1;
481
464
  case 1:
482
- _c.trys.push([1, 3, , 4]);
465
+ _j.trys.push([1, 3, , 4]);
483
466
  return [4 /*yield*/, fetch({
484
467
  url: url,
485
- body: JSON.stringify(effectiveParams),
486
- method: method
468
+ body: JSON.stringify({ parameter: parameter }),
469
+ method: 'POST'
487
470
  })];
488
471
  case 2:
489
- result = _c.sent();
490
- if (result.code) {
472
+ result = _j.sent();
473
+ if ((_a = result === null || result === void 0 ? void 0 : result.Response) === null || _a === void 0 ? void 0 : _a.Error) {
491
474
  // 抛出错误
492
- throw createWxCloudSDKError(result === null || result === void 0 ? void 0 : result.message, modelName, methodName, result === null || result === void 0 ? void 0 : result.code, result === null || result === void 0 ? void 0 : result.requestId);
475
+ throw createWxCloudSDKError((_c = (_b = result === null || result === void 0 ? void 0 : result.Response) === null || _b === void 0 ? void 0 : _b.Error) === null || _c === void 0 ? void 0 : _c.Message, modelName, methodName, (_e = (_d = result === null || result === void 0 ? void 0 : result.Response) === null || _d === void 0 ? void 0 : _d.Error) === null || _e === void 0 ? void 0 : _e.Code, (_f = result === null || result === void 0 ? void 0 : result.Response) === null || _f === void 0 ? void 0 : _f.RequestId);
493
476
  }
494
- if (methodName === 'get') {
495
- // 和 callFunction 实现保持一致
496
- Object.assign(result, { data: (_b = result.data.record) !== null && _b !== void 0 ? _b : result.data });
497
- }
498
- return [2 /*return*/, result];
477
+ return [2 /*return*/, __assign(__assign({}, ((_g = result === null || result === void 0 ? void 0 : result.Response) !== null && _g !== void 0 ? _g : {})), { data: (_h = result === null || result === void 0 ? void 0 : result.Response) === null || _h === void 0 ? void 0 : _h.Data })];
499
478
  case 3:
500
- error_1 = _c.sent();
501
- throw new WxCloudSDKError((error_1 === null || error_1 === void 0 ? void 0 : error_1.message) || UNKNOWN_ERROR_MESSAGE, {
502
- originError: error_1
479
+ error_2 = _j.sent();
480
+ throw new WxCloudSDKError((error_2 === null || error_2 === void 0 ? void 0 : error_2.message) || UNKNOWN_ERROR_MESSAGE, {
481
+ originError: error_2
503
482
  });
504
483
  case 4: return [2 /*return*/];
505
484
  }
506
485
  });
507
- });
508
- };
486
+ }); };
487
+ }
509
488
  }
510
489
  });
511
490
  return client;
512
491
  };
513
492
 
514
- function init(cloud) {
493
+ function init(cloud, options) {
494
+ var _this = this;
515
495
  if (!cloud) {
516
496
  throw new Error('cloud is required');
517
497
  }
518
498
  if (!cloud.callFunction) {
519
499
  throw new Error('cloud.callFunction is required');
520
500
  }
521
- var ormClientImpl = generateClient(cloud.callFunction.bind(cloud));
522
- cloud.models = ormClientImpl;
501
+ var callFunction = cloud.callFunction.bind(cloud);
502
+ var HTTPOverCallFunctionFetch = function (_a) {
503
+ var url = _a.url, body = _a.body, method = _a.method, headers = _a.headers;
504
+ return __awaiter(_this, void 0, void 0, function () {
505
+ var res, result;
506
+ var _b;
507
+ return __generator(this, function (_c) {
508
+ switch (_c.label) {
509
+ case 0: return [4 /*yield*/, callFunction({
510
+ name: 'httpOverCallFunction',
511
+ data: {
512
+ url: url,
513
+ method: method === null || method === void 0 ? void 0 : method.toUpperCase(),
514
+ headers: __assign(__assign({}, (headers || {})), { 'Content-Type': 'application/json' }),
515
+ body: body
516
+ }
517
+ })];
518
+ case 1:
519
+ res = _c.sent();
520
+ result = (_b = res === null || res === void 0 ? void 0 : res.result) === null || _b === void 0 ? void 0 : _b.body;
521
+ return [2 /*return*/, result];
522
+ }
523
+ });
524
+ });
525
+ };
526
+ var baseUrl = (options === null || options === void 0 ? void 0 : options.baseUrl) || getDefaultGatewayBaseUrl(cloud).model;
527
+ var sqlBaseUrl = (options === null || options === void 0 ? void 0 : options.sqlBaseUrl) || getDefaultGatewayBaseUrl(cloud).sql;
528
+ var httpOrmClientImpl = generateHTTPClient(callFunction, HTTPOverCallFunctionFetch, baseUrl, {
529
+ sqlBaseUrl: sqlBaseUrl
530
+ });
531
+ cloud.models = httpOrmClientImpl;
523
532
  return cloud;
524
533
  }
534
+ function getDefaultGatewayBaseUrl(cloud) {
535
+ var _a, _b, _c;
536
+ var env = (_b = (_a = cloud === null || cloud === void 0 ? void 0 : cloud.extend) === null || _a === void 0 ? void 0 : _a.AI) === null || _b === void 0 ? void 0 : _b.env;
537
+ if (typeof env !== 'string' || !env.trim())
538
+ env = (_c = cloud === null || cloud === void 0 ? void 0 : cloud.config) === null || _c === void 0 ? void 0 : _c.env;
539
+ if (typeof env !== 'string' || !env.trim()) {
540
+ throw new Error('Generating default gateway base url failed: env not found');
541
+ }
542
+ env = env.trim();
543
+ return {
544
+ model: "https://".concat(env, ".api.tcloudbasegateway.com/v1/model"),
545
+ sql: "https://".concat(env, ".api.tcloudbasegateway.com/v1/sql")
546
+ };
547
+ }
525
548
  var index = {
526
549
  init: init,
527
550
  generateHTTPClient: generateHTTPClient
@@ -141,7 +141,7 @@ function getUserAgent() {
141
141
  return ua_1;
142
142
  }
143
143
  }
144
- var VERSION = "1.4.0";
144
+ var VERSION = "1.6.0";
145
145
 
146
146
  var callDataSource = function (_a) {
147
147
  var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction, _b = _a.envType, envType = _b === void 0 ? 'prod' : _b, mode = _a.mode;
@@ -302,107 +302,6 @@ var createRawQueryClient = function (callFunction) { return ({
302
302
  }
303
303
  }); };
304
304
 
305
- var CRUD_METHODS = {
306
- create: {
307
- methodName: 'wedaCreateV2'
308
- },
309
- createMany: {
310
- methodName: 'wedaBatchCreateV2'
311
- },
312
- update: {
313
- methodName: 'wedaUpdateV2'
314
- },
315
- upsert: {
316
- methodName: 'wedaUpsertV2'
317
- },
318
- updateMany: {
319
- methodName: 'wedaBatchUpdateV2'
320
- },
321
- "delete": {
322
- methodName: 'wedaDeleteV2'
323
- },
324
- deleteMany: {
325
- methodName: 'wedaBatchDeleteV2'
326
- },
327
- get: {
328
- methodName: 'wedaGetItemV2',
329
- defaultParams: {
330
- filter: {
331
- where: {}
332
- },
333
- select: {
334
- $master: true
335
- }
336
- }
337
- },
338
- list: {
339
- methodName: 'wedaGetRecordsV2',
340
- defaultParams: {
341
- filter: {
342
- where: {}
343
- },
344
- select: {
345
- $master: true
346
- }
347
- }
348
- }
349
- };
350
- var generateClientByDataSourceName = function (dataSourceName, callFunction) {
351
- var client = new Proxy({}, {
352
- get: function (target, methodName) {
353
- var operation = CRUD_METHODS[methodName];
354
- if (!operation) {
355
- var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
356
- throw new WxCloudSDKError(error.message || 'Unknown error occurred', {
357
- originError: error,
358
- code: 'NotSupported',
359
- requestId: 'N/A'
360
- });
361
- }
362
- return function (params) { return __awaiter(void 0, void 0, void 0, function () {
363
- var effectiveParams, rawData, result, dataKey;
364
- var _a;
365
- return __generator(this, function (_b) {
366
- switch (_b.label) {
367
- case 0:
368
- effectiveParams = __assign(__assign({}, (operation.defaultParams || {})), (params || {}));
369
- return [4 /*yield*/, callDataSource({
370
- callFunction: callFunction,
371
- dataSourceName: dataSourceName,
372
- methodName: operation.methodName,
373
- realMethodName: methodName,
374
- params: effectiveParams,
375
- envType: params === null || params === void 0 ? void 0 : params.envType
376
- })];
377
- case 1:
378
- rawData = _b.sent();
379
- result = { data: {} };
380
- dataKey = operation.responseKey;
381
- 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;
382
- return [2 /*return*/, result];
383
- }
384
- });
385
- }); };
386
- }
387
- });
388
- return client;
389
- };
390
- // 使用 TypeScript 的 Proxy 来定义一个动态的客户端
391
- var generateClient = function (callFunction) {
392
- var rawQueryClient = createRawQueryClient(callFunction);
393
- return new Proxy({}, {
394
- get: function (target, prop) {
395
- if (typeof prop === 'string') {
396
- if (Object.prototype.hasOwnProperty.call(rawQueryClient, prop)) {
397
- return rawQueryClient[prop];
398
- }
399
- // 返回一个函数,这个函数接受任意参数并返回一个 Promise
400
- return generateClientByDataSourceName(prop, callFunction);
401
- }
402
- }
403
- });
404
- };
405
-
406
305
  var READ_DEFAULT_PARAMS = {
407
306
  filter: {
408
307
  where: {}
@@ -430,7 +329,7 @@ var HTTP_DATA_MODEL_METHODS = {
430
329
  };
431
330
  var UNKNOWN_ERROR_MESSAGE = 'Unknown error occurred';
432
331
  var NOT_SUPPORTED_CODE = 'NotSupported';
433
- var generateHTTPClient = function (callFunction, fetch, baseUrl) {
332
+ var generateHTTPClient = function (callFunction, fetch, baseUrl, options) {
434
333
  var rawQueryClient = createRawQueryClient(callFunction);
435
334
  return new Proxy({}, {
436
335
  get: function (_, modelName) {
@@ -439,7 +338,7 @@ var generateHTTPClient = function (callFunction, fetch, baseUrl) {
439
338
  if (Object.prototype.hasOwnProperty.call(rawQueryClient, modelName)) {
440
339
  return rawQueryClient[modelName];
441
340
  }
442
- return generateHTTPClientByDataSourceName(baseUrl, modelName, fetch);
341
+ return generateHTTPClientByDataSourceName(baseUrl, modelName, fetch, options);
443
342
  }
444
343
  });
445
344
  };
@@ -449,75 +348,199 @@ var createWxCloudSDKError = function (message, modelName, methodName, code, requ
449
348
  requestId: requestId
450
349
  });
451
350
  };
452
- var generateHTTPClientByDataSourceName = function (baseUrl, modelName, fetch) {
351
+ var generateHTTPClientByDataSourceName = function (baseUrl, modelName, fetch, options) {
453
352
  var client = new Proxy({}, {
454
353
  get: function (_, methodName) {
455
- var httpDataModelMethod = HTTP_DATA_MODEL_METHODS[methodName];
456
- if (!httpDataModelMethod) {
457
- var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
458
- throw new WxCloudSDKError(error.message || UNKNOWN_ERROR_MESSAGE, {
459
- originError: error,
460
- code: NOT_SUPPORTED_CODE,
461
- requestId: 'N/A'
462
- });
354
+ if (methodName !== 'runSQLTemplate') {
355
+ var httpDataModelMethod_1 = HTTP_DATA_MODEL_METHODS[methodName];
356
+ if (!httpDataModelMethod_1) {
357
+ var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
358
+ throw new WxCloudSDKError(error.message || UNKNOWN_ERROR_MESSAGE, {
359
+ originError: error,
360
+ code: NOT_SUPPORTED_CODE,
361
+ requestId: 'N/A'
362
+ });
363
+ }
364
+ return function (params) {
365
+ if (params === void 0) { params = {}; }
366
+ return __awaiter(void 0, void 0, void 0, function () {
367
+ var getUrl, method, _a, defaultParams, effectiveParams, envType, url, result, error_1;
368
+ var _b;
369
+ return __generator(this, function (_c) {
370
+ switch (_c.label) {
371
+ case 0:
372
+ getUrl = httpDataModelMethod_1.getUrl, method = httpDataModelMethod_1.method, _a = httpDataModelMethod_1.defaultParams, defaultParams = _a === void 0 ? {} : _a;
373
+ effectiveParams = Object.assign({}, defaultParams, params);
374
+ envType = effectiveParams.envType === 'pre' ? 'pre' : 'prod';
375
+ url = [baseUrl, envType, getUrl(modelName)].join('/');
376
+ _c.label = 1;
377
+ case 1:
378
+ _c.trys.push([1, 3, , 4]);
379
+ return [4 /*yield*/, fetch({
380
+ url: url,
381
+ body: JSON.stringify(effectiveParams),
382
+ method: method
383
+ })];
384
+ case 2:
385
+ result = _c.sent();
386
+ if (result.code) {
387
+ // 抛出错误
388
+ throw createWxCloudSDKError(result === null || result === void 0 ? void 0 : result.message, modelName, methodName, result === null || result === void 0 ? void 0 : result.code, result === null || result === void 0 ? void 0 : result.requestId);
389
+ }
390
+ if (methodName === 'get') {
391
+ // 和 callFunction 实现保持一致
392
+ Object.assign(result, { data: (_b = result.data.record) !== null && _b !== void 0 ? _b : result.data });
393
+ }
394
+ return [2 /*return*/, result];
395
+ case 3:
396
+ error_1 = _c.sent();
397
+ throw new WxCloudSDKError((error_1 === null || error_1 === void 0 ? void 0 : error_1.message) || UNKNOWN_ERROR_MESSAGE, {
398
+ originError: error_1
399
+ });
400
+ case 4: return [2 /*return*/];
401
+ }
402
+ });
403
+ });
404
+ };
463
405
  }
464
- return function (params) {
465
- if (params === void 0) { params = {}; }
466
- return __awaiter(void 0, void 0, void 0, function () {
467
- var getUrl, method, _a, defaultParams, effectiveParams, envType, url, result, error_1;
468
- var _b;
469
- return __generator(this, function (_c) {
470
- switch (_c.label) {
406
+ else {
407
+ if (!(options === null || options === void 0 ? void 0 : options.sqlBaseUrl)) {
408
+ var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
409
+ throw new WxCloudSDKError(error.message || UNKNOWN_ERROR_MESSAGE, {
410
+ originError: error,
411
+ code: NOT_SUPPORTED_CODE,
412
+ requestId: 'N/A'
413
+ });
414
+ }
415
+ return function (props) { return __awaiter(void 0, void 0, void 0, function () {
416
+ var params, templateName, _envType, envType, url, parameter, result, error_2;
417
+ var _a, _b, _c, _d, _e, _f, _g, _h;
418
+ return __generator(this, function (_j) {
419
+ switch (_j.label) {
471
420
  case 0:
472
- getUrl = httpDataModelMethod.getUrl, method = httpDataModelMethod.method, _a = httpDataModelMethod.defaultParams, defaultParams = _a === void 0 ? {} : _a;
473
- effectiveParams = Object.assign({}, defaultParams, params);
474
- envType = effectiveParams.envType === 'pre' ? 'pre' : 'prod';
475
- url = [baseUrl, envType, getUrl(modelName)].join('/');
476
- _c.label = 1;
421
+ params = props.params, templateName = props.templateName, _envType = props.envType;
422
+ envType = _envType === 'pre' ? 'pre' : 'prod';
423
+ url = [options.sqlBaseUrl, envType, templateName, 'run'].join('/');
424
+ parameter = Object.entries(params || {}).reduce(function (list, _a) {
425
+ var key = _a[0], value = _a[1];
426
+ if (value !== undefined) {
427
+ var type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
428
+ var typeofValue = typeof value;
429
+ switch (typeofValue) {
430
+ case 'boolean': {
431
+ type = "BOOLEAN" /* EQUERY_PARAM_TYPE.BOOLEAN */;
432
+ break;
433
+ }
434
+ case 'number': {
435
+ type = "NUMBER" /* EQUERY_PARAM_TYPE.NUMBER */;
436
+ break;
437
+ }
438
+ case 'string': {
439
+ type = "STRING" /* EQUERY_PARAM_TYPE.STRING */;
440
+ break;
441
+ }
442
+ default: {
443
+ if (Array.isArray(value)) {
444
+ type = "ARRAY" /* EQUERY_PARAM_TYPE.ARRAY */;
445
+ }
446
+ else {
447
+ type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
448
+ }
449
+ }
450
+ }
451
+ list.push({
452
+ key: key,
453
+ type: type,
454
+ value: type === "STRING" /* EQUERY_PARAM_TYPE.STRING */ ? value : JSON.stringify(value)
455
+ });
456
+ }
457
+ return list;
458
+ }, []);
459
+ _j.label = 1;
477
460
  case 1:
478
- _c.trys.push([1, 3, , 4]);
461
+ _j.trys.push([1, 3, , 4]);
479
462
  return [4 /*yield*/, fetch({
480
463
  url: url,
481
- body: JSON.stringify(effectiveParams),
482
- method: method
464
+ body: JSON.stringify({ parameter: parameter }),
465
+ method: 'POST'
483
466
  })];
484
467
  case 2:
485
- result = _c.sent();
486
- if (result.code) {
468
+ result = _j.sent();
469
+ if ((_a = result === null || result === void 0 ? void 0 : result.Response) === null || _a === void 0 ? void 0 : _a.Error) {
487
470
  // 抛出错误
488
- throw createWxCloudSDKError(result === null || result === void 0 ? void 0 : result.message, modelName, methodName, result === null || result === void 0 ? void 0 : result.code, result === null || result === void 0 ? void 0 : result.requestId);
471
+ throw createWxCloudSDKError((_c = (_b = result === null || result === void 0 ? void 0 : result.Response) === null || _b === void 0 ? void 0 : _b.Error) === null || _c === void 0 ? void 0 : _c.Message, modelName, methodName, (_e = (_d = result === null || result === void 0 ? void 0 : result.Response) === null || _d === void 0 ? void 0 : _d.Error) === null || _e === void 0 ? void 0 : _e.Code, (_f = result === null || result === void 0 ? void 0 : result.Response) === null || _f === void 0 ? void 0 : _f.RequestId);
489
472
  }
490
- if (methodName === 'get') {
491
- // 和 callFunction 实现保持一致
492
- Object.assign(result, { data: (_b = result.data.record) !== null && _b !== void 0 ? _b : result.data });
493
- }
494
- return [2 /*return*/, result];
473
+ return [2 /*return*/, __assign(__assign({}, ((_g = result === null || result === void 0 ? void 0 : result.Response) !== null && _g !== void 0 ? _g : {})), { data: (_h = result === null || result === void 0 ? void 0 : result.Response) === null || _h === void 0 ? void 0 : _h.Data })];
495
474
  case 3:
496
- error_1 = _c.sent();
497
- throw new WxCloudSDKError((error_1 === null || error_1 === void 0 ? void 0 : error_1.message) || UNKNOWN_ERROR_MESSAGE, {
498
- originError: error_1
475
+ error_2 = _j.sent();
476
+ throw new WxCloudSDKError((error_2 === null || error_2 === void 0 ? void 0 : error_2.message) || UNKNOWN_ERROR_MESSAGE, {
477
+ originError: error_2
499
478
  });
500
479
  case 4: return [2 /*return*/];
501
480
  }
502
481
  });
503
- });
504
- };
482
+ }); };
483
+ }
505
484
  }
506
485
  });
507
486
  return client;
508
487
  };
509
488
 
510
- function init(cloud) {
489
+ function init(cloud, options) {
490
+ var _this = this;
511
491
  if (!cloud) {
512
492
  throw new Error('cloud is required');
513
493
  }
514
494
  if (!cloud.callFunction) {
515
495
  throw new Error('cloud.callFunction is required');
516
496
  }
517
- var ormClientImpl = generateClient(cloud.callFunction.bind(cloud));
518
- cloud.models = ormClientImpl;
497
+ var callFunction = cloud.callFunction.bind(cloud);
498
+ var HTTPOverCallFunctionFetch = function (_a) {
499
+ var url = _a.url, body = _a.body, method = _a.method, headers = _a.headers;
500
+ return __awaiter(_this, void 0, void 0, function () {
501
+ var res, result;
502
+ var _b;
503
+ return __generator(this, function (_c) {
504
+ switch (_c.label) {
505
+ case 0: return [4 /*yield*/, callFunction({
506
+ name: 'httpOverCallFunction',
507
+ data: {
508
+ url: url,
509
+ method: method === null || method === void 0 ? void 0 : method.toUpperCase(),
510
+ headers: __assign(__assign({}, (headers || {})), { 'Content-Type': 'application/json' }),
511
+ body: body
512
+ }
513
+ })];
514
+ case 1:
515
+ res = _c.sent();
516
+ result = (_b = res === null || res === void 0 ? void 0 : res.result) === null || _b === void 0 ? void 0 : _b.body;
517
+ return [2 /*return*/, result];
518
+ }
519
+ });
520
+ });
521
+ };
522
+ var baseUrl = (options === null || options === void 0 ? void 0 : options.baseUrl) || getDefaultGatewayBaseUrl(cloud).model;
523
+ var sqlBaseUrl = (options === null || options === void 0 ? void 0 : options.sqlBaseUrl) || getDefaultGatewayBaseUrl(cloud).sql;
524
+ var httpOrmClientImpl = generateHTTPClient(callFunction, HTTPOverCallFunctionFetch, baseUrl, {
525
+ sqlBaseUrl: sqlBaseUrl
526
+ });
527
+ cloud.models = httpOrmClientImpl;
519
528
  return cloud;
520
529
  }
530
+ function getDefaultGatewayBaseUrl(cloud) {
531
+ var _a, _b, _c;
532
+ var env = (_b = (_a = cloud === null || cloud === void 0 ? void 0 : cloud.extend) === null || _a === void 0 ? void 0 : _a.AI) === null || _b === void 0 ? void 0 : _b.env;
533
+ if (typeof env !== 'string' || !env.trim())
534
+ env = (_c = cloud === null || cloud === void 0 ? void 0 : cloud.config) === null || _c === void 0 ? void 0 : _c.env;
535
+ if (typeof env !== 'string' || !env.trim()) {
536
+ throw new Error('Generating default gateway base url failed: env not found');
537
+ }
538
+ env = env.trim();
539
+ return {
540
+ model: "https://".concat(env, ".api.tcloudbasegateway.com/v1/model"),
541
+ sql: "https://".concat(env, ".api.tcloudbasegateway.com/v1/sql")
542
+ };
543
+ }
521
544
  var index = {
522
545
  init: init,
523
546
  generateHTTPClient: generateHTTPClient
@@ -147,7 +147,7 @@
147
147
  return ua_1;
148
148
  }
149
149
  }
150
- var VERSION = "1.4.0";
150
+ var VERSION = "1.6.0";
151
151
 
152
152
  var callDataSource = function (_a) {
153
153
  var dataSourceName = _a.dataSourceName, methodName = _a.methodName, params = _a.params, realMethodName = _a.realMethodName, callFunction = _a.callFunction, _b = _a.envType, envType = _b === void 0 ? 'prod' : _b, mode = _a.mode;
@@ -308,107 +308,6 @@
308
308
  }
309
309
  }); };
310
310
 
311
- var CRUD_METHODS = {
312
- create: {
313
- methodName: 'wedaCreateV2'
314
- },
315
- createMany: {
316
- methodName: 'wedaBatchCreateV2'
317
- },
318
- update: {
319
- methodName: 'wedaUpdateV2'
320
- },
321
- upsert: {
322
- methodName: 'wedaUpsertV2'
323
- },
324
- updateMany: {
325
- methodName: 'wedaBatchUpdateV2'
326
- },
327
- "delete": {
328
- methodName: 'wedaDeleteV2'
329
- },
330
- deleteMany: {
331
- methodName: 'wedaBatchDeleteV2'
332
- },
333
- get: {
334
- methodName: 'wedaGetItemV2',
335
- defaultParams: {
336
- filter: {
337
- where: {}
338
- },
339
- select: {
340
- $master: true
341
- }
342
- }
343
- },
344
- list: {
345
- methodName: 'wedaGetRecordsV2',
346
- defaultParams: {
347
- filter: {
348
- where: {}
349
- },
350
- select: {
351
- $master: true
352
- }
353
- }
354
- }
355
- };
356
- var generateClientByDataSourceName = function (dataSourceName, callFunction) {
357
- var client = new Proxy({}, {
358
- get: function (target, methodName) {
359
- var operation = CRUD_METHODS[methodName];
360
- if (!operation) {
361
- var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
362
- throw new WxCloudSDKError(error.message || 'Unknown error occurred', {
363
- originError: error,
364
- code: 'NotSupported',
365
- requestId: 'N/A'
366
- });
367
- }
368
- return function (params) { return __awaiter(void 0, void 0, void 0, function () {
369
- var effectiveParams, rawData, result, dataKey;
370
- var _a;
371
- return __generator(this, function (_b) {
372
- switch (_b.label) {
373
- case 0:
374
- effectiveParams = __assign(__assign({}, (operation.defaultParams || {})), (params || {}));
375
- return [4 /*yield*/, callDataSource({
376
- callFunction: callFunction,
377
- dataSourceName: dataSourceName,
378
- methodName: operation.methodName,
379
- realMethodName: methodName,
380
- params: effectiveParams,
381
- envType: params === null || params === void 0 ? void 0 : params.envType
382
- })];
383
- case 1:
384
- rawData = _b.sent();
385
- result = { data: {} };
386
- dataKey = operation.responseKey;
387
- 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;
388
- return [2 /*return*/, result];
389
- }
390
- });
391
- }); };
392
- }
393
- });
394
- return client;
395
- };
396
- // 使用 TypeScript 的 Proxy 来定义一个动态的客户端
397
- var generateClient = function (callFunction) {
398
- var rawQueryClient = createRawQueryClient(callFunction);
399
- return new Proxy({}, {
400
- get: function (target, prop) {
401
- if (typeof prop === 'string') {
402
- if (Object.prototype.hasOwnProperty.call(rawQueryClient, prop)) {
403
- return rawQueryClient[prop];
404
- }
405
- // 返回一个函数,这个函数接受任意参数并返回一个 Promise
406
- return generateClientByDataSourceName(prop, callFunction);
407
- }
408
- }
409
- });
410
- };
411
-
412
311
  var READ_DEFAULT_PARAMS = {
413
312
  filter: {
414
313
  where: {}
@@ -436,7 +335,7 @@
436
335
  };
437
336
  var UNKNOWN_ERROR_MESSAGE = 'Unknown error occurred';
438
337
  var NOT_SUPPORTED_CODE = 'NotSupported';
439
- var generateHTTPClient = function (callFunction, fetch, baseUrl) {
338
+ var generateHTTPClient = function (callFunction, fetch, baseUrl, options) {
440
339
  var rawQueryClient = createRawQueryClient(callFunction);
441
340
  return new Proxy({}, {
442
341
  get: function (_, modelName) {
@@ -445,7 +344,7 @@
445
344
  if (Object.prototype.hasOwnProperty.call(rawQueryClient, modelName)) {
446
345
  return rawQueryClient[modelName];
447
346
  }
448
- return generateHTTPClientByDataSourceName(baseUrl, modelName, fetch);
347
+ return generateHTTPClientByDataSourceName(baseUrl, modelName, fetch, options);
449
348
  }
450
349
  });
451
350
  };
@@ -455,75 +354,199 @@
455
354
  requestId: requestId
456
355
  });
457
356
  };
458
- var generateHTTPClientByDataSourceName = function (baseUrl, modelName, fetch) {
357
+ var generateHTTPClientByDataSourceName = function (baseUrl, modelName, fetch, options) {
459
358
  var client = new Proxy({}, {
460
359
  get: function (_, methodName) {
461
- var httpDataModelMethod = HTTP_DATA_MODEL_METHODS[methodName];
462
- if (!httpDataModelMethod) {
463
- var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
464
- throw new WxCloudSDKError(error.message || UNKNOWN_ERROR_MESSAGE, {
465
- originError: error,
466
- code: NOT_SUPPORTED_CODE,
467
- requestId: 'N/A'
468
- });
360
+ if (methodName !== 'runSQLTemplate') {
361
+ var httpDataModelMethod_1 = HTTP_DATA_MODEL_METHODS[methodName];
362
+ if (!httpDataModelMethod_1) {
363
+ var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
364
+ throw new WxCloudSDKError(error.message || UNKNOWN_ERROR_MESSAGE, {
365
+ originError: error,
366
+ code: NOT_SUPPORTED_CODE,
367
+ requestId: 'N/A'
368
+ });
369
+ }
370
+ return function (params) {
371
+ if (params === void 0) { params = {}; }
372
+ return __awaiter(void 0, void 0, void 0, function () {
373
+ var getUrl, method, _a, defaultParams, effectiveParams, envType, url, result, error_1;
374
+ var _b;
375
+ return __generator(this, function (_c) {
376
+ switch (_c.label) {
377
+ case 0:
378
+ getUrl = httpDataModelMethod_1.getUrl, method = httpDataModelMethod_1.method, _a = httpDataModelMethod_1.defaultParams, defaultParams = _a === void 0 ? {} : _a;
379
+ effectiveParams = Object.assign({}, defaultParams, params);
380
+ envType = effectiveParams.envType === 'pre' ? 'pre' : 'prod';
381
+ url = [baseUrl, envType, getUrl(modelName)].join('/');
382
+ _c.label = 1;
383
+ case 1:
384
+ _c.trys.push([1, 3, , 4]);
385
+ return [4 /*yield*/, fetch({
386
+ url: url,
387
+ body: JSON.stringify(effectiveParams),
388
+ method: method
389
+ })];
390
+ case 2:
391
+ result = _c.sent();
392
+ if (result.code) {
393
+ // 抛出错误
394
+ throw createWxCloudSDKError(result === null || result === void 0 ? void 0 : result.message, modelName, methodName, result === null || result === void 0 ? void 0 : result.code, result === null || result === void 0 ? void 0 : result.requestId);
395
+ }
396
+ if (methodName === 'get') {
397
+ // 和 callFunction 实现保持一致
398
+ Object.assign(result, { data: (_b = result.data.record) !== null && _b !== void 0 ? _b : result.data });
399
+ }
400
+ return [2 /*return*/, result];
401
+ case 3:
402
+ error_1 = _c.sent();
403
+ throw new WxCloudSDKError((error_1 === null || error_1 === void 0 ? void 0 : error_1.message) || UNKNOWN_ERROR_MESSAGE, {
404
+ originError: error_1
405
+ });
406
+ case 4: return [2 /*return*/];
407
+ }
408
+ });
409
+ });
410
+ };
469
411
  }
470
- return function (params) {
471
- if (params === void 0) { params = {}; }
472
- return __awaiter(void 0, void 0, void 0, function () {
473
- var getUrl, method, _a, defaultParams, effectiveParams, envType, url, result, error_1;
474
- var _b;
475
- return __generator(this, function (_c) {
476
- switch (_c.label) {
412
+ else {
413
+ if (!(options === null || options === void 0 ? void 0 : options.sqlBaseUrl)) {
414
+ var error = new Error("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C: ".concat(methodName));
415
+ throw new WxCloudSDKError(error.message || UNKNOWN_ERROR_MESSAGE, {
416
+ originError: error,
417
+ code: NOT_SUPPORTED_CODE,
418
+ requestId: 'N/A'
419
+ });
420
+ }
421
+ return function (props) { return __awaiter(void 0, void 0, void 0, function () {
422
+ var params, templateName, _envType, envType, url, parameter, result, error_2;
423
+ var _a, _b, _c, _d, _e, _f, _g, _h;
424
+ return __generator(this, function (_j) {
425
+ switch (_j.label) {
477
426
  case 0:
478
- getUrl = httpDataModelMethod.getUrl, method = httpDataModelMethod.method, _a = httpDataModelMethod.defaultParams, defaultParams = _a === void 0 ? {} : _a;
479
- effectiveParams = Object.assign({}, defaultParams, params);
480
- envType = effectiveParams.envType === 'pre' ? 'pre' : 'prod';
481
- url = [baseUrl, envType, getUrl(modelName)].join('/');
482
- _c.label = 1;
427
+ params = props.params, templateName = props.templateName, _envType = props.envType;
428
+ envType = _envType === 'pre' ? 'pre' : 'prod';
429
+ url = [options.sqlBaseUrl, envType, templateName, 'run'].join('/');
430
+ parameter = Object.entries(params || {}).reduce(function (list, _a) {
431
+ var key = _a[0], value = _a[1];
432
+ if (value !== undefined) {
433
+ var type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
434
+ var typeofValue = typeof value;
435
+ switch (typeofValue) {
436
+ case 'boolean': {
437
+ type = "BOOLEAN" /* EQUERY_PARAM_TYPE.BOOLEAN */;
438
+ break;
439
+ }
440
+ case 'number': {
441
+ type = "NUMBER" /* EQUERY_PARAM_TYPE.NUMBER */;
442
+ break;
443
+ }
444
+ case 'string': {
445
+ type = "STRING" /* EQUERY_PARAM_TYPE.STRING */;
446
+ break;
447
+ }
448
+ default: {
449
+ if (Array.isArray(value)) {
450
+ type = "ARRAY" /* EQUERY_PARAM_TYPE.ARRAY */;
451
+ }
452
+ else {
453
+ type = "OBJECT" /* EQUERY_PARAM_TYPE.OBJECT */;
454
+ }
455
+ }
456
+ }
457
+ list.push({
458
+ key: key,
459
+ type: type,
460
+ value: type === "STRING" /* EQUERY_PARAM_TYPE.STRING */ ? value : JSON.stringify(value)
461
+ });
462
+ }
463
+ return list;
464
+ }, []);
465
+ _j.label = 1;
483
466
  case 1:
484
- _c.trys.push([1, 3, , 4]);
467
+ _j.trys.push([1, 3, , 4]);
485
468
  return [4 /*yield*/, fetch({
486
469
  url: url,
487
- body: JSON.stringify(effectiveParams),
488
- method: method
470
+ body: JSON.stringify({ parameter: parameter }),
471
+ method: 'POST'
489
472
  })];
490
473
  case 2:
491
- result = _c.sent();
492
- if (result.code) {
474
+ result = _j.sent();
475
+ if ((_a = result === null || result === void 0 ? void 0 : result.Response) === null || _a === void 0 ? void 0 : _a.Error) {
493
476
  // 抛出错误
494
- throw createWxCloudSDKError(result === null || result === void 0 ? void 0 : result.message, modelName, methodName, result === null || result === void 0 ? void 0 : result.code, result === null || result === void 0 ? void 0 : result.requestId);
477
+ throw createWxCloudSDKError((_c = (_b = result === null || result === void 0 ? void 0 : result.Response) === null || _b === void 0 ? void 0 : _b.Error) === null || _c === void 0 ? void 0 : _c.Message, modelName, methodName, (_e = (_d = result === null || result === void 0 ? void 0 : result.Response) === null || _d === void 0 ? void 0 : _d.Error) === null || _e === void 0 ? void 0 : _e.Code, (_f = result === null || result === void 0 ? void 0 : result.Response) === null || _f === void 0 ? void 0 : _f.RequestId);
495
478
  }
496
- if (methodName === 'get') {
497
- // 和 callFunction 实现保持一致
498
- Object.assign(result, { data: (_b = result.data.record) !== null && _b !== void 0 ? _b : result.data });
499
- }
500
- return [2 /*return*/, result];
479
+ return [2 /*return*/, __assign(__assign({}, ((_g = result === null || result === void 0 ? void 0 : result.Response) !== null && _g !== void 0 ? _g : {})), { data: (_h = result === null || result === void 0 ? void 0 : result.Response) === null || _h === void 0 ? void 0 : _h.Data })];
501
480
  case 3:
502
- error_1 = _c.sent();
503
- throw new WxCloudSDKError((error_1 === null || error_1 === void 0 ? void 0 : error_1.message) || UNKNOWN_ERROR_MESSAGE, {
504
- originError: error_1
481
+ error_2 = _j.sent();
482
+ throw new WxCloudSDKError((error_2 === null || error_2 === void 0 ? void 0 : error_2.message) || UNKNOWN_ERROR_MESSAGE, {
483
+ originError: error_2
505
484
  });
506
485
  case 4: return [2 /*return*/];
507
486
  }
508
487
  });
509
- });
510
- };
488
+ }); };
489
+ }
511
490
  }
512
491
  });
513
492
  return client;
514
493
  };
515
494
 
516
- function init(cloud) {
495
+ function init(cloud, options) {
496
+ var _this = this;
517
497
  if (!cloud) {
518
498
  throw new Error('cloud is required');
519
499
  }
520
500
  if (!cloud.callFunction) {
521
501
  throw new Error('cloud.callFunction is required');
522
502
  }
523
- var ormClientImpl = generateClient(cloud.callFunction.bind(cloud));
524
- cloud.models = ormClientImpl;
503
+ var callFunction = cloud.callFunction.bind(cloud);
504
+ var HTTPOverCallFunctionFetch = function (_a) {
505
+ var url = _a.url, body = _a.body, method = _a.method, headers = _a.headers;
506
+ return __awaiter(_this, void 0, void 0, function () {
507
+ var res, result;
508
+ var _b;
509
+ return __generator(this, function (_c) {
510
+ switch (_c.label) {
511
+ case 0: return [4 /*yield*/, callFunction({
512
+ name: 'httpOverCallFunction',
513
+ data: {
514
+ url: url,
515
+ method: method === null || method === void 0 ? void 0 : method.toUpperCase(),
516
+ headers: __assign(__assign({}, (headers || {})), { 'Content-Type': 'application/json' }),
517
+ body: body
518
+ }
519
+ })];
520
+ case 1:
521
+ res = _c.sent();
522
+ result = (_b = res === null || res === void 0 ? void 0 : res.result) === null || _b === void 0 ? void 0 : _b.body;
523
+ return [2 /*return*/, result];
524
+ }
525
+ });
526
+ });
527
+ };
528
+ var baseUrl = (options === null || options === void 0 ? void 0 : options.baseUrl) || getDefaultGatewayBaseUrl(cloud).model;
529
+ var sqlBaseUrl = (options === null || options === void 0 ? void 0 : options.sqlBaseUrl) || getDefaultGatewayBaseUrl(cloud).sql;
530
+ var httpOrmClientImpl = generateHTTPClient(callFunction, HTTPOverCallFunctionFetch, baseUrl, {
531
+ sqlBaseUrl: sqlBaseUrl
532
+ });
533
+ cloud.models = httpOrmClientImpl;
525
534
  return cloud;
526
535
  }
536
+ function getDefaultGatewayBaseUrl(cloud) {
537
+ var _a, _b, _c;
538
+ var env = (_b = (_a = cloud === null || cloud === void 0 ? void 0 : cloud.extend) === null || _a === void 0 ? void 0 : _a.AI) === null || _b === void 0 ? void 0 : _b.env;
539
+ if (typeof env !== 'string' || !env.trim())
540
+ env = (_c = cloud === null || cloud === void 0 ? void 0 : cloud.config) === null || _c === void 0 ? void 0 : _c.env;
541
+ if (typeof env !== 'string' || !env.trim()) {
542
+ throw new Error('Generating default gateway base url failed: env not found');
543
+ }
544
+ env = env.trim();
545
+ return {
546
+ model: "https://".concat(env, ".api.tcloudbasegateway.com/v1/model"),
547
+ sql: "https://".concat(env, ".api.tcloudbasegateway.com/v1/sql")
548
+ };
549
+ }
527
550
  var index = {
528
551
  init: init,
529
552
  generateHTTPClient: generateHTTPClient
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/wx-cloud-client-sdk",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "devDependencies": {
29
29
  "@cloudbase/adapter-interface": "^0.5.0",
30
- "@cloudbase/js-sdk": "2.8.15-beta.0",
30
+ "@cloudbase/js-sdk": "2.15.0",
31
31
  "@rollup/plugin-commonjs": "^25.0.8",
32
32
  "@rollup/plugin-node-resolve": "^15.2.3",
33
33
  "@rollup/plugin-replace": "^5.0.7",