Azure / Azure/data-api-builder

Refactor to move all modifying and saving of the RuntimeConfig to the (FileSystem)RuntimeConfigLoader

Open
#2,362 0 comments 0 reactions 1 assignee Claimed by @aaronburtle View on GitHub
refactor
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.