softkave-node-utils 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/package.json +41 -47
- package/build/src/contexts/SessionContext.d.ts +0 -15
- package/build/src/contexts/SessionContext.js +0 -70
- package/build/src/contexts/SessionContext.js.map +0 -1
- package/build/src/contexts/asyncLocalStorage.d.ts +0 -27
- package/build/src/contexts/asyncLocalStorage.js +0 -115
- package/build/src/contexts/asyncLocalStorage.js.map +0 -1
- package/build/src/contexts/config.d.ts +0 -49
- package/build/src/contexts/config.js +0 -25
- package/build/src/contexts/config.js.map +0 -1
- package/build/src/contexts/data/BaseMongoDataProvider.d.ts +0 -21
- package/build/src/contexts/data/BaseMongoDataProvider.js +0 -157
- package/build/src/contexts/data/BaseMongoDataProvider.js.map +0 -1
- package/build/src/contexts/data/MongoDataProviderUtils.d.ts +0 -6
- package/build/src/contexts/data/MongoDataProviderUtils.js +0 -35
- package/build/src/contexts/data/MongoDataProviderUtils.js.map +0 -1
- package/build/src/contexts/data/dataQueryToMongoQuery.d.ts +0 -3
- package/build/src/contexts/data/dataQueryToMongoQuery.js +0 -85
- package/build/src/contexts/data/dataQueryToMongoQuery.js.map +0 -1
- package/build/src/contexts/data/types.d.ts +0 -114
- package/build/src/contexts/data/types.js +0 -15
- package/build/src/contexts/data/types.js.map +0 -1
- package/build/src/contexts/data/utils.d.ts +0 -2
- package/build/src/contexts/data/utils.js +0 -24
- package/build/src/contexts/data/utils.js.map +0 -1
- package/build/src/contexts/email/SESEmailProviderContext.d.ts +0 -9
- package/build/src/contexts/email/SESEmailProviderContext.js +0 -49
- package/build/src/contexts/email/SESEmailProviderContext.js.map +0 -1
- package/build/src/contexts/email/types.d.ts +0 -13
- package/build/src/contexts/email/types.js +0 -3
- package/build/src/contexts/email/types.js.map +0 -1
- package/build/src/contexts/encryption/AWSSecretsManagerProvider.d.ts +0 -12
- package/build/src/contexts/encryption/AWSSecretsManagerProvider.js +0 -51
- package/build/src/contexts/encryption/AWSSecretsManagerProvider.js.map +0 -1
- package/build/src/contexts/encryption/MemorySecretsManagerProvider.d.ts +0 -12
- package/build/src/contexts/encryption/MemorySecretsManagerProvider.js +0 -35
- package/build/src/contexts/encryption/MemorySecretsManagerProvider.js.map +0 -1
- package/build/src/contexts/encryption/types.d.ts +0 -29
- package/build/src/contexts/encryption/types.js +0 -3
- package/build/src/contexts/encryption/types.js.map +0 -1
- package/build/src/contexts/globalUtils.d.ts +0 -2
- package/build/src/contexts/globalUtils.js +0 -17
- package/build/src/contexts/globalUtils.js.map +0 -1
- package/build/src/contexts/injection/injectables.d.ts +0 -56
- package/build/src/contexts/injection/injectables.js +0 -26
- package/build/src/contexts/injection/injectables.js.map +0 -1
- package/build/src/contexts/injection/keys.d.ts +0 -22
- package/build/src/contexts/injection/keys.js +0 -33
- package/build/src/contexts/injection/keys.js.map +0 -1
- package/build/src/contexts/injection/register.d.ts +0 -33
- package/build/src/contexts/injection/register.js +0 -107
- package/build/src/contexts/injection/register.js.map +0 -1
- package/build/src/contexts/logger/noop.d.ts +0 -5
- package/build/src/contexts/logger/noop.js +0 -12
- package/build/src/contexts/logger/noop.js.map +0 -1
- package/build/src/contexts/logger/types.d.ts +0 -11
- package/build/src/contexts/logger/types.js +0 -8
- package/build/src/contexts/logger/types.js.map +0 -1
- package/build/src/contexts/logger/utils.d.ts +0 -2
- package/build/src/contexts/logger/utils.js +0 -15
- package/build/src/contexts/logger/utils.js.map +0 -1
- package/build/src/contexts/semantic/DataSemanticDataAccessBaseProvider.d.ts +0 -28
- package/build/src/contexts/semantic/DataSemanticDataAccessBaseProvider.js +0 -115
- package/build/src/contexts/semantic/DataSemanticDataAccessBaseProvider.js.map +0 -1
- package/build/src/contexts/semantic/types.d.ts +0 -48
- package/build/src/contexts/semantic/types.js +0 -3
- package/build/src/contexts/semantic/types.js.map +0 -1
- package/build/src/contexts/semantic/utils.d.ts +0 -16
- package/build/src/contexts/semantic/utils.js +0 -68
- package/build/src/contexts/semantic/utils.js.map +0 -1
- package/build/src/contexts/types.d.ts +0 -6
- package/build/src/contexts/types.js +0 -3
- package/build/src/contexts/types.js.map +0 -1
- package/build/src/definitions/agent.d.ts +0 -10
- package/build/src/definitions/agent.js +0 -3
- package/build/src/definitions/agent.js.map +0 -1
- package/build/src/definitions/resource.d.ts +0 -17
- package/build/src/definitions/resource.js +0 -3
- package/build/src/definitions/resource.js.map +0 -1
- package/build/src/definitions/resourceTypes.d.ts +0 -10
- package/build/src/definitions/resourceTypes.js +0 -19
- package/build/src/definitions/resourceTypes.js.map +0 -1
- package/build/src/definitions/token.d.ts +0 -17
- package/build/src/definitions/token.js +0 -10
- package/build/src/definitions/token.js.map +0 -1
- package/build/src/endpoints/RequestData.d.ts +0 -20
- package/build/src/endpoints/RequestData.js +0 -52
- package/build/src/endpoints/RequestData.js.map +0 -1
- package/build/src/endpoints/constants.d.ts +0 -20
- package/build/src/endpoints/constants.js +0 -24
- package/build/src/endpoints/constants.js.map +0 -1
- package/build/src/endpoints/endpoints.d.ts +0 -7
- package/build/src/endpoints/endpoints.js +0 -33
- package/build/src/endpoints/endpoints.js.map +0 -1
- package/build/src/endpoints/endpoints.mddoc.d.ts +0 -62
- package/build/src/endpoints/endpoints.mddoc.js +0 -437
- package/build/src/endpoints/endpoints.mddoc.js.map +0 -1
- package/build/src/endpoints/extractors.d.ts +0 -9
- package/build/src/endpoints/extractors.js +0 -24
- package/build/src/endpoints/extractors.js.map +0 -1
- package/build/src/endpoints/jobs/types.d.ts +0 -6
- package/build/src/endpoints/jobs/types.js +0 -3
- package/build/src/endpoints/jobs/types.js.map +0 -1
- package/build/src/endpoints/pagination.d.ts +0 -3
- package/build/src/endpoints/pagination.js +0 -27
- package/build/src/endpoints/pagination.js.map +0 -1
- package/build/src/endpoints/types.d.ts +0 -68
- package/build/src/endpoints/types.js +0 -13
- package/build/src/endpoints/types.js.map +0 -1
- package/build/src/endpoints/utils.d.ts +0 -23
- package/build/src/endpoints/utils.js +0 -131
- package/build/src/endpoints/utils.js.map +0 -1
- package/build/src/endpoints/validation.d.ts +0 -47
- package/build/src/endpoints/validation.js +0 -73
- package/build/src/endpoints/validation.js.map +0 -1
- package/build/src/errors/OperationError.d.ts +0 -20
- package/build/src/errors/OperationError.js +0 -38
- package/build/src/errors/OperationError.js.map +0 -1
- package/build/src/errors/commonErrors.d.ts +0 -24
- package/build/src/errors/commonErrors.js +0 -72
- package/build/src/errors/commonErrors.js.map +0 -1
- package/build/src/errors/endpointErrors.d.ts +0 -31
- package/build/src/errors/endpointErrors.js +0 -83
- package/build/src/errors/endpointErrors.js.map +0 -1
- package/build/src/errors/messages.d.ts +0 -11
- package/build/src/errors/messages.js +0 -27
- package/build/src/errors/messages.js.map +0 -1
- package/build/src/errors/reusableErrors.d.ts +0 -12
- package/build/src/errors/reusableErrors.js +0 -25
- package/build/src/errors/reusableErrors.js.map +0 -1
- package/build/src/errors/sessionErrors.d.ts +0 -18
- package/build/src/errors/sessionErrors.js +0 -60
- package/build/src/errors/sessionErrors.js.map +0 -1
- package/build/src/index.d.ts +0 -0
- package/build/src/index.js +0 -2
- package/build/src/index.js.map +0 -1
- package/build/src/mddoc/jsSdkCodeGen.d.ts +0 -7
- package/build/src/mddoc/jsSdkCodeGen.js +0 -546
- package/build/src/mddoc/jsSdkCodeGen.js.map +0 -1
- package/build/src/mddoc/mddoc.d.ts +0 -206
- package/build/src/mddoc/mddoc.js +0 -142
- package/build/src/mddoc/mddoc.js.map +0 -1
- package/build/src/mddoc/restApiEndpointsInfoGen.d.ts +0 -10
- package/build/src/mddoc/restApiEndpointsInfoGen.js +0 -92
- package/build/src/mddoc/restApiEndpointsInfoGen.js.map +0 -1
- package/build/src/mddoc/restApiTableOfContentGen.d.ts +0 -2
- package/build/src/mddoc/restApiTableOfContentGen.js +0 -51
- package/build/src/mddoc/restApiTableOfContentGen.js.map +0 -1
- package/build/src/mongodb/connection.d.ts +0 -26
- package/build/src/mongodb/connection.js +0 -50
- package/build/src/mongodb/connection.js.map +0 -1
- package/build/src/mongodb/constants.d.ts +0 -4
- package/build/src/mongodb/constants.js +0 -7
- package/build/src/mongodb/constants.js.map +0 -1
- package/build/src/mongodb/utils.d.ts +0 -20
- package/build/src/mongodb/utils.js +0 -26
- package/build/src/mongodb/utils.js.map +0 -1
- package/build/src/testUtils/context/email/MockTestEmailProviderContext.d.ts +0 -6
- package/build/src/testUtils/context/email/MockTestEmailProviderContext.js +0 -10
- package/build/src/testUtils/context/email/MockTestEmailProviderContext.js.map +0 -1
- package/build/src/testUtils/context/email/NoopEmailProviderContext.d.ts +0 -6
- package/build/src/testUtils/context/email/NoopEmailProviderContext.js +0 -11
- package/build/src/testUtils/context/email/NoopEmailProviderContext.js.map +0 -1
- package/build/src/testUtils/context/email/TestSESEmailProviderContext.d.ts +0 -8
- package/build/src/testUtils/context/email/TestSESEmailProviderContext.js +0 -14
- package/build/src/testUtils/context/email/TestSESEmailProviderContext.js.map +0 -1
- package/build/src/testUtils/context/types.d.ts +0 -9
- package/build/src/testUtils/context/types.js +0 -3
- package/build/src/testUtils/context/types.js.map +0 -1
- package/build/src/testUtils/generate/utils.d.ts +0 -37
- package/build/src/testUtils/generate/utils.js +0 -79
- package/build/src/testUtils/generate/utils.js.map +0 -1
- package/build/src/testUtils/helpers/assertion.d.ts +0 -25
- package/build/src/testUtils/helpers/assertion.js +0 -63
- package/build/src/testUtils/helpers/assertion.js.map +0 -1
- package/build/src/testUtils/helpers/binary.d.ts +0 -4
- package/build/src/testUtils/helpers/binary.js +0 -19
- package/build/src/testUtils/helpers/binary.js.map +0 -1
- package/build/src/testUtils/helpers/error.d.ts +0 -3
- package/build/src/testUtils/helpers/error.js +0 -43
- package/build/src/testUtils/helpers/error.js.map +0 -1
- package/build/src/testUtils/helpers/mock.d.ts +0 -2
- package/build/src/testUtils/helpers/mock.js +0 -15
- package/build/src/testUtils/helpers/mock.js.map +0 -1
- package/build/src/testUtils/helpers/mongodb.d.ts +0 -3
- package/build/src/testUtils/helpers/mongodb.js +0 -17
- package/build/src/testUtils/helpers/mongodb.js.map +0 -1
- package/build/src/testUtils/helpers/testFns.d.ts +0 -30
- package/build/src/testUtils/helpers/testFns.js +0 -96
- package/build/src/testUtils/helpers/testFns.js.map +0 -1
- package/build/src/testUtils/testUtils.d.ts +0 -13
- package/build/src/testUtils/testUtils.js +0 -50
- package/build/src/testUtils/testUtils.js.map +0 -1
- package/build/src/utils/assertion.d.ts +0 -2
- package/build/src/utils/assertion.js +0 -31
- package/build/src/utils/assertion.js.map +0 -1
- package/build/src/utils/aws.d.ts +0 -5
- package/build/src/utils/aws.js +0 -3
- package/build/src/utils/aws.js.map +0 -1
- package/build/src/utils/streamToBuffer.d.ts +0 -4
- package/build/src/utils/streamToBuffer.js +0 -19
- package/build/src/utils/streamToBuffer.js.map +0 -1
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import OperationError, { OperationErrorParameters } from './OperationError';
|
|
2
|
-
export declare class InvalidCredentialsError extends OperationError {
|
|
3
|
-
name: string;
|
|
4
|
-
action: "loginAgain";
|
|
5
|
-
statusCode: 401;
|
|
6
|
-
constructor(props?: OperationErrorParameters | string);
|
|
7
|
-
}
|
|
8
|
-
export declare class CredentialsExpiredError extends OperationError {
|
|
9
|
-
name: string;
|
|
10
|
-
action: "loginAgain";
|
|
11
|
-
statusCode: 401;
|
|
12
|
-
constructor(props?: OperationErrorParameters | string);
|
|
13
|
-
}
|
|
14
|
-
export declare class PermissionDeniedError extends OperationError {
|
|
15
|
-
name: string;
|
|
16
|
-
statusCode: 403;
|
|
17
|
-
constructor(props?: OperationErrorParameters | string);
|
|
18
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.PermissionDeniedError = exports.CredentialsExpiredError = exports.InvalidCredentialsError = void 0;
|
|
27
|
-
const constants_1 = require("../endpoints/constants");
|
|
28
|
-
const types_1 = require("../endpoints/types");
|
|
29
|
-
const OperationError_1 = __importStar(require("./OperationError"));
|
|
30
|
-
const messages_1 = require("./messages");
|
|
31
|
-
class InvalidCredentialsError extends OperationError_1.default {
|
|
32
|
-
constructor(props) {
|
|
33
|
-
super(props);
|
|
34
|
-
this.name = 'InvalidCredentialsError';
|
|
35
|
-
this.action = types_1.ServerRecommendedActionsMap.LoginAgain;
|
|
36
|
-
this.statusCode = constants_1.kEndpointConstants.httpStatusCode.unauthorized;
|
|
37
|
-
this.message = (0, OperationError_1.getErrorMessageFromParams)(props, messages_1.kAppMessages.token.invalidCredentials);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.InvalidCredentialsError = InvalidCredentialsError;
|
|
41
|
-
class CredentialsExpiredError extends OperationError_1.default {
|
|
42
|
-
constructor(props) {
|
|
43
|
-
super(props);
|
|
44
|
-
this.name = 'CredentialsExpiredError';
|
|
45
|
-
this.action = types_1.ServerRecommendedActionsMap.LoginAgain;
|
|
46
|
-
this.statusCode = constants_1.kEndpointConstants.httpStatusCode.unauthorized;
|
|
47
|
-
this.message = (0, OperationError_1.getErrorMessageFromParams)(props, 'Credentials expired');
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.CredentialsExpiredError = CredentialsExpiredError;
|
|
51
|
-
class PermissionDeniedError extends OperationError_1.default {
|
|
52
|
-
constructor(props) {
|
|
53
|
-
super(props);
|
|
54
|
-
this.name = 'PermissionDeniedError';
|
|
55
|
-
this.statusCode = constants_1.kEndpointConstants.httpStatusCode.forbidden;
|
|
56
|
-
this.message = (0, OperationError_1.getErrorMessageFromParams)(props, 'Permission denied');
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.PermissionDeniedError = PermissionDeniedError;
|
|
60
|
-
//# sourceMappingURL=sessionErrors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sessionErrors.js","sourceRoot":"","sources":["../../../src/errors/sessionErrors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0D;AAC1D,8CAA+D;AAC/D,mEAG0B;AAC1B,yCAAwC;AAExC,MAAa,uBAAwB,SAAQ,wBAAc;IAIzD,YAAY,KAAyC;QACnD,KAAK,CAAC,KAAK,CAAC,CAAC;QAJf,SAAI,GAAG,yBAAyB,CAAC;QACjC,WAAM,GAAG,mCAA2B,CAAC,UAAU,CAAC;QAChD,eAAU,GAAG,8BAAkB,CAAC,cAAc,CAAC,YAAY,CAAC;QAG1D,IAAI,CAAC,OAAO,GAAG,IAAA,0CAAyB,EACtC,KAAK,EACL,uBAAY,CAAC,KAAK,CAAC,kBAAkB,CACtC,CAAC;IACJ,CAAC;CACF;AAXD,0DAWC;AAED,MAAa,uBAAwB,SAAQ,wBAAc;IAIzD,YAAY,KAAyC;QACnD,KAAK,CAAC,KAAK,CAAC,CAAC;QAJf,SAAI,GAAG,yBAAyB,CAAC;QACjC,WAAM,GAAG,mCAA2B,CAAC,UAAU,CAAC;QAChD,eAAU,GAAG,8BAAkB,CAAC,cAAc,CAAC,YAAY,CAAC;QAG1D,IAAI,CAAC,OAAO,GAAG,IAAA,0CAAyB,EAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACzE,CAAC;CACF;AARD,0DAQC;AAED,MAAa,qBAAsB,SAAQ,wBAAc;IAIvD,YAAY,KAAyC;QACnD,KAAK,CAAC,KAAK,CAAC,CAAC;QAJf,SAAI,GAAG,uBAAuB,CAAC;QAC/B,eAAU,GAAG,8BAAkB,CAAC,cAAc,CAAC,SAAS,CAAC;QAIvD,IAAI,CAAC,OAAO,GAAG,IAAA,0CAAyB,EAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IACvE,CAAC;CACF;AARD,sDAQC"}
|
package/build/src/index.d.ts
DELETED
|
File without changes
|
package/build/src/index.js
DELETED
package/build/src/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { AppExportedHttpEndpoints } from '../endpoints/endpoints';
|
|
2
|
-
export interface MddocJsSdkCodeGenParams {
|
|
3
|
-
endpoints: AppExportedHttpEndpoints;
|
|
4
|
-
filenamePrefix: string;
|
|
5
|
-
dir: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function mddocJsSdkCodeGen(params: MddocJsSdkCodeGenParams): Promise<void>;
|
|
@@ -1,546 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.mddocJsSdkCodeGen = void 0;
|
|
27
|
-
const child_process_1 = require("child_process");
|
|
28
|
-
const fse = __importStar(require("fs-extra"));
|
|
29
|
-
const lodash_1 = require("lodash");
|
|
30
|
-
const softkave_js_utils_1 = require("softkave-js-utils");
|
|
31
|
-
const mddoc_1 = require("./mddoc");
|
|
32
|
-
const path = require("path");
|
|
33
|
-
const assert = require("assert");
|
|
34
|
-
class Doc {
|
|
35
|
-
constructor(genTypesFilename) {
|
|
36
|
-
this.genTypesFilename = genTypesFilename;
|
|
37
|
-
this.disclaimer = '// This file is auto-generated, do not modify directly. \n' +
|
|
38
|
-
'// Reach out to @abayomi to suggest changes.\n';
|
|
39
|
-
this.endpointsText = '';
|
|
40
|
-
this.typesText = '';
|
|
41
|
-
this.docImports = {};
|
|
42
|
-
this.docTypeImports = {};
|
|
43
|
-
this.classes = {};
|
|
44
|
-
this.generatedTypeCache = new Map();
|
|
45
|
-
}
|
|
46
|
-
appendType(typeText) {
|
|
47
|
-
this.typesText += typeText + '\n';
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
appendEndpoint(endpoint) {
|
|
51
|
-
this.endpointsText += endpoint + '\n';
|
|
52
|
-
return this;
|
|
53
|
-
}
|
|
54
|
-
appendImport(importing, from) {
|
|
55
|
-
let entry = this.docImports[from];
|
|
56
|
-
if (!entry) {
|
|
57
|
-
entry = { from, importing };
|
|
58
|
-
this.docImports[from] = entry;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
entry.importing = (0, lodash_1.uniq)(entry.importing.concat(importing));
|
|
62
|
-
}
|
|
63
|
-
return this;
|
|
64
|
-
}
|
|
65
|
-
appendTypeImport(importing, from) {
|
|
66
|
-
let entry = this.docTypeImports[from];
|
|
67
|
-
if (!entry) {
|
|
68
|
-
entry = { from, importing };
|
|
69
|
-
this.docTypeImports[from] = entry;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
entry.importing = (0, lodash_1.uniq)(entry.importing.concat(importing));
|
|
73
|
-
}
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
appendImportFromGenTypes(importing) {
|
|
77
|
-
return this.appendImport(importing, this.genTypesFilename);
|
|
78
|
-
}
|
|
79
|
-
appendToClass(entry, name, extendsName) {
|
|
80
|
-
let classEntry = this.classes[name];
|
|
81
|
-
if (!classEntry) {
|
|
82
|
-
classEntry = { name, extendsName, entries: [entry] };
|
|
83
|
-
this.classes[name] = classEntry;
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
if (extendsName && extendsName !== classEntry.extendsName) {
|
|
87
|
-
classEntry.extendsName = extendsName;
|
|
88
|
-
}
|
|
89
|
-
classEntry.entries.push(entry);
|
|
90
|
-
}
|
|
91
|
-
return this;
|
|
92
|
-
}
|
|
93
|
-
compileText() {
|
|
94
|
-
return (this.disclaimer +
|
|
95
|
-
'\n' +
|
|
96
|
-
this.compileImports() +
|
|
97
|
-
'\n' +
|
|
98
|
-
this.compileTypeImports() +
|
|
99
|
-
'\n' +
|
|
100
|
-
this.typesText +
|
|
101
|
-
'\n' +
|
|
102
|
-
this.endpointsText +
|
|
103
|
-
'\n' +
|
|
104
|
-
this.compileClasses());
|
|
105
|
-
}
|
|
106
|
-
compileImports() {
|
|
107
|
-
let importsText = '';
|
|
108
|
-
for (const from in this.docImports) {
|
|
109
|
-
const { importing } = this.docImports[from];
|
|
110
|
-
importsText += `import {${importing.join(', ')}} from "${from}"\n`;
|
|
111
|
-
}
|
|
112
|
-
return importsText;
|
|
113
|
-
}
|
|
114
|
-
compileTypeImports() {
|
|
115
|
-
let importsText = '';
|
|
116
|
-
for (const from in this.docTypeImports) {
|
|
117
|
-
const { importing } = this.docTypeImports[from];
|
|
118
|
-
importsText += `import type {${importing.join(', ')}} from "${from}"\n`;
|
|
119
|
-
}
|
|
120
|
-
return importsText;
|
|
121
|
-
}
|
|
122
|
-
compileClasses() {
|
|
123
|
-
let classesText = '';
|
|
124
|
-
for (const name in this.classes) {
|
|
125
|
-
const { entries, extendsName } = this.classes[name];
|
|
126
|
-
const extendsText = extendsName ? ` extends ${extendsName}` : '';
|
|
127
|
-
classesText += `export class ${name}${extendsText} {\n`;
|
|
128
|
-
entries.forEach(fieldEntry => {
|
|
129
|
-
classesText += ` ${fieldEntry}\n`;
|
|
130
|
-
});
|
|
131
|
-
classesText += '}\n';
|
|
132
|
-
}
|
|
133
|
-
return classesText;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
function getEnumType(doc, item) {
|
|
137
|
-
const name = item.getEnumName();
|
|
138
|
-
if (name && doc.generatedTypeCache.has(name)) {
|
|
139
|
-
return name;
|
|
140
|
-
}
|
|
141
|
-
const text = item
|
|
142
|
-
.assertGetValid()
|
|
143
|
-
.map(next => `"${next}"`)
|
|
144
|
-
.join(' | ');
|
|
145
|
-
if (name) {
|
|
146
|
-
doc.generatedTypeCache.set(name, true);
|
|
147
|
-
doc.appendType(`export type ${name} = ${text}`);
|
|
148
|
-
return name;
|
|
149
|
-
}
|
|
150
|
-
return text;
|
|
151
|
-
}
|
|
152
|
-
function getStringType(doc, item) {
|
|
153
|
-
var _a;
|
|
154
|
-
return ((_a = item.getValid()) === null || _a === void 0 ? void 0 : _a.length) ? getEnumType(doc, item) : 'string';
|
|
155
|
-
}
|
|
156
|
-
function getNumberType() {
|
|
157
|
-
return 'number';
|
|
158
|
-
}
|
|
159
|
-
function getBooleanType() {
|
|
160
|
-
return 'boolean';
|
|
161
|
-
}
|
|
162
|
-
function getNullType() {
|
|
163
|
-
return 'null';
|
|
164
|
-
}
|
|
165
|
-
function getUndefinedType() {
|
|
166
|
-
return 'undefined';
|
|
167
|
-
}
|
|
168
|
-
function getDateType() {
|
|
169
|
-
return 'number';
|
|
170
|
-
}
|
|
171
|
-
function getArrayType(doc, item) {
|
|
172
|
-
const ofType = item.assertGetType();
|
|
173
|
-
const typeString = getType(doc, ofType,
|
|
174
|
-
/** asFetchResponseIfFieldBinary */ false);
|
|
175
|
-
return `Array<${typeString}>`;
|
|
176
|
-
}
|
|
177
|
-
function getOrCombinationType(doc, item) {
|
|
178
|
-
return item
|
|
179
|
-
.assertGetTypes()
|
|
180
|
-
.map(next => getType(doc, next, /** asFetchResponseIfFieldBinary */ false))
|
|
181
|
-
.join(' | ');
|
|
182
|
-
}
|
|
183
|
-
function getBinaryType(doc, asFetchResponse) {
|
|
184
|
-
if (asFetchResponse) {
|
|
185
|
-
doc.appendTypeImport(['Readable'], 'stream');
|
|
186
|
-
return 'Blob | Readable';
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
doc.appendTypeImport(['Readable'], 'stream');
|
|
190
|
-
return 'string | Readable | Blob';
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
function getType(doc, item, asFetchResponseIfFieldBinary) {
|
|
194
|
-
if (mddoc_1.mddocAssertion.isFieldString(item)) {
|
|
195
|
-
return getStringType(doc, mddoc_1.mddocConstruct.constructFieldString(item));
|
|
196
|
-
}
|
|
197
|
-
else if (mddoc_1.mddocAssertion.isFieldNumber(item)) {
|
|
198
|
-
return getNumberType();
|
|
199
|
-
}
|
|
200
|
-
else if (mddoc_1.mddocAssertion.isFieldBoolean(item)) {
|
|
201
|
-
return getBooleanType();
|
|
202
|
-
}
|
|
203
|
-
else if (mddoc_1.mddocAssertion.isFieldNull(item)) {
|
|
204
|
-
return getNullType();
|
|
205
|
-
}
|
|
206
|
-
else if (mddoc_1.mddocAssertion.isFieldUndefined(item)) {
|
|
207
|
-
return getUndefinedType();
|
|
208
|
-
}
|
|
209
|
-
else if (mddoc_1.mddocAssertion.isFieldDate(item)) {
|
|
210
|
-
return getDateType();
|
|
211
|
-
}
|
|
212
|
-
else if (mddoc_1.mddocAssertion.isFieldArray(item)) {
|
|
213
|
-
return getArrayType(doc, mddoc_1.mddocConstruct.constructFieldArray(item));
|
|
214
|
-
}
|
|
215
|
-
else if (mddoc_1.mddocAssertion.isFieldOrCombination(item)) {
|
|
216
|
-
return getOrCombinationType(doc, mddoc_1.mddocConstruct.constructFieldOrCombination(item));
|
|
217
|
-
}
|
|
218
|
-
else if (mddoc_1.mddocAssertion.isFieldBinary(item)) {
|
|
219
|
-
return getBinaryType(doc, asFetchResponseIfFieldBinary);
|
|
220
|
-
}
|
|
221
|
-
else if (mddoc_1.mddocAssertion.isFieldObject(item)) {
|
|
222
|
-
return generateObjectDefinition(doc, mddoc_1.mddocConstruct.constructFieldObject(item), asFetchResponseIfFieldBinary);
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
return 'unknown';
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
function shouldEncloseObjectKeyInQuotes(key) {
|
|
229
|
-
return /[0-9]/.test(key[0]) || /[^A-Za-z0-9]/.test(key);
|
|
230
|
-
}
|
|
231
|
-
function generateObjectDefinition(doc, item, asFetchResponse, name, extraFields = []) {
|
|
232
|
-
var _a;
|
|
233
|
-
name = name !== null && name !== void 0 ? name : item.assertGetName();
|
|
234
|
-
if (doc.generatedTypeCache.has(name)) {
|
|
235
|
-
return name;
|
|
236
|
-
}
|
|
237
|
-
const fields = (_a = item.getFields()) !== null && _a !== void 0 ? _a : {};
|
|
238
|
-
const entries = [];
|
|
239
|
-
for (let key in fields) {
|
|
240
|
-
const value = fields[key];
|
|
241
|
-
const entryType = getType(doc, value.data, asFetchResponse);
|
|
242
|
-
const separator = value.required ? ':' : '?:';
|
|
243
|
-
key = shouldEncloseObjectKeyInQuotes(key) ? `"${key}"` : key;
|
|
244
|
-
const entry = `${key}${separator} ${entryType};`;
|
|
245
|
-
entries.push(entry);
|
|
246
|
-
const valueData = value.data;
|
|
247
|
-
if (mddoc_1.mddocAssertion.isFieldObject(valueData)) {
|
|
248
|
-
generateObjectDefinition(doc, mddoc_1.mddocConstruct.constructFieldObject(valueData), asFetchResponse);
|
|
249
|
-
}
|
|
250
|
-
else if (mddoc_1.mddocAssertion.isFieldArray(valueData) &&
|
|
251
|
-
mddoc_1.mddocAssertion.isFieldObject(mddoc_1.mddocConstruct.constructFieldArray(valueData).assertGetType())) {
|
|
252
|
-
generateObjectDefinition(doc, mddoc_1.mddocConstruct
|
|
253
|
-
.constructFieldArray(valueData)
|
|
254
|
-
.assertGetType(), asFetchResponse);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
doc.appendType(`export type ${name} = {`);
|
|
258
|
-
entries.concat(extraFields).forEach(entry => doc.appendType(entry));
|
|
259
|
-
doc.appendType('}');
|
|
260
|
-
doc.generatedTypeCache.set(name, true);
|
|
261
|
-
return name;
|
|
262
|
-
}
|
|
263
|
-
function getTypesFromEndpoint(endpoint) {
|
|
264
|
-
var _a;
|
|
265
|
-
// Request body
|
|
266
|
-
const sdkRequestBodyRaw = (_a = endpoint.getSdkParamsBody()) !== null && _a !== void 0 ? _a : endpoint.getRequestBody();
|
|
267
|
-
const sdkRequestObject = mddoc_1.mddocAssertion.isFieldObject(sdkRequestBodyRaw)
|
|
268
|
-
? sdkRequestBodyRaw
|
|
269
|
-
: mddoc_1.mddocAssertion.isMultipartFormdata(sdkRequestBodyRaw)
|
|
270
|
-
? mddoc_1.mddocConstruct
|
|
271
|
-
.constructHttpEndpointMultipartFormdata(sdkRequestBodyRaw)
|
|
272
|
-
.assertGetItems()
|
|
273
|
-
: mddoc_1.mddocAssertion.isSdkParamsBody(sdkRequestBodyRaw)
|
|
274
|
-
? mddoc_1.mddocConstruct.constructSdkParamsBody(sdkRequestBodyRaw).assertGetDef()
|
|
275
|
-
: undefined;
|
|
276
|
-
// Success response body
|
|
277
|
-
const successResponseBodyRaw = endpoint.getResponseBody();
|
|
278
|
-
const successResponseBodyObject = mddoc_1.mddocAssertion.isFieldObject(successResponseBodyRaw)
|
|
279
|
-
? successResponseBodyRaw
|
|
280
|
-
: undefined;
|
|
281
|
-
// Success response headers
|
|
282
|
-
const successResponseHeadersObject = endpoint.getResponseHeaders();
|
|
283
|
-
const successObjectFields = {};
|
|
284
|
-
const requestBodyObjectHasRequiredFields = sdkRequestObject &&
|
|
285
|
-
mddoc_1.mddocAssertion.fieldObjectHasRequiredFields(sdkRequestObject);
|
|
286
|
-
if (successResponseBodyObject) {
|
|
287
|
-
if (mddoc_1.mddocAssertion.fieldObjectHasRequiredFields(successResponseBodyObject)) {
|
|
288
|
-
successObjectFields.body = mddoc_1.mddocConstruct.constructFieldObjectField({
|
|
289
|
-
required: true,
|
|
290
|
-
data: successResponseBodyObject,
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
successObjectFields.body = mddoc_1.mddocConstruct.constructFieldObjectField({
|
|
295
|
-
required: false,
|
|
296
|
-
data: successResponseBodyObject,
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
else if (mddoc_1.mddocAssertion.isFieldBinary(successResponseBodyRaw)) {
|
|
301
|
-
successObjectFields.body = mddoc_1.mddocConstruct.constructFieldObjectField({
|
|
302
|
-
required: true,
|
|
303
|
-
data: successResponseBodyRaw,
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
return {
|
|
307
|
-
requestBodyObjectHasRequiredFields,
|
|
308
|
-
sdkRequestBodyRaw,
|
|
309
|
-
sdkRequestObject,
|
|
310
|
-
mddocSdkRequestObject: sdkRequestObject
|
|
311
|
-
? mddoc_1.mddocConstruct.constructFieldObject(sdkRequestObject)
|
|
312
|
-
: undefined,
|
|
313
|
-
successResponseBodyRaw,
|
|
314
|
-
mddocSuccessResponseBodyRaw: successResponseBodyRaw
|
|
315
|
-
? mddoc_1.mddocConstruct.constructFieldObject(successResponseBodyRaw)
|
|
316
|
-
: undefined,
|
|
317
|
-
successResponseBodyObject,
|
|
318
|
-
mddocSuccessResponseBodyObject: successResponseBodyObject
|
|
319
|
-
? mddoc_1.mddocConstruct.constructFieldObject(successResponseBodyObject)
|
|
320
|
-
: undefined,
|
|
321
|
-
successResponseHeadersObject,
|
|
322
|
-
mddocSuccessResponseHeadersObject: successResponseHeadersObject
|
|
323
|
-
? mddoc_1.mddocConstruct.constructFieldObject(successResponseHeadersObject)
|
|
324
|
-
: undefined,
|
|
325
|
-
};
|
|
326
|
-
}
|
|
327
|
-
function generateTypesFromEndpoint(doc, endpoint) {
|
|
328
|
-
const { mddocSuccessResponseBodyObject, mddocSdkRequestObject } = getTypesFromEndpoint(endpoint);
|
|
329
|
-
// Request body
|
|
330
|
-
if (mddocSdkRequestObject) {
|
|
331
|
-
generateObjectDefinition(doc, mddocSdkRequestObject, false);
|
|
332
|
-
}
|
|
333
|
-
// Success response body
|
|
334
|
-
if (mddocSuccessResponseBodyObject) {
|
|
335
|
-
generateObjectDefinition(doc, mddocSuccessResponseBodyObject,
|
|
336
|
-
/** asFetchResponse */ true);
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
function documentTypesFromEndpoint(doc, endpoint) {
|
|
340
|
-
generateTypesFromEndpoint(doc, endpoint);
|
|
341
|
-
}
|
|
342
|
-
function decideIsBinaryRequest(req) {
|
|
343
|
-
return (mddoc_1.mddocAssertion.isMultipartFormdata(req) ||
|
|
344
|
-
(mddoc_1.mddocAssertion.isSdkParamsBody(req) && req.serializeAs === 'formdata'));
|
|
345
|
-
}
|
|
346
|
-
function generateEndpointCode(doc, types, className, fnName, endpoint) {
|
|
347
|
-
var _a;
|
|
348
|
-
const { mddocSdkRequestObject, mddocSuccessResponseBodyRaw, mddocSuccessResponseBodyObject, requestBodyObjectHasRequiredFields, sdkRequestBodyRaw, } = types;
|
|
349
|
-
doc.appendImportFromGenTypes((0, lodash_1.compact)([
|
|
350
|
-
mddocSdkRequestObject === null || mddocSdkRequestObject === void 0 ? void 0 : mddocSdkRequestObject.assertGetName(),
|
|
351
|
-
mddocSuccessResponseBodyObject === null || mddocSuccessResponseBodyObject === void 0 ? void 0 : mddocSuccessResponseBodyObject.assertGetName(),
|
|
352
|
-
]));
|
|
353
|
-
let endpointParamsText = '';
|
|
354
|
-
let resultTypeName = 'undefined';
|
|
355
|
-
const isBinaryRequest = decideIsBinaryRequest(sdkRequestBodyRaw);
|
|
356
|
-
const isBinaryResponse = mddoc_1.mddocAssertion.isFieldBinary(mddocSuccessResponseBodyRaw);
|
|
357
|
-
const requestBodyObjectName = mddocSdkRequestObject === null || mddocSdkRequestObject === void 0 ? void 0 : mddocSdkRequestObject.assertGetName();
|
|
358
|
-
if (mddocSuccessResponseBodyObject) {
|
|
359
|
-
doc.appendImportFromGenTypes([
|
|
360
|
-
mddocSuccessResponseBodyObject.assertGetName(),
|
|
361
|
-
]);
|
|
362
|
-
resultTypeName = mddocSuccessResponseBodyObject.assertGetName();
|
|
363
|
-
}
|
|
364
|
-
else if (isBinaryResponse) {
|
|
365
|
-
resultTypeName = getBinaryType(doc, /** asFetchResponse */ true);
|
|
366
|
-
}
|
|
367
|
-
if (mddocSdkRequestObject) {
|
|
368
|
-
if (isBinaryResponse) {
|
|
369
|
-
if (requestBodyObjectHasRequiredFields) {
|
|
370
|
-
endpointParamsText = `props: FimidaraEndpointWithBinaryResponseParamsRequired<${requestBodyObjectName}>`;
|
|
371
|
-
}
|
|
372
|
-
else {
|
|
373
|
-
endpointParamsText = `props: FimidaraEndpointWithBinaryResponseParamsOptional<${requestBodyObjectName}>`;
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
else {
|
|
377
|
-
if (requestBodyObjectHasRequiredFields) {
|
|
378
|
-
endpointParamsText = `props: FimidaraEndpointParamsRequired<${requestBodyObjectName}>`;
|
|
379
|
-
}
|
|
380
|
-
else {
|
|
381
|
-
endpointParamsText = `props?: FimidaraEndpointParamsOptional<${requestBodyObjectName}>`;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
else {
|
|
386
|
-
endpointParamsText = 'props?: FimidaraEndpointParamsOptional<undefined>';
|
|
387
|
-
}
|
|
388
|
-
const bodyText = [];
|
|
389
|
-
let mapping = '';
|
|
390
|
-
const sdkBody = endpoint.getSdkParamsBody();
|
|
391
|
-
if (isBinaryResponse) {
|
|
392
|
-
bodyText.push('responseType: props.responseType,');
|
|
393
|
-
}
|
|
394
|
-
if (isBinaryRequest) {
|
|
395
|
-
bodyText.push('formdata: props.body,');
|
|
396
|
-
}
|
|
397
|
-
else if (mddocSdkRequestObject) {
|
|
398
|
-
bodyText.push('data: props?.body,');
|
|
399
|
-
}
|
|
400
|
-
if (mddocSdkRequestObject && sdkBody) {
|
|
401
|
-
(0, lodash_1.forEach)((_a = mddocSdkRequestObject.fields) !== null && _a !== void 0 ? _a : {}, (value, key) => {
|
|
402
|
-
const mapTo = sdkBody.mappings(key);
|
|
403
|
-
if (mapTo) {
|
|
404
|
-
const entry = `"${key}": ["${mapTo[0]}", "${String(mapTo[1])}"],`;
|
|
405
|
-
mapping += entry;
|
|
406
|
-
}
|
|
407
|
-
});
|
|
408
|
-
if (mapping.length) {
|
|
409
|
-
mapping = `{${mapping}}`;
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
const text = `${fnName} = async (${endpointParamsText}): Promise<FimidaraEndpointResult<${resultTypeName}>> => {
|
|
413
|
-
${mapping.length ? `const mapping = ${mapping} as const` : ''}
|
|
414
|
-
return this.execute${isBinaryResponse ? 'Raw' : 'Json'}({
|
|
415
|
-
...props,
|
|
416
|
-
${bodyText.join('')}
|
|
417
|
-
path: "${endpoint.assertGetBasePathname()}",
|
|
418
|
-
method: "${endpoint.assertGetMethod().toUpperCase()}",
|
|
419
|
-
}, props, ${mapping.length ? 'mapping' : ''});
|
|
420
|
-
}`;
|
|
421
|
-
doc.appendToClass(text, className, 'FimidaraEndpointsBase');
|
|
422
|
-
}
|
|
423
|
-
function generateEveryEndpointCode(doc, endpoints) {
|
|
424
|
-
const leafEndpointsMap = {};
|
|
425
|
-
const branchMap = {};
|
|
426
|
-
endpoints.forEach(e1 => {
|
|
427
|
-
const pathname = e1.assertGetBasePathname();
|
|
428
|
-
// pathname looks like /v1/agentToken/addAgentToken, which should yield 4
|
|
429
|
-
// parts, but pathSplit, removes empty strings, so we'll have ["v1",
|
|
430
|
-
// "agentToken", "addAgentToken"]. also filter out path params.
|
|
431
|
-
const [, ...rest] = (0, softkave_js_utils_1.pathSplit)({ input: pathname }).filter(p => !p.startsWith(':'));
|
|
432
|
-
assert(rest.length >= 2);
|
|
433
|
-
const fnName = (0, lodash_1.last)(rest);
|
|
434
|
-
const groupName = (0, lodash_1.nth)(rest, rest.length - 2);
|
|
435
|
-
const className = `${(0, lodash_1.upperFirst)(groupName)}Endpoints`;
|
|
436
|
-
const types = getTypesFromEndpoint(e1);
|
|
437
|
-
const key = `${className}.${fnName}`;
|
|
438
|
-
(0, lodash_1.set)(leafEndpointsMap, key, { types, endpoint: e1 });
|
|
439
|
-
const branches = rest.slice(0, -1);
|
|
440
|
-
const branchesKey = branches.join('.');
|
|
441
|
-
(0, lodash_1.set)(branchMap, branchesKey, {});
|
|
442
|
-
});
|
|
443
|
-
doc.appendImport([
|
|
444
|
-
'invokeEndpoint',
|
|
445
|
-
'SoftkaveMddocEndpointsBase',
|
|
446
|
-
'SoftkaveMddocEndpointResult',
|
|
447
|
-
'SoftkaveMddocEndpointParamsRequired',
|
|
448
|
-
'SoftkaveMddocEndpointParamsOptional',
|
|
449
|
-
'SoftkaveMddocEndpointWithBinaryResponseParamsRequired',
|
|
450
|
-
'SoftkaveMddocEndpointWithBinaryResponseParamsOptional',
|
|
451
|
-
], './mddoc/utils');
|
|
452
|
-
for (const groupName in leafEndpointsMap) {
|
|
453
|
-
const group = leafEndpointsMap[groupName];
|
|
454
|
-
for (const fnName in group) {
|
|
455
|
-
const { types, endpoint } = group[fnName];
|
|
456
|
-
generateEndpointCode(doc, types, groupName, fnName, endpoint);
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
function docBranch(parentName, ownName, branch) {
|
|
460
|
-
if (!(0, softkave_js_utils_1.isObjectEmpty)(branch)) {
|
|
461
|
-
(0, lodash_1.forEach)(branch, (b1, bName) => {
|
|
462
|
-
docBranch(ownName, bName, b1);
|
|
463
|
-
});
|
|
464
|
-
}
|
|
465
|
-
doc.appendToClass(`${ownName} = new ${(0, lodash_1.upperFirst)(ownName)}Endpoints(this.config, this);`, `${(0, lodash_1.upperFirst)(parentName)}Endpoints`, 'SoftkaveMddocEndpointsBase');
|
|
466
|
-
}
|
|
467
|
-
for (const ownName in branchMap) {
|
|
468
|
-
docBranch('fimidara', ownName, branchMap[ownName]);
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
function uniqEnpoints(endpoints) {
|
|
472
|
-
const endpointNameMap = {};
|
|
473
|
-
endpoints.forEach(e1 => {
|
|
474
|
-
const names = (0, softkave_js_utils_1.pathSplit)({ input: e1.assertGetBasePathname() });
|
|
475
|
-
const fnName = (0, lodash_1.last)(names);
|
|
476
|
-
const method = e1.assertGetMethod().toLowerCase();
|
|
477
|
-
const key = `${fnName}__${method}`;
|
|
478
|
-
endpointNameMap[key] = key;
|
|
479
|
-
});
|
|
480
|
-
return endpoints.filter(e1 => {
|
|
481
|
-
const names = (0, softkave_js_utils_1.pathSplit)({ input: e1.assertGetBasePathname() });
|
|
482
|
-
const fnName = (0, lodash_1.last)(names);
|
|
483
|
-
const method = e1.assertGetMethod().toLowerCase();
|
|
484
|
-
const ownKey = `${fnName}__${method}`;
|
|
485
|
-
const postKey = `${fnName}__post`;
|
|
486
|
-
const getKey = `${fnName}__get`;
|
|
487
|
-
if (ownKey === getKey && endpointNameMap[postKey]) {
|
|
488
|
-
return false;
|
|
489
|
-
}
|
|
490
|
-
return true;
|
|
491
|
-
});
|
|
492
|
-
}
|
|
493
|
-
async function endpointsCodeGen(params) {
|
|
494
|
-
const { endpoints, filenamePrefix, dir } = params;
|
|
495
|
-
const endpointsDir = path.normalize(dir + '/src');
|
|
496
|
-
const typesFilename = `${filenamePrefix}Types`;
|
|
497
|
-
const typesFilepath = path.normalize(endpointsDir + '/' + typesFilename + '.ts');
|
|
498
|
-
const codesFilepath = path.normalize(endpointsDir + `/${filenamePrefix}Endpoints.ts`);
|
|
499
|
-
const typesDoc = new Doc('./' + typesFilename);
|
|
500
|
-
const codesDoc = new Doc('./' + typesFilename);
|
|
501
|
-
(0, lodash_1.forEach)(endpoints, e1 => {
|
|
502
|
-
if (e1)
|
|
503
|
-
documentTypesFromEndpoint(typesDoc, e1.mddocHttpDefinition);
|
|
504
|
-
});
|
|
505
|
-
const httpEndpoints = endpoints.map(e1 => e1.mddocHttpDefinition);
|
|
506
|
-
const uniqHttpEndpoints = uniqEnpoints(httpEndpoints);
|
|
507
|
-
generateEveryEndpointCode(codesDoc, uniqHttpEndpoints);
|
|
508
|
-
fse.ensureFileSync(typesFilepath);
|
|
509
|
-
fse.ensureFileSync(codesFilepath);
|
|
510
|
-
await Promise.all([
|
|
511
|
-
fse.writeFile(typesFilepath, typesDoc.compileText(), { encoding: 'utf-8' }),
|
|
512
|
-
fse.writeFile(codesFilepath, codesDoc.compileText(), { encoding: 'utf-8' }),
|
|
513
|
-
]);
|
|
514
|
-
(0, child_process_1.execSync)(`npx --yes prettier --write "${typesFilepath}"`, { stdio: 'inherit' });
|
|
515
|
-
(0, child_process_1.execSync)(`npx --yes prettier --write "${codesFilepath}"`, { stdio: 'inherit' });
|
|
516
|
-
}
|
|
517
|
-
async function copyPackage(params) {
|
|
518
|
-
const { dir } = params;
|
|
519
|
-
const fromDir = './js-sdk-base';
|
|
520
|
-
const overwriteFiles = ['/src/mddoc'];
|
|
521
|
-
const copyOnMissingFiles = [
|
|
522
|
-
'/src/index.ts',
|
|
523
|
-
'/src/constants.ts',
|
|
524
|
-
'/.editorconfig',
|
|
525
|
-
'/.eslintignore',
|
|
526
|
-
'/.eslintrc.json',
|
|
527
|
-
'/.prettierrc.js',
|
|
528
|
-
'/jest.config.js',
|
|
529
|
-
'/package.json',
|
|
530
|
-
'/README.md',
|
|
531
|
-
'/tsconfig.json',
|
|
532
|
-
];
|
|
533
|
-
async function copyList(filepathList, overwrite) {
|
|
534
|
-
await Promise.all(filepathList.map(filepath => fse.copy(path.normalize(fromDir + filepath), path.normalize(dir + filepath), { overwrite })));
|
|
535
|
-
}
|
|
536
|
-
await Promise.all([
|
|
537
|
-
copyList(overwriteFiles, true),
|
|
538
|
-
copyList(copyOnMissingFiles, true),
|
|
539
|
-
]);
|
|
540
|
-
}
|
|
541
|
-
async function mddocJsSdkCodeGen(params) {
|
|
542
|
-
await copyPackage(params);
|
|
543
|
-
await endpointsCodeGen(params);
|
|
544
|
-
}
|
|
545
|
-
exports.mddocJsSdkCodeGen = mddocJsSdkCodeGen;
|
|
546
|
-
//# sourceMappingURL=jsSdkCodeGen.js.map
|