mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-01 05:30:40 +00:00
31 lines
938 B
TypeScript
31 lines
938 B
TypeScript
import * as os from 'os';
|
|
import * as path from 'path';
|
|
import * as fs from 'fs';
|
|
import { Injectable } from '@nestjs/common';
|
|
import CodeGenerator from '@ali/lowcode-code-generator';
|
|
import { createZipPublisher } from '../publisher';
|
|
|
|
@Injectable()
|
|
export class ApiService {
|
|
async generateProject(schema: string) {
|
|
const tmpDir = os.tmpdir();
|
|
const createIceJsProjectBuilder = CodeGenerator.solutions.icejs;
|
|
const builder = createIceJsProjectBuilder();
|
|
const publisher = createZipPublisher({
|
|
outputPath: tmpDir,
|
|
projectSlug: 'demo-project',
|
|
});
|
|
const filePath = path.join(tmpDir, 'demo-project.zip');
|
|
|
|
const result = await builder.generateProject(schema);
|
|
publisher.setProject(result);
|
|
const response = await publisher.publish();
|
|
if (!response.success) {
|
|
throw new Error('generateProject failed');
|
|
}
|
|
return fs.createReadStream(filePath);
|
|
|
|
// return filePath;
|
|
}
|
|
}
|