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

(fix) Add better support for loading multiple namespaces at once #1132

Merged
merged 1 commit into from
Aug 30, 2024

Conversation

ibacher
Copy link
Member

@ibacher ibacher commented Aug 30, 2024

Requirements

  • This PR has a title that briefly describes the work done including the ticket number. Ensure your PR title includes a conventional commit label (such as feat, fix, or chore, among others). See existing PR titles for inspiration.

For changes to apps

If applicable

  • My work includes tests or is validated by existing tests.
  • I have updated the esm-framework mock to reflect any API changes I have made.

Summary

This is a follow-up for #1119 that addresses a very narrow issue. Specifically, with #1119, when we loaded a namespace for an extension instance in a slot, this resulted in the namespace for the app itself not yet being populated. Basically, we would populate a namespace like @openmrs/esm-login-app___location-picker___location-picker correctly, but leave the @openmrs/esm-login-app namespace unpopulated. Since we generally rely on the useTranslation() to actually load the namespace, this meant there were some circumstances (like using the translateFrom() function) where the namespace for a specific extension instance was loaded but the namespace for the module was not currently registered, and i18next had no idea that it should try the longer namespace name.

This addresses this issue by ensuring that when we populate the namespace for an extension instance, we also populate the namespace for the app itself.

Screenshots

Related Issue

Other

Unsolved by this PR is the issue where translateFrom() cannot guarantee that a namespace is actually loaded, and so it may not correctly translate given translation keys under circumstances where the module hasn't otherwise been loaded first. While this sounds narrow, it remains a live possibility. I have added a note about this to the docs for translateFrom().

@ibacher ibacher force-pushed the fix/better-support-for-multiple-namespaces branch from 61d20e5 to f305937 Compare August 30, 2024 19:17
Copy link
Contributor

github-actions bot commented Aug 30, 2024

Size Change: -90.3 kB (-1.56%)

Total Size: 5.71 MB

Filename Size Change
packages/shell/esm-app-shell/dist/ff949568287f5a30.js 0 B -62.5 kB (removed) 🏆
packages/shell/esm-app-shell/dist/openmrs.b3a3c0578f9508e0.js 0 B -21.4 kB (removed) 🏆
ℹ️ View Unchanged
Filename Size Change
packages/apps/esm-devtools-app/dist/593.js 149 kB 0 B
packages/apps/esm-devtools-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-devtools-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-devtools-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-devtools-app/dist/762.js 4.1 kB 0 B
packages/apps/esm-devtools-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-devtools-app/dist/875.js 11.6 kB 0 B
packages/apps/esm-devtools-app/dist/889.js 323 kB -144 B (-0.04%)
packages/apps/esm-devtools-app/dist/988.js 326 B 0 B
packages/apps/esm-devtools-app/dist/main.js 3.22 kB 0 B
packages/apps/esm-devtools-app/dist/openmrs-esm-devtools-app.js 3.28 kB 0 B
packages/apps/esm-help-menu-app/dist/167.js 1.07 kB 0 B
packages/apps/esm-help-menu-app/dist/248.js 7.07 kB 0 B
packages/apps/esm-help-menu-app/dist/611.js 2.45 kB 0 B
packages/apps/esm-help-menu-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-help-menu-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-help-menu-app/dist/662.js 147 kB 0 B
packages/apps/esm-help-menu-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-help-menu-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-help-menu-app/dist/889.js 323 kB -142 B (-0.04%)
packages/apps/esm-help-menu-app/dist/958.js 3.74 kB 0 B
packages/apps/esm-help-menu-app/dist/main.js 8.56 kB 0 B
packages/apps/esm-help-menu-app/dist/openmrs-esm-help-menu-app.js 3.23 kB 0 B
packages/apps/esm-implementer-tools-app/dist/271.js 723 B 0 B
packages/apps/esm-implementer-tools-app/dist/289.js 14.1 kB 0 B
packages/apps/esm-implementer-tools-app/dist/319.js 639 B 0 B
packages/apps/esm-implementer-tools-app/dist/336.js 137 kB 0 B
packages/apps/esm-implementer-tools-app/dist/36.js 2.49 kB 0 B
packages/apps/esm-implementer-tools-app/dist/426.js 27.8 kB 0 B
packages/apps/esm-implementer-tools-app/dist/441.js 4.38 kB 0 B
packages/apps/esm-implementer-tools-app/dist/448.js 4.66 kB 0 B
packages/apps/esm-implementer-tools-app/dist/460.js 748 B 0 B
packages/apps/esm-implementer-tools-app/dist/491.js 134 kB 0 B
packages/apps/esm-implementer-tools-app/dist/574.js 584 B 0 B
packages/apps/esm-implementer-tools-app/dist/587.js 2.93 kB 0 B
packages/apps/esm-implementer-tools-app/dist/625.js 564 B 0 B
packages/apps/esm-implementer-tools-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-implementer-tools-app/dist/644.js 723 B 0 B
packages/apps/esm-implementer-tools-app/dist/657.js 7.03 kB 0 B
packages/apps/esm-implementer-tools-app/dist/667.js 121 kB 0 B
packages/apps/esm-implementer-tools-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-implementer-tools-app/dist/757.js 563 B 0 B
packages/apps/esm-implementer-tools-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-implementer-tools-app/dist/807.js 562 B 0 B
packages/apps/esm-implementer-tools-app/dist/833.js 691 B 0 B
packages/apps/esm-implementer-tools-app/dist/845.js 6.43 kB 0 B
packages/apps/esm-implementer-tools-app/dist/859.js 3.09 kB 0 B
packages/apps/esm-implementer-tools-app/dist/873.js 3.67 kB 0 B
packages/apps/esm-implementer-tools-app/dist/889.js 323 kB -141 B (-0.04%)
packages/apps/esm-implementer-tools-app/dist/main.js 20.8 kB 0 B
packages/apps/esm-implementer-tools-app/dist/openmrs-esm-implementer-tools-app.js 3.39 kB 0 B
packages/apps/esm-login-app/dist/202.js 2.57 kB 0 B
packages/apps/esm-login-app/dist/236.js 272 B 0 B
packages/apps/esm-login-app/dist/240.js 366 B 0 B
packages/apps/esm-login-app/dist/271.js 962 B 0 B
packages/apps/esm-login-app/dist/272.js 266 B 0 B
packages/apps/esm-login-app/dist/319.js 879 B 0 B
packages/apps/esm-login-app/dist/336.js 233 B 0 B
packages/apps/esm-login-app/dist/415.js 26.7 kB 0 B
packages/apps/esm-login-app/dist/460.js 967 B 0 B
packages/apps/esm-login-app/dist/539.js 300 B 0 B
packages/apps/esm-login-app/dist/574.js 687 B 0 B
packages/apps/esm-login-app/dist/593.js 149 kB 0 B
packages/apps/esm-login-app/dist/625.js 762 B 0 B
packages/apps/esm-login-app/dist/63.js 16.5 kB 0 B
packages/apps/esm-login-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-login-app/dist/644.js 962 B 0 B
packages/apps/esm-login-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-login-app/dist/673.js 286 B 0 B
packages/apps/esm-login-app/dist/676.js 2.23 kB 0 B
packages/apps/esm-login-app/dist/7.js 3.03 kB 0 B
packages/apps/esm-login-app/dist/735.js 2.62 kB 0 B
packages/apps/esm-login-app/dist/755.js 3.36 kB 0 B
packages/apps/esm-login-app/dist/757.js 908 B 0 B
packages/apps/esm-login-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-login-app/dist/80.js 30.6 kB 0 B
packages/apps/esm-login-app/dist/807.js 1.13 kB 0 B
packages/apps/esm-login-app/dist/833.js 902 B 0 B
packages/apps/esm-login-app/dist/859.js 3.08 kB 0 B
packages/apps/esm-login-app/dist/889.js 323 kB -144 B (-0.04%)
packages/apps/esm-login-app/dist/93.js 2.04 kB 0 B
packages/apps/esm-login-app/dist/main.js 58.9 kB 0 B
packages/apps/esm-login-app/dist/openmrs-esm-login-app.js 3.46 kB 0 B
packages/apps/esm-offline-tools-app/dist/271.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/319.js 1.13 kB 0 B
packages/apps/esm-offline-tools-app/dist/460.js 1.3 kB 0 B
packages/apps/esm-offline-tools-app/dist/574.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/601.js 142 kB 0 B
packages/apps/esm-offline-tools-app/dist/625.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/63.js 16.5 kB 0 B
packages/apps/esm-offline-tools-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-offline-tools-app/dist/644.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/645.js 91.4 kB 0 B
packages/apps/esm-offline-tools-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-offline-tools-app/dist/703.js 6.32 kB 0 B
packages/apps/esm-offline-tools-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-offline-tools-app/dist/757.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-offline-tools-app/dist/807.js 1.1 kB 0 B
packages/apps/esm-offline-tools-app/dist/833.js 1.21 kB 0 B
packages/apps/esm-offline-tools-app/dist/859.js 3.09 kB 0 B
packages/apps/esm-offline-tools-app/dist/889.js 323 kB -142 B (-0.04%)
packages/apps/esm-offline-tools-app/dist/947.js 8.66 kB 0 B
packages/apps/esm-offline-tools-app/dist/main.js 107 kB 0 B
packages/apps/esm-offline-tools-app/dist/openmrs-esm-offline-tools-app.js 3.38 kB 0 B
packages/apps/esm-primary-navigation-app/dist/271.js 270 B 0 B
packages/apps/esm-primary-navigation-app/dist/319.js 232 B 0 B
packages/apps/esm-primary-navigation-app/dist/460.js 266 B 0 B
packages/apps/esm-primary-navigation-app/dist/482.js 15.2 kB 0 B
packages/apps/esm-primary-navigation-app/dist/513.js 146 kB 0 B
packages/apps/esm-primary-navigation-app/dist/574.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/577.js 7.64 kB 0 B
packages/apps/esm-primary-navigation-app/dist/619.js 6.45 kB 0 B
packages/apps/esm-primary-navigation-app/dist/625.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/63.js 16.5 kB 0 B
packages/apps/esm-primary-navigation-app/dist/644.js 270 B 0 B
packages/apps/esm-primary-navigation-app/dist/657.js 7.03 kB 0 B
packages/apps/esm-primary-navigation-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-primary-navigation-app/dist/757.js 237 B 0 B
packages/apps/esm-primary-navigation-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-primary-navigation-app/dist/807.js 291 B 0 B
packages/apps/esm-primary-navigation-app/dist/833.js 258 B 0 B
packages/apps/esm-primary-navigation-app/dist/889.js 323 kB -142 B (-0.04%)
packages/apps/esm-primary-navigation-app/dist/933.js 3.63 kB 0 B
packages/apps/esm-primary-navigation-app/dist/958.js 24.3 kB 0 B
packages/apps/esm-primary-navigation-app/dist/main.js 29.8 kB 0 B
packages/apps/esm-primary-navigation-app/dist/openmrs-esm-primary-navigation-app.js 3.38 kB 0 B
packages/framework/esm-api/dist/openmrs-esm-api.js 16.2 kB 0 B
packages/framework/esm-config/dist/openmrs-esm-module-config.js 8.41 kB -17 B (-0.2%)
packages/framework/esm-context/dist/openmrs-esm-context.js 1.16 kB 0 B
packages/framework/esm-dynamic-loading/dist/openmrs-esm-dynamic-loading.js 2.89 kB 0 B
packages/framework/esm-error-handling/dist/openmrs-esm-error-handling.js 891 B 0 B
packages/framework/esm-expression-evaluator/dist/openmrs-esm-expression-evaluator.js 8.54 kB 0 B
packages/framework/esm-extensions/dist/openmrs-esm-extensions.js 24.8 kB 0 B
packages/framework/esm-feature-flags/dist/openmrs-esm-feature-flags.js 1.66 kB 0 B
packages/framework/esm-framework/dist/278.openmrs-esm-framework.js 14.5 kB 0 B
packages/framework/esm-framework/dist/530.openmrs-esm-framework.js 2.93 kB 0 B
packages/framework/esm-framework/dist/588.openmrs-esm-framework.js 2.15 kB 0 B
packages/framework/esm-framework/dist/619.openmrs-esm-framework.js 6.49 kB 0 B
packages/framework/esm-framework/dist/645.openmrs-esm-framework.js 9.3 kB 0 B
packages/framework/esm-framework/dist/735.openmrs-esm-framework.js 2.65 kB 0 B
packages/framework/esm-framework/dist/746.openmrs-esm-framework.js 6.14 kB 0 B
packages/framework/esm-framework/dist/788.openmrs-esm-framework.js 42.9 kB 0 B
packages/framework/esm-framework/dist/openmrs-esm-framework.js 454 kB -14 B (0%)
packages/framework/esm-globals/dist/openmrs-esm-globals.js 791 B 0 B
packages/framework/esm-navigation/dist/openmrs-esm-navigation.js 9.34 kB 0 B
packages/framework/esm-offline/dist/openmrs-esm-offline.js 34.4 kB 0 B
packages/framework/esm-react-utils/dist/openmrs-esm-react-utils.js 21.4 kB 0 B
packages/framework/esm-routes/dist/openmrs-esm-utils.js 4.67 kB 0 B
packages/framework/esm-state/dist/openmrs-esm-state.js 926 B 0 B
packages/framework/esm-styleguide/dist/openmrs-esm-styleguide.js 144 kB -11 B (-0.01%)
packages/framework/esm-translations/dist/openmrs-esm-core-translations.js 1.87 kB 0 B
packages/framework/esm-utils/dist/openmrs-esm-utils.js 45.5 kB 0 B
packages/shell/esm-app-shell/dist/0320f3310a8e6ffd.js 624 B 0 B
packages/shell/esm-app-shell/dist/0e69d9ec4853cfe2.js 958 B 0 B
packages/shell/esm-app-shell/dist/108de29b7c1b7ac8.js 6.99 kB 0 B
packages/shell/esm-app-shell/dist/11f5072faa5663d9.js 6.81 kB 0 B
packages/shell/esm-app-shell/dist/20ee3ecb5d9c7be1.js 2.58 kB 0 B
packages/shell/esm-app-shell/dist/2b553874176a2d5e.js 912 B 0 B
packages/shell/esm-app-shell/dist/2cc5179a2a17e577.js 911 B 0 B
packages/shell/esm-app-shell/dist/2ddface0d88d7441.js 43 kB 0 B
packages/shell/esm-app-shell/dist/3644c66a25798faa.js 168 kB 0 B
packages/shell/esm-app-shell/dist/39c27dcaf13969ce.js 6.77 kB 0 B
packages/shell/esm-app-shell/dist/457568b42b83b122.js 3.61 kB 0 B
packages/shell/esm-app-shell/dist/4600ae74dce9320d.js 1.17 kB 0 B
packages/shell/esm-app-shell/dist/47b4569526a565e6.js 3.04 kB 0 B
packages/shell/esm-app-shell/dist/4d55947c2d077956.js 1.19 kB 0 B
packages/shell/esm-app-shell/dist/4ef81ca673948056.js 18.3 kB 0 B
packages/shell/esm-app-shell/dist/566ba553af50fc2a.js 62.4 kB 0 B
packages/shell/esm-app-shell/dist/5aadd684d60c6888.js 2.23 kB 0 B
packages/shell/esm-app-shell/dist/63055e7118b46d72.js 0 B -5.57 kB (removed) 🏆
packages/shell/esm-app-shell/dist/75864074d57fef7b.js 5.63 kB 0 B
packages/shell/esm-app-shell/dist/82b941b0585ccaed.js 624 B 0 B
packages/shell/esm-app-shell/dist/85bbfd1b2f124ed9.js 3.33 kB 0 B
packages/shell/esm-app-shell/dist/85d9e1ec051fd113.js 2.84 kB 0 B
packages/shell/esm-app-shell/dist/8711659b05d659a3.js 9.36 kB 0 B
packages/shell/esm-app-shell/dist/8c7c69fc0e32ca48.js 2.6 kB 0 B
packages/shell/esm-app-shell/dist/9306486d6a162aea.js 1.59 kB 0 B
packages/shell/esm-app-shell/dist/9e544f6471561cb4.js 912 B 0 B
packages/shell/esm-app-shell/dist/a05840be5ec988e7.js 1 kB 0 B
packages/shell/esm-app-shell/dist/a0e789646c4db6de.js 15.1 kB 0 B
packages/shell/esm-app-shell/dist/b83e4961d0a5a387.js 934 B 0 B
packages/shell/esm-app-shell/dist/b88532bde74b513a.js 9.41 kB 0 B
packages/shell/esm-app-shell/dist/bd742565375867e5.js 172 kB 0 B
packages/shell/esm-app-shell/dist/d7b53090c51a6e8e.js 1.19 kB 0 B
packages/shell/esm-app-shell/dist/dc69812e79e05b45.js 3.08 kB 0 B
packages/shell/esm-app-shell/dist/dfa6fb8c8f561669.js 39.8 kB 0 B
packages/shell/esm-app-shell/dist/f3254390a777963b.js 3.23 kB 0 B
packages/shell/esm-app-shell/dist/f74be95a974424f5.js 3.38 kB 0 B
packages/shell/esm-app-shell/dist/openmrs.cd54e7fbbec20725.js 21.4 kB 0 B
packages/shell/esm-app-shell/dist/service-worker.js 46.4 kB -3 B (-0.01%)
packages/tooling/openmrs/dist/cli.js 2.96 kB 0 B
packages/tooling/openmrs/dist/commands/assemble.js 3.31 kB 0 B
packages/tooling/openmrs/dist/commands/build.js 1.32 kB 0 B
packages/tooling/openmrs/dist/commands/debug.js 543 B 0 B
packages/tooling/openmrs/dist/commands/develop.js 2.71 kB 0 B
packages/tooling/openmrs/dist/commands/index.js 437 B 0 B
packages/tooling/openmrs/dist/commands/start.js 850 B 0 B
packages/tooling/openmrs/dist/index.js 517 B 0 B
packages/tooling/openmrs/dist/runner.js 640 B 0 B
packages/tooling/openmrs/dist/utils/config.js 726 B 0 B
packages/tooling/openmrs/dist/utils/debugger.js 575 B 0 B
packages/tooling/openmrs/dist/utils/dependencies.js 643 B 0 B
packages/tooling/openmrs/dist/utils/helpers.js 397 B 0 B
packages/tooling/openmrs/dist/utils/importmap.js 3.07 kB 0 B
packages/tooling/openmrs/dist/utils/index.js 443 B 0 B
packages/tooling/openmrs/dist/utils/logger.js 368 B 0 B
packages/tooling/openmrs/dist/utils/npmConfig.js 831 B 0 B
packages/tooling/openmrs/dist/utils/untar.js 725 B 0 B
packages/tooling/openmrs/dist/utils/variables.js 192 B 0 B
packages/tooling/openmrs/dist/utils/webpack.js 278 B 0 B
packages/tooling/webpack-config/dist/index.js 3.61 kB 0 B

compressed-size-action

Copy link
Member

@denniskigen denniskigen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @ibacher. Lets see how this goes.

@denniskigen denniskigen merged commit f04c8ac into main Aug 30, 2024
11 checks passed
@denniskigen denniskigen deleted the fix/better-support-for-multiple-namespaces branch August 30, 2024 21:12
@ibacher
Copy link
Member Author

ibacher commented Aug 30, 2024

At least locally, this fixed the issue, so 🤞.

This was referenced Sep 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants