Socket
Socket
Sign inDemoInstall

@grpc/proto-loader

Package Overview
Dependencies
6
Maintainers
3
Versions
57
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.6.0-pre3 to 0.6.0-pre4

78

build/bin/proto-loader-gen-types.js

@@ -79,7 +79,19 @@ #!/usr/bin/env node

}
function generatePermissiveMessageInterface(formatter, messageType) {
function getChildMessagesAndEnums(namespace) {
const messageList = [];
for (const nested of namespace.nestedArray) {
if (nested instanceof Protobuf.Type || nested instanceof Protobuf.Enum) {
messageList.push(nested);
}
if (isNamespaceBase(nested)) {
messageList.push(...getChildMessagesAndEnums(nested));
}
}
return messageList;
}
function generatePermissiveMessageInterface(formatter, messageType, nameOverride) {
if (messageType.fullName === '.google.protobuf.Any') {
/* This describes the behavior of the Protobuf.js Any wrapper fromObject
* replacement function */
formatter.writeLine('export type Any__Output = AnyExtension | {');
formatter.writeLine('export type Any = AnyExtension | {');
formatter.writeLine(' type_url: string;');

@@ -90,3 +102,3 @@ formatter.writeLine(' value: Buffer | Uint8Array | string;');

}
formatter.writeLine(`export interface ${messageType.name} {`);
formatter.writeLine(`export interface ${nameOverride !== null && nameOverride !== void 0 ? nameOverride : messageType.name} {`);
formatter.indent();

@@ -136,7 +148,7 @@ for (const field of messageType.fieldsArray) {

}
formatter.writeLine(`${field.name}?: (${type})${repeatedString};`);
formatter.writeLine(`'${field.name}'?: (${type})${repeatedString};`);
}
for (const oneof of messageType.oneofsArray) {
const typeString = oneof.fieldsArray.map(field => `"${field.name}"`).join('|');
formatter.writeLine(`${oneof.name}?: ${typeString};`);
formatter.writeLine(`'${oneof.name}'?: ${typeString};`);
}

@@ -146,3 +158,3 @@ formatter.unindent();

}
function generateRestrictedMessageInterface(formatter, messageType, options) {
function generateRestrictedMessageInterface(formatter, messageType, options, nameOverride) {
if (messageType.fullName === '.google.protobuf.Any' && options.json) {

@@ -167,3 +179,3 @@ /* This describes the behavior of the Protobuf.js Any wrapper toObject

}
formatter.writeLine(`export interface ${messageType.name}__Output {`);
formatter.writeLine(`export interface ${nameOverride !== null && nameOverride !== void 0 ? nameOverride : messageType.name}__Output {`);
formatter.indent();

@@ -245,3 +257,3 @@ for (const field of messageType.fieldsArray) {

const optionalString = fieldGuaranteed ? '' : '?';
formatter.writeLine(`${field.name}${optionalString}: (${type})${repeatedString};`);
formatter.writeLine(`'${field.name}'${optionalString}: (${type})${repeatedString};`);
}

@@ -251,3 +263,3 @@ if (options.oneofs) {

const typeString = oneof.fieldsArray.map(field => `"${field.name}"`).join('|');
formatter.writeLine(`${oneof.name}: ${typeString};`);
formatter.writeLine(`'${oneof.name}': ${typeString};`);
}

@@ -261,4 +273,7 @@ }

let seenDeps = new Set();
const childTypes = getChildMessagesAndEnums(messageType);
formatter.writeLine(`// Original file: ${messageType.filename}`);
formatter.writeLine('');
for (const field of messageType.fieldsArray) {
if (field.resolvedType) {
if (field.resolvedType && childTypes.indexOf(field.resolvedType) < 0) {
const dependency = field.resolvedType;

@@ -275,2 +290,19 @@ if (seenDeps.has(dependency.fullName)) {

}
for (const childType of childTypes) {
if (childType instanceof Protobuf.Type) {
for (const field of childType.fieldsArray) {
if (field.resolvedType && childTypes.indexOf(field.resolvedType) < 0) {
const dependency = field.resolvedType;
if (seenDeps.has(dependency.fullName)) {
continue;
}
seenDeps.add(dependency.fullName);
formatter.writeLine(getImportLine(dependency, messageType));
}
if (field.type.indexOf('64') >= 0) {
usesLong = true;
}
}
}
}
if (usesLong) {

@@ -283,2 +315,14 @@ formatter.writeLine("import { Long } from '@grpc/proto-loader';");

formatter.writeLine('');
for (const childType of childTypes) {
const nameOverride = getTypeInterfaceName(childType);
if (childType instanceof Protobuf.Type) {
generatePermissiveMessageInterface(formatter, childType, nameOverride);
formatter.writeLine('');
generateRestrictedMessageInterface(formatter, childType, options, nameOverride);
}
else {
generateEnumInterface(formatter, childType, nameOverride);
}
formatter.writeLine('');
}
generatePermissiveMessageInterface(formatter, messageType);

@@ -288,4 +332,6 @@ formatter.writeLine('');

}
function generateEnumInterface(formatter, enumType) {
formatter.writeLine(`export enum ${enumType.name} {`);
function generateEnumInterface(formatter, enumType, nameOverride) {
formatter.writeLine(`// Original file: ${enumType.filename}`);
formatter.writeLine('');
formatter.writeLine(`export enum ${nameOverride !== null && nameOverride !== void 0 ? nameOverride : enumType.name} {`);
formatter.indent();

@@ -303,3 +349,3 @@ for (const key of Object.keys(enumType.values)) {

}
if (isNamespaceBase(nested)) {
else if (isNamespaceBase(nested)) {
generateMessageAndEnumImports(formatter, nested);

@@ -486,3 +532,3 @@ }

generateMessageInterfaces(fileFormatter, nested, options);
console.log(`Writing ${options.outDir}/${getPath(nested)}`);
console.log(`Writing ${options.outDir}/${getPath(nested)} from file ${nested.filename}`);
filePromises.push(writeFile(`${options.outDir}/${getPath(nested)}`, fileFormatter.getFullText()));

@@ -492,6 +538,6 @@ }

generateEnumInterface(fileFormatter, nested);
console.log(`Writing ${options.outDir}/${getPath(nested)}`);
console.log(`Writing ${options.outDir}/${getPath(nested)} from file ${nested.filename}`);
filePromises.push(writeFile(`${options.outDir}/${getPath(nested)}`, fileFormatter.getFullText()));
}
if (isNamespaceBase(nested)) {
else if (isNamespaceBase(nested)) {
filePromises.push(...generateFilesForNamespace(nested, options));

@@ -498,0 +544,0 @@ }

{
"name": "@grpc/proto-loader",
"version": "0.6.0-pre3",
"version": "0.6.0-pre4",
"author": "Google Inc.",

@@ -50,3 +50,3 @@ "contributors": [

"mkdirp": "^1.0.4",
"protobufjs": "^6.8.6",
"protobufjs": "^6.9.0",
"yargs": "^15.3.1"

@@ -53,0 +53,0 @@ },

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc