protoc-gen-tsd
Version:
Protocol Buffers Compiler(protoc) plugin for TypeScript - Generate definition file(d.ts)
80 lines (79 loc) • 3.21 kB
JavaScript
;
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;