@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 +7 -2
- package/lib/orm/http-orm-client.d.ts +11 -5
- package/lib/types/index.d.ts +21 -0
- package/lib/wxCloudClientSDK.cjs.js +167 -144
- package/lib/wxCloudClientSDK.esm.js +167 -144
- package/lib/wxCloudClientSDK.umd.js +167 -144
- package/package.json +2 -2
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
|
|
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
|
|
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 {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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;
|
package/lib/types/index.d.ts
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
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
|
-
|
|
469
|
-
if (
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
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
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
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
|
-
|
|
465
|
+
_j.trys.push([1, 3, , 4]);
|
|
483
466
|
return [4 /*yield*/, fetch({
|
|
484
467
|
url: url,
|
|
485
|
-
body: JSON.stringify(
|
|
486
|
-
method:
|
|
468
|
+
body: JSON.stringify({ parameter: parameter }),
|
|
469
|
+
method: 'POST'
|
|
487
470
|
})];
|
|
488
471
|
case 2:
|
|
489
|
-
result =
|
|
490
|
-
if (result.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
501
|
-
throw new WxCloudSDKError((
|
|
502
|
-
originError:
|
|
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
|
|
522
|
-
|
|
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.
|
|
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
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
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
|
-
|
|
465
|
-
if (
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
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
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
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
|
-
|
|
461
|
+
_j.trys.push([1, 3, , 4]);
|
|
479
462
|
return [4 /*yield*/, fetch({
|
|
480
463
|
url: url,
|
|
481
|
-
body: JSON.stringify(
|
|
482
|
-
method:
|
|
464
|
+
body: JSON.stringify({ parameter: parameter }),
|
|
465
|
+
method: 'POST'
|
|
483
466
|
})];
|
|
484
467
|
case 2:
|
|
485
|
-
result =
|
|
486
|
-
if (result.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
497
|
-
throw new WxCloudSDKError((
|
|
498
|
-
originError:
|
|
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
|
|
518
|
-
|
|
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.
|
|
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
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
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
|
-
|
|
471
|
-
if (
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
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
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
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
|
-
|
|
467
|
+
_j.trys.push([1, 3, , 4]);
|
|
485
468
|
return [4 /*yield*/, fetch({
|
|
486
469
|
url: url,
|
|
487
|
-
body: JSON.stringify(
|
|
488
|
-
method:
|
|
470
|
+
body: JSON.stringify({ parameter: parameter }),
|
|
471
|
+
method: 'POST'
|
|
489
472
|
})];
|
|
490
473
|
case 2:
|
|
491
|
-
result =
|
|
492
|
-
if (result.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
503
|
-
throw new WxCloudSDKError((
|
|
504
|
-
originError:
|
|
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
|
|
524
|
-
|
|
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.
|
|
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.
|
|
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",
|