MCPcopy
hub / github.com/alibaba/pont / generateCode

Method generateCode

packages/pont-engine/src/main/Manager.ts:127–172  ·  view source on GitHub ↗
(oldFiles?: any)

Source from the content-addressed store, hash-verified

125 }
126
127 async generateCode(oldFiles?: any) {
128 if (!this.currentOriginManage) {
129 await this.changeOrigin();
130 }
131
132 await this.currentOriginManage.setCodeGeneratorDataSource();
133 const codeGenerator = this.currentOriginManage.getCodeGenerator();
134
135 if (!codeGenerator.dataSource) {
136 return;
137 }
138
139 let generators = this.filesManager.fileStructures.generators;
140 if (generators.length !== this.originManages.length) {
141 generators = await Promise.all(
142 this.originManages.map(async (item) => {
143 await item.setCodeGeneratorDataSource();
144 return item.getCodeGenerator();
145 })
146 );
147 }
148
149 const index = generators.findIndex((item) => item.dataSource?.name === codeGenerator.dataSource.name);
150
151 if (index === -1) {
152 this.log('没有找到对应的 generators');
153 return;
154 }
155
156 generators[index] = codeGenerator;
157
158 generators = generators.filter((item) => {
159 return item.dataSource.mods.length > 0 || item.dataSource.baseClasses.length > 0;
160 });
161
162 if (generators.length === 0) {
163 this.error('dataSource 为空数据,停止生成代码');
164 return;
165 }
166
167 this.filesManager.fileStructures.generators = generators;
168
169 this.log('开始生成代码');
170 await this.filesManager.generateCode(oldFiles);
171 this.log('开始生成代码完成');
172 }
173
174 async updateRemoteDataSourceAndGenerateCode() {
175 await this.updateRemoteDataSource();

Callers 5

regenerateMethod · 0.45
updateModMethod · 0.45
updateBoMethod · 0.45
generateAllCodeMethod · 0.45

Calls 5

changeOriginMethod · 0.95
logMethod · 0.95
errorMethod · 0.95
getCodeGeneratorMethod · 0.80

Tested by

no test coverage detected