Socket
Socket
Sign inDemoInstall

ts-proto

Package Overview
Dependencies
Maintainers
1
Versions
352
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ts-proto - npm Package Compare versions

Comparing version 1.172.0 to 1.173.0

1

build/options.d.ts

@@ -38,2 +38,3 @@ import { ToStringOpts } from "ts-poet/build/Code";

forceLong: LongOption;
useJsTypeOverride: boolean;
globalThisPolyfill: boolean;

@@ -40,0 +41,0 @@ useOptionals: boolean | "none" | "deprecatedOnly" | "messages" | "all";

@@ -49,2 +49,3 @@ "use strict";

forceLong: LongOption.NUMBER,
useJsTypeOverride: false,
useOptionals: "none",

@@ -51,0 +52,0 @@ useDate: DateOption.DATE,

@@ -15,2 +15,3 @@ import { CodeGeneratorRequest, DescriptorProto, EnumDescriptorProto, FieldDescriptorProto, FieldDescriptorProto_Type, FileDescriptorProto, MessageOptions, MethodDescriptorProto, ServiceDescriptorProto } from "ts-proto-descriptors";

export declare function packedType(type: FieldDescriptorProto_Type): number | undefined;
export declare function getFieldOptionsJsType(field: FieldDescriptorProto, options: Options): FieldDescriptorProto_Type | undefined;
export declare function defaultValue(ctx: Context, field: FieldDescriptorProto): any;

@@ -105,1 +106,2 @@ /** Creates code that checks that the field is not the default value. Supports scalars and enums. */

export declare function detectBatchMethod(ctx: Context, fileDesc: FileDescriptorProto, serviceDesc: ServiceDescriptorProto, methodDesc: MethodDescriptorProto): BatchMethod | undefined;
export declare function isJsTypeFieldOption(options: Options, field: FieldDescriptorProto): boolean;

89

build/types.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.detectBatchMethod = exports.responsePromiseOrObservable = exports.responseObservable = exports.responsePromise = exports.responseType = exports.requestType = exports.observableType = exports.rawRequestType = exports.detectMapType = exports.shouldGenerateJSMapType = exports.toTypeName = exports.getEnumMethod = exports.messageToTypeName = exports.wrapperTypeName = exports.valueTypeName = exports.isEmptyType = exports.isLongValueType = exports.isStructTypeName = exports.isStructType = exports.isListValueTypeName = exports.isListValueType = exports.isFieldMaskTypeName = exports.isFieldMaskType = exports.isBytesValueType = exports.isAnyValueTypeName = exports.isAnyValueType = exports.isValueType = exports.isTimestamp = exports.isObjectId = exports.isMapType = exports.isWholeNumber = exports.isLong = exports.isRepeated = exports.isWithinOneOfThatShouldBeUnion = exports.isWithinOneOf = exports.isEnum = exports.isMessage = exports.isBytes = exports.isPrimitive = exports.isOptionalProperty = exports.isScalar = exports.createTypeMap = exports.notDefaultCheck = exports.defaultValue = exports.packedType = exports.toReaderCall = exports.basicTypeName = exports.basicLongWireType = exports.basicWireType = void 0;
exports.detectBatchMethod = exports.responsePromiseOrObservable = exports.responseObservable = exports.responsePromise = exports.responseType = exports.requestType = exports.observableType = exports.rawRequestType = exports.detectMapType = exports.shouldGenerateJSMapType = exports.toTypeName = exports.getEnumMethod = exports.messageToTypeName = exports.wrapperTypeName = exports.valueTypeName = exports.isEmptyType = exports.isLongValueType = exports.isStructTypeName = exports.isStructType = exports.isListValueTypeName = exports.isListValueType = exports.isFieldMaskTypeName = exports.isFieldMaskType = exports.isBytesValueType = exports.isAnyValueTypeName = exports.isAnyValueType = exports.isValueType = exports.isTimestamp = exports.isObjectId = exports.isMapType = exports.isWholeNumber = exports.isLong = exports.isRepeated = exports.isWithinOneOfThatShouldBeUnion = exports.isWithinOneOf = exports.isEnum = exports.isMessage = exports.isBytes = exports.isPrimitive = exports.isOptionalProperty = exports.isScalar = exports.createTypeMap = exports.notDefaultCheck = exports.defaultValue = exports.getFieldOptionsJsType = exports.packedType = exports.toReaderCall = exports.basicTypeName = exports.basicLongWireType = exports.basicWireType = void 0;
exports.isJsTypeFieldOption = void 0;
const ts_proto_descriptors_1 = require("ts-proto-descriptors");

