MCPcopy Create free account
hub / github.com/mikro-orm/mikro-orm / generate

Method generate

packages/seeder/src/SeedManager.ts:148–175  ·  view source on GitHub ↗
(
    fs: { writeFile(path: string, data: string, options?: Record<string, any>): Promise<void> },
    className: string,
  )

Source from the content-addressed store, hash-verified

146 }
147
148 private async generate(
149 fs: { writeFile(path: string, data: string, options?: Record<string, any>): Promise<void> },
150 className: string,
151 ): Promise<string> {
152 const fileName = `${this.#options.fileName!(className)}.${this.#options.emit}`;
153 const filePath = `${this.#absolutePath}/${fileName}`;
154 let ret = '';
155
156 if (this.#options.emit === 'ts') {
157 ret += `import type { EntityManager } from '@mikro-orm/core';\n`;
158 ret += `import { Seeder } from '@mikro-orm/seeder';\n\n`;
159 ret += `export class ${className} extends Seeder {\n\n`;
160 ret += ` async run(em: EntityManager): Promise<void> {}\n\n`;
161 ret += `}\n`;
162 } else {
163 ret += `'use strict';\n`;
164 ret += `Object.defineProperty(exports, '__esModule', { value: true });\n`;
165 ret += `const { Seeder } = require('@mikro-orm/seeder');\n\n`;
166 ret += `class ${className} extends Seeder {\n\n`;
167 ret += ` async run(em: EntityManager): Promise<void> {}\n\n`;
168 ret += `}\n`;
169 ret += `exports.${className} = ${className};\n`;
170 }
171
172 await fs.writeFile(filePath, ret, { flush: true });
173
174 return filePath;
175 }
176}

Callers 1

createMethod · 0.95

Calls 1

writeFileMethod · 0.80

Tested by

no test coverage detected