42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
// //1
|
|
// import { File } from '@asyncapi/generator-react-sdk'
|
|
// //2
|
|
// export default function ({ asyncapi }) {
|
|
// //3
|
|
// return <File name="client.py">{asyncapi.info().title()}</File>
|
|
// }
|
|
|
|
|
|
|
|
import { File } from '@asyncapi/generator-react-sdk';
|
|
import { PythonGenerator, FormatHelpers } from '@asyncapi/modelina';
|
|
|
|
export default async function ({ asyncapi, params }) {
|
|
const channels = Object.keys(asyncapi.components());
|
|
|
|
let content = ''
|
|
for (const channel of channels) {
|
|
content += `# channel: ${channel}\n`
|
|
}
|
|
const pythonGenerator = new PythonGenerator();
|
|
const models = await pythonGenerator.generate(asyncapi);
|
|
const files = [];
|
|
for (const model of models) {
|
|
const modelFileName = `${FormatHelpers.toPascalCase(model.modelName)}.py`;
|
|
files.push(modelFileName);
|
|
}
|
|
|
|
return (
|
|
<File name="client2.py"># {asyncapi.info().title()}
|
|
{`\n`}
|
|
# {asyncapi.info().description()}
|
|
{`\n`}
|
|
# {channels.map((ch) => `# channel: ${ch}\n`)}
|
|
# {content}
|
|
# {'=========='}
|
|
# {files}
|
|
# {'=========='}
|
|
</File>
|
|
)
|
|
}
|