@bitloops/bl-transpiler
Version:
The one and only Bitloops Language transpiler
118 lines • 8.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SETUP_END_TO_END_TEST_CASES = void 0;
const file_js_1 = require("../../../../src/utils/file.js");
const codeFormatting_js_1 = require("../../../../src/target/typescript-nest/core/codeFormatting.js");
const setupFilePaths = {
'di-constants.mock.ts': {
fileId: 'lib/bounded-contexts/demo/hello-world/constants.ts',
fileType: 'DI.Tokens',
formatterParser: 'typescript',
},
'domainError.mock.ts': {
fileId: 'lib/bounded-contexts/demo/hello-world/domain/errors/index.ts',
fileType: 'DomainError',
formatterParser: 'typescript',
},
'applicationError.mock.ts': {
fileId: 'lib/bounded-contexts/demo/hello-world/application/errors/index.ts',
fileType: 'ApplicationError',
formatterParser: 'typescript',
},
'domainRule.mock.ts': {
fileId: 'lib/bounded-contexts/demo/hello-world/domain/rules/index.ts',
fileType: 'DomainRule',
formatterParser: 'typescript',
},
'index.command-handlers.mock.ts': {
fileId: 'lib/bounded-contexts/demo/hello-world/application/command-handlers/index.ts',
fileType: 'index.ts',
formatterParser: 'typescript',
},
'index.query-handlers.mock.ts': {
fileId: 'lib/bounded-contexts/demo/hello-world/application/query-handlers/index.ts',
fileType: 'index.ts',
formatterParser: 'typescript',
},
'index.domain-event-handlers.mock.ts': {
fileId: 'lib/bounded-contexts/demo/hello-world/application/event-handlers/domain/index.ts',
fileType: 'index.ts',
formatterParser: 'typescript',
},
'index.integration-event-handlers.mock.ts': {
fileId: 'lib/bounded-contexts/demo/hello-world/application/event-handlers/integration/index.ts',
fileType: 'index.ts',
formatterParser: 'typescript',
},
'nest.module.mock.ts': {
fileId: 'lib/bounded-contexts/demo/hello-world/hello-world.module.ts',
fileType: 'nest.module.ts',
formatterParser: 'typescript',
},
};
const getExpectedSetupOutputs = (setupFilePaths) => {
const basePath = 'transpiler/__tests__/end-to-end/mocks/setup/outputs/';
const expectedOutput = [];
for (const [mockFileName, { fileId, fileType, formatterParser }] of Object.entries(setupFilePaths)) {
const fileContent = file_js_1.FileUtil.readFileString(basePath + mockFileName);
const formatterConfig = { semi: true, parser: formatterParser, singleQuote: true };
expectedOutput.push({
fileId,
fileType,
fileContent: (0, codeFormatting_js_1.formatString)(fileContent, formatterConfig),
});
}
return expectedOutput;
};
exports.SETUP_END_TO_END_TEST_CASES = [
{
description: '',
inputSetup: [
{
fileId: 'setup.bl',
fileContents: file_js_1.FileUtil.readFileString('transpiler/__tests__/end-to-end/mocks/setup/setup.bl'),
},
],
inputCore: [
{
boundedContext: 'Demo',
module: 'Hello World',
fileId: 'useCases.bl',
fileContents: file_js_1.FileUtil.readFileString('transpiler/__tests__/end-to-end/mocks/setup/core/useCases.bl'),
},
{
boundedContext: 'Demo',
module: 'Hello World',
fileId: 'repoPorts.bl',
fileContents: file_js_1.FileUtil.readFileString('transpiler/__tests__/end-to-end/mocks/setup/core/repoPorts.bl'),
},
{
boundedContext: 'Demo',
module: 'Hello World',
fileId: 'domain.bl',
fileContents: file_js_1.FileUtil.readFileString('transpiler/__tests__/end-to-end/mocks/setup/core/domain.bl'),
},
{
boundedContext: 'Demo',
module: 'Hello World',
fileId: 'commandHandlers.bl',
fileContents: file_js_1.FileUtil.readFileString('transpiler/__tests__/end-to-end/mocks/setup/core/commandHandlers.bl'),
},
// {
// boundedContext: 'Demo',
// module: 'Hello World',
// fileId: 'packagePort.bl',
// fileContents: FileUtil.readFileString(
// 'transpiler/__tests__/end-to-end/mocks/setup/core/packagePort.bl',
// ),
// },
],
expectedOutputs: getExpectedSetupOutputs(setupFilePaths),
},
];
// TODO add graphql tests cases
// Examples:
// | {"servers":[{"type":"graphql","name":"server","port":"4002"}],"resolvers":[{"boundedContext":"bx","module":"mod","operationType":"query","operationName":"hello","controller":"helloWorldController","input":"HelloWorldRequestDTO","output":"HelloWorldResponseDTO"},{"boundedContext":"bx","module":"mod","operationType":"mutation","operationName":"saveHello","controller":"saveHelloController","input":"SaveHelloRequestDTO","output":"HelloWorldResponseDTO"}],"addResolversToServer":[{"serverName":"server","resolver":{"boundedContext":"bx","module":"mod","name":"hello"}},{"serverName":"server","resolver":{"boundedContext":"bx","module":"mod","name":"saveHello"}}],"bitloopsModel":{"bx":{"mod":{"DTOs":{"HelloWorldRequestDTO":{"fields":[{"name":"name","type":"string","optional":false}]},"HelloWorldResponseDTO":{"fields":[{"name":"message","type":"string","optional":false}]},"SaveHelloRequestDTO":{"fields":[{"name":"helloToBeSaved","type":"string","optional":false}]}}}}}} | const serverTypeDefs = GraphQL.gql`input HelloWorldRequest {name: String!}input SaveHelloRequest {helloToBeSaved: String!}type HelloWorldResponse {message: String!}type Query {hello(input: HelloWorldRequest): HelloWorldResponse}type Mutation {saveHello(input: SaveHelloRequest): HelloWorldResponse}`;const serverResolvers = { Query: {hello: async(_parent: any, args: any, context: any): Promise<any> => { const result = await helloWorldController.execute({ args: args.input, context }); return result; }, }, Mutation: {saveHello: async(_parent: any, args: any, context: any): Promise<any> => { const result = await saveHelloController.execute({ args: args.input, context }); return result; }, },};const server = new GraphQL.ApolloServer({ typeDefs: serverTypeDefs, resolvers: serverResolvers }); server.listen({ port: 4002 }); |
// With 2 servers
// | {"servers":[{"type":"graphql","name":"server","port":"4002"},{"type":"graphql","name":"secondServer","port":"4003"}],"resolvers":[{"boundedContext":"bx","module":"mod","operationType":"query","operationName":"hello","controller":"helloWorldController","input":"HelloWorldRequestDTO","output":"HelloWorldResponseDTO"},{"boundedContext":"bx","module":"mod","operationType":"mutation","operationName":"saveHello","controller":"saveHelloController","input":"SaveHelloRequestDTO","output":"HelloWorldResponseDTO"}],"addResolversToServer":[{"serverName":"server","resolver":{"boundedContext":"bx","module":"mod","name":"hello"}},{"serverName":"secondServer","resolver":{"boundedContext":"bx","module":"mod","name":"saveHello"}}],"bitloopsModel":{"bx":{"mod":{"DTOs":{"HelloWorldRequestDTO":{"fields":[{"name":"name","type":"string","optional":false}]},"HelloWorldResponseDTO":{"fields":[{"name":"message","type":"string","optional":false}]},"SaveHelloRequestDTO":{"fields":[{"name":"helloToBeSaved","type":"string","optional":false}]}}}}}} | const serverTypeDefs = GraphQL.gql`input HelloWorldRequest {name: String!}type HelloWorldResponse {message: String!}type Query {hello(input: HelloWorldRequest): HelloWorldResponse}`;const serverResolvers = { Query: {hello: async(_parent: any, args: any, context: any): Promise<any> => { const result = await helloWorldController.execute({ args: args.input, context }); return result; }, },};const server = new GraphQL.ApolloServer({ typeDefs: serverTypeDefs, resolvers: serverResolvers }); server.listen({ port: 4002 });const secondServerTypeDefs = GraphQL.gql`input SaveHelloRequest {helloToBeSaved: String!}type HelloWorldResponse {message: String!}type Query { empty: String }type Mutation {saveHello(input: SaveHelloRequest): HelloWorldResponse}`;const secondServerResolvers = { Mutation: {saveHello: async(_parent: any, args: any, context: any): Promise<any> => { const result = await saveHelloController.execute({ args: args.input, context }); return result; }, },};const secondServer = new GraphQL.ApolloServer({ typeDefs: secondServerTypeDefs, resolvers: secondServerResolvers }); server.listen({ port: 4003 }); |
//# sourceMappingURL=setup.js.map