Skip to content

Commit

Permalink
fix: don't generate transitively imported files for mapped imports
Browse files Browse the repository at this point in the history
  • Loading branch information
marcushultman committed Jun 23, 2023
1 parent 07830bd commit c49e666
Showing 1 changed file with 25 additions and 8 deletions.
33 changes: 25 additions & 8 deletions src/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,33 @@ async function main() {
const typeMap = createTypeMap(request, options);
const utils = makeUtils(options);
const ctx: Context = { typeMap, options, utils };
let filesToGenerate;

if (options.emitImportedFiles) {
const fileSet = new Set();
const addFilesUnlessAliased = (filenames: string[]) => {
filenames
.filter((name) => !options.M[name])
.forEach((name) => {
fileSet.add(name);
const file = request.protoFile.find((file) => file.name === name);
if (file && file.dependency.length > 0) {
addFilesUnlessAliased(file.dependency);
}
});
};
addFilesUnlessAliased(request.fileToGenerate);
filesToGenerate = request.protoFile.filter((file) => fileSet.has(file.name));
} else {
filesToGenerate = protoFilesToGenerate(request).filter((file) => !options.M[file.name]);
}

const filesToGenerate = options.emitImportedFiles ? request.protoFile : protoFilesToGenerate(request);
const files = await Promise.all(
filesToGenerate
.filter((file) => !options.M[file.name])
.map(async (file) => {
const [path, code] = generateFile(ctx, file);
const content = code.toString({ ...getTsPoetOpts(options), path });
return { name: path, content };
})
filesToGenerate.map(async (file) => {
const [path, code] = generateFile(ctx, file);
const content = code.toString({ ...getTsPoetOpts(options), path });
return { name: path, content };
})
);

if (options.outputTypeRegistry) {
Expand Down

0 comments on commit c49e666

Please sign in to comment.