ts-proto icon indicating copy to clipboard operation
ts-proto copied to clipboard

Option to include generated type registry in exports

Open oliveryasuna opened this issue 1 year ago • 5 comments

With outputIndex=true and outputTypeRegistry=true, the generated index.ts does not export typeRegistry.ts.

It would not make sense to make it export by default because that could break isolated builds. I think a new option would be useful, and perhaps make it default in the next major release. Happy to contribute.

oliveryasuna avatar Jun 30 '24 23:06 oliveryasuna

@stephenh https://github.com/stephenh/ts-proto/pull/1070

oliveryasuna avatar Jul 01 '24 02:07 oliveryasuna

Hi @oliveryasuna ; just checking, but what do you mean by isolated builds?

Initially I would have guessed that we should just have index.ts output the type registry, if both options are enabled, without needing a new option.

stephenh avatar Jul 01 '24 03:07 stephenh

@stephenh Honestly, I have no idea what I meant by "isolated builds" when I wrote that late last night. Maybe I meant that the generated TS files could be in their own package, and some developers will write their own type registry instead of using the generated one. Therefore, by adding the type registry to the the exports by default, it could introduce namespace conflicts, hence could be viewed as a breaking change.

oliveryasuna avatar Jul 01 '24 13:07 oliveryasuna

Ah yeah; you're right that it's a change in behavior, but dunno, personally I don't think a new symbol being exported from index.ts is a breaking change (vs. a previously-exported symbol now becoming non-exported, which ofc is a breaking change).

So, given that, are you fine with updating your PR to not introduce a new options.exportTypeRegistry option, and instead just use the existing outputIndex=true + outputTypeRegistry=true settings to add the additional export?

Thanks!

stephenh avatar Jul 01 '24 17:07 stephenh

@stephenh Either perspective is valid. My concern is an edge edge edge case. Yes, I will update my PR!

oliveryasuna avatar Jul 01 '24 21:07 oliveryasuna