UNPKG

protoc-gen-tsd

Version:

Protocol Buffers Compiler(protoc) plugin for TypeScript - Generate definition file(d.ts)

80 lines (79 loc) 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getFieldType = exports.getJsTypeName = exports.getTypeName = exports.JS_NUMBER = exports.JS_STRING = exports.JS_NORMAL = exports.ENUM_TYPE = exports.BYTES_TYPE = exports.MESSAGE_TYPE = void 0; const util_1 = require("../util"); exports.MESSAGE_TYPE = 11; exports.BYTES_TYPE = 12; exports.ENUM_TYPE = 14; exports.JS_NORMAL = 0; exports.JS_STRING = 1; exports.JS_NUMBER = 2; const TypeNumToTypeString = {}; TypeNumToTypeString[1] = 'number'; TypeNumToTypeString[2] = 'number'; TypeNumToTypeString[3] = 'number'; TypeNumToTypeString[4] = 'number'; TypeNumToTypeString[5] = 'number'; TypeNumToTypeString[6] = 'number'; TypeNumToTypeString[7] = 'number'; TypeNumToTypeString[8] = 'boolean'; TypeNumToTypeString[9] = 'string'; TypeNumToTypeString[10] = 'Object'; TypeNumToTypeString[exports.MESSAGE_TYPE] = 'Object'; TypeNumToTypeString[exports.BYTES_TYPE] = 'Uint8Array'; TypeNumToTypeString[13] = 'number'; TypeNumToTypeString[exports.ENUM_TYPE] = 'number'; TypeNumToTypeString[15] = 'number'; TypeNumToTypeString[16] = 'number'; TypeNumToTypeString[17] = 'number'; TypeNumToTypeString[18] = 'number'; const JsTypeNumToTypeString = {}; JsTypeNumToTypeString[exports.JS_NORMAL] = null; JsTypeNumToTypeString[exports.JS_STRING] = 'string'; JsTypeNumToTypeString[exports.JS_NUMBER] = 'number'; function getTypeName(fieldTypeNum) { return TypeNumToTypeString[fieldTypeNum]; } exports.getTypeName = getTypeName; function getJsTypeName(fieldTypeNum) { return fieldTypeNum === exports.JS_NORMAL ? null : JsTypeNumToTypeString[fieldTypeNum]; } exports.getJsTypeName = getJsTypeName; function getFieldType(type, typeName, currentFileName, protoAbstractSyntaxTreeMap) { let fieldType; let fromExport; let withinNamespace; switch (type) { case exports.MESSAGE_TYPE: fromExport = protoAbstractSyntaxTreeMap.getMessage(typeName); if (!fromExport) { throw new Error('Could not getFieldType for message: ' + typeName); } withinNamespace = util_1.withinNamespaceFromExportEntry(typeName, fromExport); if (fromExport.protoFileName === currentFileName) { fieldType = withinNamespace; } else { fieldType = util_1.filePathToPseudoNamespace(fromExport.protoFileName) + '.' + withinNamespace; } break; case exports.ENUM_TYPE: fromExport = protoAbstractSyntaxTreeMap.getEnum(typeName); if (!fromExport) { throw new Error('Could not getFieldType for enum: ' + typeName); } withinNamespace = util_1.withinNamespaceFromExportEntry(typeName, fromExport); if (fromExport.protoFileName === currentFileName) { fieldType = withinNamespace; } else { fieldType = util_1.filePathToPseudoNamespace(fromExport.protoFileName) + '.' + withinNamespace; } break; default: fieldType = TypeNumToTypeString[type]; break; } return fieldType; } exports.getFieldType = getFieldType;