Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support noUncheckedIndexedAccess tsconfig option #161

Closed
1,435 changes: 669 additions & 766 deletions src/compiler/descriptor.ts

Large diffs are not rendered by default.

187 changes: 90 additions & 97 deletions src/compiler/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,7 @@ export class Version extends pb_1.Message {
get has_suffix() {
return pb_1.Message.getField(this, 4) != null;
}
static fromObject(data: {
major?: number;
minor?: number;
patch?: number;
suffix?: string;
}): Version {
static fromObject(data: Version.AsObjectPartial): Version {
const message = new Version({});
if (data.major != null) {
message.major = data.major;
Expand All @@ -88,24 +83,12 @@ export class Version extends pb_1.Message {
return message;
}
toObject() {
const data: {
major?: number;
minor?: number;
patch?: number;
suffix?: string;
} = {};
if (this.major != null) {
data.major = this.major;
}
if (this.minor != null) {
data.minor = this.minor;
}
if (this.patch != null) {
data.patch = this.patch;
}
if (this.suffix != null) {
data.suffix = this.suffix;
}
const data: Version.AsObject = {
major: this.major,
minor: this.minor,
patch: this.patch,
suffix: this.suffix
};
return data;
}
serialize(): Uint8Array;
Expand All @@ -118,7 +101,7 @@ export class Version extends pb_1.Message {
writer.writeInt32(2, this.minor);
if (this.has_patch)
writer.writeInt32(3, this.patch);
if (this.has_suffix && this.suffix.length)
if (this.has_suffix && this.suffix!.length)
writer.writeString(4, this.suffix);
if (!w)
return writer.getResultBuffer();
Expand Down Expand Up @@ -153,6 +136,20 @@ export class Version extends pb_1.Message {
return Version.deserialize(bytes);
}
}
export namespace Version {
export type AsObject = {
major: number;
minor: number;
patch: number;
suffix: string;
};
export type AsObjectPartial = {
major?: number;
minor?: number;
patch?: number;
suffix?: string;
};
}
export class CodeGeneratorRequest extends pb_1.Message {
#one_of_decls: number[][] = [];
constructor(data?: any[] | {
Expand Down Expand Up @@ -196,20 +193,15 @@ export class CodeGeneratorRequest extends pb_1.Message {
pb_1.Message.setRepeatedWrapperField(this, 15, value);
}
get compiler_version() {
return pb_1.Message.getWrapperField(this, Version, 3) as Version;
return pb_1.Message.getWrapperField(this, Version, 3) as Version | undefined;
}
set compiler_version(value: Version) {
set compiler_version(value: Version | undefined) {
pb_1.Message.setWrapperField(this, 3, value);
}
get has_compiler_version() {
return pb_1.Message.getField(this, 3) != null;
}
static fromObject(data: {
file_to_generate: string[];
parameter?: string;
proto_file?: ReturnType<typeof dependency_1.FileDescriptorProto.prototype.toObject>[];
compiler_version?: ReturnType<typeof Version.prototype.toObject>;
}): CodeGeneratorRequest {
static fromObject(data: CodeGeneratorRequest.AsObjectPartial): CodeGeneratorRequest {
const message = new CodeGeneratorRequest({
file_to_generate: data.file_to_generate,
proto_file: data.proto_file.map(item => dependency_1.FileDescriptorProto.fromObject(item))
Expand All @@ -223,20 +215,11 @@ export class CodeGeneratorRequest extends pb_1.Message {
return message;
}
toObject() {
const data: {
file_to_generate: string[];
parameter?: string;
proto_file?: ReturnType<typeof dependency_1.FileDescriptorProto.prototype.toObject>[];
compiler_version?: ReturnType<typeof Version.prototype.toObject>;
} = {
file_to_generate: this.file_to_generate
const data: CodeGeneratorRequest.AsObject = {
file_to_generate: this.file_to_generate,
parameter: this.parameter,
proto_file: this.proto_file.map((item: dependency_1.FileDescriptorProto) => item.toObject())
};
if (this.parameter != null) {
data.parameter = this.parameter;
}
if (this.proto_file != null) {
data.proto_file = this.proto_file.map((item: dependency_1.FileDescriptorProto) => item.toObject());
}
if (this.compiler_version != null) {
data.compiler_version = this.compiler_version.toObject();
}
Expand All @@ -248,12 +231,12 @@ export class CodeGeneratorRequest extends pb_1.Message {
const writer = w || new pb_1.BinaryWriter();
if (this.file_to_generate.length)
writer.writeRepeatedString(1, this.file_to_generate);
if (this.has_parameter && this.parameter.length)
if (this.has_parameter && this.parameter!.length)
writer.writeString(2, this.parameter);
if (this.proto_file.length)
writer.writeRepeatedMessage(15, this.proto_file, (item: dependency_1.FileDescriptorProto) => item.serialize(writer));
writer.writeRepeatedMessage(15, this.proto_file, (item: dependency_1.FileDescriptorProto) => item!.serialize(writer));
if (this.has_compiler_version)
writer.writeMessage(3, this.compiler_version, () => this.compiler_version.serialize(writer));
writer.writeMessage(3, this.compiler_version, () => this.compiler_version!.serialize(writer));
if (!w)
return writer.getResultBuffer();
}
Expand Down Expand Up @@ -287,6 +270,20 @@ export class CodeGeneratorRequest extends pb_1.Message {
return CodeGeneratorRequest.deserialize(bytes);
}
}
export namespace CodeGeneratorRequest {
export type AsObject = {
file_to_generate: string[];
parameter: string;
proto_file: dependency_1.FileDescriptorProto.AsObject[];
compiler_version?: Version.AsObject;
};
export type AsObjectPartial = {
file_to_generate: string[];
parameter?: string;
proto_file: dependency_1.FileDescriptorProto.AsObjectPartial[];
compiler_version?: Version.AsObjectPartial;
};
}
export class CodeGeneratorResponse extends pb_1.Message {
#one_of_decls: number[][] = [];
constructor(data?: any[] | {
Expand Down Expand Up @@ -330,11 +327,7 @@ export class CodeGeneratorResponse extends pb_1.Message {
set file(value: CodeGeneratorResponse.File[]) {
pb_1.Message.setRepeatedWrapperField(this, 15, value);
}
static fromObject(data: {
error?: string;
supported_features?: number;
file?: ReturnType<typeof CodeGeneratorResponse.File.prototype.toObject>[];
}): CodeGeneratorResponse {
static fromObject(data: CodeGeneratorResponse.AsObjectPartial): CodeGeneratorResponse {
const message = new CodeGeneratorResponse({
file: data.file.map(item => CodeGeneratorResponse.File.fromObject(item))
});
Expand All @@ -347,32 +340,23 @@ export class CodeGeneratorResponse extends pb_1.Message {
return message;
}
toObject() {
const data: {
error?: string;
supported_features?: number;
file?: ReturnType<typeof CodeGeneratorResponse.File.prototype.toObject>[];
} = {};
if (this.error != null) {
data.error = this.error;
}
if (this.supported_features != null) {
data.supported_features = this.supported_features;
}
if (this.file != null) {
data.file = this.file.map((item: CodeGeneratorResponse.File) => item.toObject());
}
const data: CodeGeneratorResponse.AsObject = {
error: this.error,
supported_features: this.supported_features,
file: this.file.map((item: CodeGeneratorResponse.File) => item.toObject())
};
return data;
}
serialize(): Uint8Array;
serialize(w: pb_1.BinaryWriter): void;
serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
const writer = w || new pb_1.BinaryWriter();
if (this.has_error && this.error.length)
if (this.has_error && this.error!.length)
writer.writeString(1, this.error);
if (this.has_supported_features)
writer.writeUint64(2, this.supported_features);
if (this.file.length)
writer.writeRepeatedMessage(15, this.file, (item: CodeGeneratorResponse.File) => item.serialize(writer));
writer.writeRepeatedMessage(15, this.file, (item: CodeGeneratorResponse.File) => item!.serialize(writer));
if (!w)
return writer.getResultBuffer();
}
Expand Down Expand Up @@ -404,6 +388,16 @@ export class CodeGeneratorResponse extends pb_1.Message {
}
}
export namespace CodeGeneratorResponse {
export type AsObject = {
error: string;
supported_features: number;
file: CodeGeneratorResponse.File.AsObject[];
};
export type AsObjectPartial = {
error?: string;
supported_features?: number;
file: CodeGeneratorResponse.File.AsObjectPartial[];
};
export enum Feature {
FEATURE_NONE = 0,
FEATURE_PROTO3_OPTIONAL = 1
Expand Down Expand Up @@ -461,20 +455,15 @@ export namespace CodeGeneratorResponse {
return pb_1.Message.getField(this, 15) != null;
}
get generated_code_info() {
return pb_1.Message.getWrapperField(this, dependency_1.GeneratedCodeInfo, 16) as dependency_1.GeneratedCodeInfo;
return pb_1.Message.getWrapperField(this, dependency_1.GeneratedCodeInfo, 16) as dependency_1.GeneratedCodeInfo | undefined;
}
set generated_code_info(value: dependency_1.GeneratedCodeInfo) {
set generated_code_info(value: dependency_1.GeneratedCodeInfo | undefined) {
pb_1.Message.setWrapperField(this, 16, value);
}
get has_generated_code_info() {
return pb_1.Message.getField(this, 16) != null;
}
static fromObject(data: {
name?: string;
insertion_point?: string;
content?: string;
generated_code_info?: ReturnType<typeof dependency_1.GeneratedCodeInfo.prototype.toObject>;
}): File {
static fromObject(data: File.AsObjectPartial): File {
const message = new File({});
if (data.name != null) {
message.name = data.name;
Expand All @@ -491,21 +480,11 @@ export namespace CodeGeneratorResponse {
return message;
}
toObject() {
const data: {
name?: string;
insertion_point?: string;
content?: string;
generated_code_info?: ReturnType<typeof dependency_1.GeneratedCodeInfo.prototype.toObject>;
} = {};
if (this.name != null) {
data.name = this.name;
}
if (this.insertion_point != null) {
data.insertion_point = this.insertion_point;
}
if (this.content != null) {
data.content = this.content;
}
const data: File.AsObject = {
name: this.name,
insertion_point: this.insertion_point,
content: this.content
};
if (this.generated_code_info != null) {
data.generated_code_info = this.generated_code_info.toObject();
}
Expand All @@ -515,14 +494,14 @@ export namespace CodeGeneratorResponse {
serialize(w: pb_1.BinaryWriter): void;
serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
const writer = w || new pb_1.BinaryWriter();
if (this.has_name && this.name.length)
if (this.has_name && this.name!.length)
writer.writeString(1, this.name);
if (this.has_insertion_point && this.insertion_point.length)
if (this.has_insertion_point && this.insertion_point!.length)
writer.writeString(2, this.insertion_point);
if (this.has_content && this.content.length)
if (this.has_content && this.content!.length)
writer.writeString(15, this.content);
if (this.has_generated_code_info)
writer.writeMessage(16, this.generated_code_info, () => this.generated_code_info.serialize(writer));
writer.writeMessage(16, this.generated_code_info, () => this.generated_code_info!.serialize(writer));
if (!w)
return writer.getResultBuffer();
}
Expand Down Expand Up @@ -556,4 +535,18 @@ export namespace CodeGeneratorResponse {
return File.deserialize(bytes);
}
}
export namespace File {
export type AsObject = {
name: string;
insertion_point: string;
content: string;
generated_code_info?: dependency_1.GeneratedCodeInfo.AsObject;
};
export type AsObjectPartial = {
name?: string;
insertion_point?: string;
content?: string;
generated_code_info?: dependency_1.GeneratedCodeInfo.AsObjectPartial;
};
}
}
Loading