From 41cf96680a969cab27f7608938bc2e7110505bbd Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Sun, 8 Sep 2024 15:07:37 -0400 Subject: [PATCH 1/2] Use DTS by default only if module_type is set, prevents breaking projects that can't handle "export" keyword. --- lib/js_routes.rb | 11 +++++++++-- spec/js_routes/module_types/dts_spec.rb | 10 ++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/js_routes.rb b/lib/js_routes.rb index 05b49c4..0b14bb6 100644 --- a/lib/js_routes.rb +++ b/lib/js_routes.rb @@ -41,19 +41,26 @@ def generate!(file_name = configuration.file, **opts) sig { params(opts: T.untyped).returns(String) } def definitions(**opts) - generate(**opts, module_type: 'DTS',) + generate(**opts, module_type: default_module_type,) end sig { params(file_name: FileName, opts: T.untyped).void } def definitions!(file_name = nil, **opts) file_name ||= configuration.file&.sub(%r{(\.d)?\.(j|t)s\Z}, ".d.ts") - generate!(file_name, **opts, module_type: 'DTS') + generate!(file_name, **opts, module_type: default_module_type) end sig { params(value: T.untyped).returns(String) } def json(value) ActiveSupport::JSON.encode(value) end + + sig { returns(T.nilable(String)) } + def default_module_type + 'DTS' if configuration.module_type + end + + end module Generators end diff --git a/spec/js_routes/module_types/dts_spec.rb b/spec/js_routes/module_types/dts_spec.rb index 2d08a4c..e94f759 100644 --- a/spec/js_routes/module_types/dts_spec.rb +++ b/spec/js_routes/module_types/dts_spec.rb @@ -122,5 +122,15 @@ generated_js = JsRoutes.definitions(**options) expect(generated_js).to include('export {};') end + + it 'does not use DTS module if module_type is not set' do + previous_module_type = JsRoutes.configuration.module_type + JsRoutes.configuration.module_type = nil + + generated_js = JsRoutes.definitions(**options.merge(module_type: nil)) + expect(generated_js).not_to include('export {};') + + JsRoutes.configuration.module_type = previous_module_type + end end end From aa343ea0c7a1e55ecbb4d268c427a1b39192013b Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Sun, 8 Sep 2024 16:01:26 -0400 Subject: [PATCH 2/2] Account for normalized NIL module_type --- lib/js_routes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/js_routes.rb b/lib/js_routes.rb index 0b14bb6..ff74281 100644 --- a/lib/js_routes.rb +++ b/lib/js_routes.rb @@ -57,7 +57,7 @@ def json(value) sig { returns(T.nilable(String)) } def default_module_type - 'DTS' if configuration.module_type + 'DTS' if configuration.module_type && configuration.module_type != 'NIL' end