@@ -63,4 +64,6 @@ const ts_poet_1 = require("ts-poet");

function basicTypeName(ctx, field, typeOptions = {}) {
var _a, _b;
const { options } = ctx;
switch (field.type) {
const fieldType = (_a = getFieldOptionsJsType(field, ctx.options)) !== null && _a !== void 0 ? _a : field.type;
switch (fieldType) {
case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_DOUBLE:

@@ -79,4 +82,6 @@ case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_FLOAT:

case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_SFIXED64:
// this handles 2^53, Long is only needed for 2^64; this is effectively pbjs's forceNumber
return longTypeName(ctx);
return isJsTypeFieldOption(options, field)
? (_b = jsTypeName(field)) !== null && _b !== void 0 ? _b : longTypeName(ctx)
: // this handles 2^53, Long is only needed for 2^64; this is effectively pbjs's forceNumber
longTypeName(ctx);
case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_BOOL:

@@ -169,6 +174,24 @@ return (0, ts_poet_1.code) `boolean`;

exports.packedType = packedType;
function getFieldOptionsJsType(field, options) {
var _a;
if (!options.useJsTypeOverride || ((_a = field.options) === null || _a === void 0 ? void 0 : _a.jstype) === undefined) {
return;
}
switch (field.options.jstype) {
case ts_proto_descriptors_1.FieldOptions_JSType.JS_STRING:
return ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_STRING;
case ts_proto_descriptors_1.FieldOptions_JSType.JS_NUMBER:
return ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_INT64;
// In the case of JS_NORMAL, we don't want to override the type, so we return
case ts_proto_descriptors_1.FieldOptions_JSType.JS_NORMAL:
// In the case of UNRECOGNIZED, we assume default behavior and we don't want to override the type, so we return
case ts_proto_descriptors_1.FieldOptions_JSType.UNRECOGNIZED:
return;
}
}
exports.getFieldOptionsJsType = getFieldOptionsJsType;
function defaultValue(ctx, field) {
const { typeMap, options, utils, currentFile } = ctx;
const useDefaultValue = !currentFile.isProto3Syntax && !options.disableProto2DefaultValues && field.defaultValue;
const numbericDefaultVal = useDefaultValue ? field.defaultValue : 0;
const numericDefaultVal = useDefaultValue ? field.defaultValue : 0;
switch (field.type) {

@@ -182,3 +205,3 @@ case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_DOUBLE:

case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_SFIXED32:
return numbericDefaultVal;
return numericDefaultVal;
case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_ENUM:

@@ -200,30 +223,29 @@ // proto3 enforces enums starting at 0, however proto2 does not, so we have

}
case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_INT64:
case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_UINT64:
case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_FIXED64:
if (options.forceLong === options_1.LongOption.LONG) {
return (0, ts_poet_1.code) `${utils.Long}.${useDefaultValue ? "fromNumber" : "UZERO"}${useDefaultValue ? `(${numbericDefaultVal})` : ""}`;
}
else if (options.forceLong === options_1.LongOption.STRING) {
return `"${numbericDefaultVal}"`;
}
else if (options.forceLong === options_1.LongOption.BIGINT) {
return `BigInt("${numbericDefaultVal}")`;
}
else {
return numbericDefaultVal;
}
case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_INT64:
case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_SINT64:
case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_SFIXED64:
if (isJsTypeFieldOption(options, field)) {
switch (field.options.jstype) {
case ts_proto_descriptors_1.FieldOptions_JSType.JS_STRING:
return `"${numericDefaultVal}"`;
case ts_proto_descriptors_1.FieldOptions_JSType.JS_NUMBER:
return numericDefaultVal;
}
}
if (options.forceLong === options_1.LongOption.LONG) {
return (0, ts_poet_1.code) `${utils.Long}.${useDefaultValue ? "fromNumber" : "ZERO"}${useDefaultValue ? `(${numbericDefaultVal})` : ""}`;
const value = field.type === ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_UINT64 || field.type === ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_FIXED64
? "UZERO"
: "ZERO";
return (0, ts_poet_1.code) `${utils.Long}.${useDefaultValue ? "fromNumber" : value}${useDefaultValue ? `(${numericDefaultVal})` : ""}`;
}
else if (options.forceLong === options_1.LongOption.STRING) {
return `"${numbericDefaultVal}"`;
return `"${numericDefaultVal}"`;
}
else if (options.forceLong === options_1.LongOption.BIGINT) {
return `BigInt("${numbericDefaultVal}")`;
return `BigInt("${numericDefaultVal}")`;
}
else {
return numbericDefaultVal;
return numericDefaultVal;
}

@@ -286,3 +308,3 @@ case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_BOOL:

case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_SFIXED64:
if (options.forceLong === options_1.LongOption.LONG) {
if (options.forceLong === options_1.LongOption.LONG && !isJsTypeFieldOption(options, field)) {
return (0, ts_poet_1.code) `${maybeNotUndefinedAnd} !${place}.equals(${defaultValue(ctx, field)})`;

@@ -550,2 +572,11 @@ }

}
function jsTypeName(field) {
var _a, _b;
if (((_a = field.options) === null || _a === void 0 ? void 0 : _a.jstype) === ts_proto_descriptors_1.FieldOptions_JSType.JS_STRING) {
return (0, ts_poet_1.code) `string`;
}
else if (((_b = field.options) === null || _b === void 0 ? void 0 : _b.jstype) === ts_proto_descriptors_1.FieldOptions_JSType.JS_NUMBER) {
return (0, ts_poet_1.code) `number`;
}
}
/** Maps `.some_proto_namespace.Message` to a TypeName. */

@@ -594,2 +625,3 @@ function messageToTypeName(ctx, protoType, typeOptions = {}) {

function toTypeName(ctx, messageDesc, field, ensureOptional = false) {
var _a;
function finalize(type, isOptional) {

@@ -601,3 +633,4 @@ if (isOptional) {

}
let type = basicTypeName(ctx, field, { keepValueType: false });
const fieldType = (_a = getFieldOptionsJsType(field, ctx.options)) !== null && _a !== void 0 ? _a : field.type;
const type = basicTypeName(ctx, { ...field, type: fieldType }, { keepValueType: false });
if (isRepeated(field)) {

@@ -768,1 +801,7 @@ const mapType = messageDesc ? detectMapType(ctx, messageDesc, field) : false;

}
function isJsTypeFieldOption(options, field) {
var _a, _b;
return (options.useJsTypeOverride &&
(((_a = field.options) === null || _a === void 0 ? void 0 : _a.jstype) === ts_proto_descriptors_1.FieldOptions_JSType.JS_NUMBER || ((_b = field.options) === null || _b === void 0 ? void 0 : _b.jstype) === ts_proto_descriptors_1.FieldOptions_JSType.JS_STRING));
}
exports.isJsTypeFieldOption = isJsTypeFieldOption;
{
"name": "ts-proto",
"version": "1.172.0",
"version": "1.173.0",
"description": "",

@@ -65,3 +65,3 @@ "main": "build/plugin.js",

"ts-jest": "^29.1.1",
"tsx": "^3.12.7",
"tsx": "^3.14.0",
"typescript": "^5.1.6",

@@ -68,0 +68,0 @@ "uglify-js": "^3.17.4"

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc