Azure / Azure/data-api-builder
Refactor to move all modifying and saving of the RuntimeConfig to the (FileSystem)RuntimeConfigLoader
- Dominant language
- C#
- Stars
- 1.5k
- Forks
- 370
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 8
Description
As a part of the work for hot-reload, we refactored the `RuntimeConfigProvider` such that it no longer was responsible for maintaining the state of the `RuntimeConfig` and no longer creates the file watcher or calls the functions for hot-reloads. Instead, the `RuntimeConfigLoader` holds the `RuntimeConfig`, does the instantiation of any file watchers, and maintains the hot-reload function.
However, as the RuntimeConfigProvider was previously responsible for holding the state of the `RuntimeConfig`, it was also responsible for mutating the `RuntimeConfig` that was acquired from the parse and load functions of the `RuntimeConfigLoader`. This leaves certain areas in the code where the `RuntimeConfigProvider` is modifying the `RuntimeConfig`, in particular when we call initialize in order to setup the `RuntimeConfig` in a Hosted scenario. Because of this, the `RuntimeConfig` that the `RuntimeConfigLoader` has is set to public accessibility.
We should change this to be private, which will require all of the code that modifies the `RuntimeConfig` outside of the `RuntimeConfigLoader` to be moved into the loader, so that no other classes have the ability to modify the `RuntimeConfig`.
Contributor guide
Assessment
This issue has not been assessed yet.