@accility/protoc-swagger-plugin
Version:
Convert .proto files to OpenAPI v2 (swagger) files.
20 lines (17 loc) • 812 B
text/typescript
import { ProtocOptions, protoc, OutputOptions, createGeneratorOptions, GeneratorOptions} from '@accility/protoc-tools';
import * as apis from 'google-proto-files';
import { resolve } from 'path';
const extension = process.platform === 'win32' ? '.exe' : '';
export function fromProto(options: ProtocOptions) : Promise<void> {
options.includeDirs.push(resolve(apis.getProtoPath(), '..'));
options.outOptions = [createSwaggerOptions()];
return protoc(options);
}
export function createSwaggerOptions({outPath = undefined, outOptions = undefined}: GeneratorOptions = {}): OutputOptions {
return {
name: 'swagger',
pluginPath: resolve(__dirname, '../../native/bin', process.platform, process.arch, 'protoc-gen-swagger' + extension),
outPath,
outOptions
}
};