in src/package.ts [1501:1528]
export function processFiles(processors: IProcessor[], files: IFile[]): Promise<IFile[]> {
const processedFiles = files.map(file => util.chain(file, processors, (file, processor) => processor.onFile(file)));
return Promise.all(processedFiles).then(files => {
return util.sequence(processors.map(p => () => p.onEnd())).then(() => {
const assets = processors.reduce<IAsset[]>((r, p) => [...r, ...p.assets], []);
const tags = [
...processors.reduce<Set<string>>((r, p) => {
for (const tag of p.tags) {
if (tag) {
r.add(tag);
}
}
return r;
}, new Set()),
].join(',');
const vsix = processors.reduce<VSIX>((r, p) => ({ ...r, ...p.vsix }), { assets, tags } as VSIX);
return Promise.all([toVsixManifest(vsix), toContentTypes(files)]).then(result => {
return [
{ path: 'extension.vsixmanifest', contents: Buffer.from(result[0], 'utf8') },
{ path: '[Content_Types].xml', contents: Buffer.from(result[1], 'utf8') },
...files,
];
});
});
});
}