From 261cff036f46da3ce5fa413b3754255b6bbd0450 Mon Sep 17 00:00:00 2001 From: Alexander Khristyukhin Date: Tue, 20 Dec 2022 13:53:52 +0300 Subject: [PATCH 1/2] wip --- src/main.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main.ts b/src/main.ts index 7828fee65..4f1f8f5f7 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1728,11 +1728,16 @@ type StructFieldNames = { function generateWrap(ctx: Context, fullProtoTypeName: string, fieldNames: StructFieldNames): Code[] { const chunks: Code[] = []; if (isStructTypeName(fullProtoTypeName)) { + let setStatement = 'struct.fields[key] = object[key];'; + if (ctx.options.useMapType) { + setStatement = 'struct.fields.set(key, object[key]);'; + } + chunks.push(code`wrap(object: {[key: string]: any} | undefined): Struct { const struct = createBaseStruct(); if (object !== undefined) { Object.keys(object).forEach(key => { - struct.fields[key] = object[key]; + ${setStatement} }); } return struct; @@ -1815,10 +1820,15 @@ function generateWrap(ctx: Context, fullProtoTypeName: string, fieldNames: Struc function generateUnwrap(ctx: Context, fullProtoTypeName: string, fieldNames: StructFieldNames): Code[] { const chunks: Code[] = []; if (isStructTypeName(fullProtoTypeName)) { + let setStatement = 'object[key] = message.fields[key];'; + if (ctx.options.useMapType) { + setStatement = 'object[key] = message.fields.get(key);' + } + chunks.push(code`unwrap(message: Struct): {[key: string]: any} { const object: { [key: string]: any } = {}; Object.keys(message.fields).forEach(key => { - object[key] = message.fields[key]; + ${setStatement} }); return object; }`); From ff9c294b19263644dc9af271b69da2158e9bf980 Mon Sep 17 00:00:00 2001 From: Alexander Khristyukhin Date: Tue, 20 Dec 2022 13:59:05 +0300 Subject: [PATCH 2/2] fmt --- src/main.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main.ts b/src/main.ts index 4f1f8f5f7..08a708f17 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1728,9 +1728,9 @@ type StructFieldNames = { function generateWrap(ctx: Context, fullProtoTypeName: string, fieldNames: StructFieldNames): Code[] { const chunks: Code[] = []; if (isStructTypeName(fullProtoTypeName)) { - let setStatement = 'struct.fields[key] = object[key];'; + let setStatement = "struct.fields[key] = object[key];"; if (ctx.options.useMapType) { - setStatement = 'struct.fields.set(key, object[key]);'; + setStatement = "struct.fields.set(key, object[key]);"; } chunks.push(code`wrap(object: {[key: string]: any} | undefined): Struct { @@ -1820,9 +1820,9 @@ function generateWrap(ctx: Context, fullProtoTypeName: string, fieldNames: Struc function generateUnwrap(ctx: Context, fullProtoTypeName: string, fieldNames: StructFieldNames): Code[] { const chunks: Code[] = []; if (isStructTypeName(fullProtoTypeName)) { - let setStatement = 'object[key] = message.fields[key];'; + let setStatement = "object[key] = message.fields[key];"; if (ctx.options.useMapType) { - setStatement = 'object[key] = message.fields.get(key);' + setStatement = "object[key] = message.fields.get(key);"; } chunks.push(code`unwrap(message: Struct): {[key: string]: any} {