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

Application configuration store #8

Closed
svengreb opened this issue Nov 15, 2020 · 0 comments · Fixed by #9
Closed

Application configuration store #8

svengreb opened this issue Nov 15, 2020 · 0 comments · Fixed by #9

Comments

@svengreb
Copy link
Owner

svengreb commented Nov 15, 2020

Like described in the /apps directory documentation of the tmpl-go template repository, wand also aims to support the monorepo layout.
In order to manage multiple applications, their information and metadata will be recorded in a configuration store where each entry will be identified by a unique ID, usually the name of the application. The pkg/app package will provide two interfaces and an unexported struct that implements it that can be used through the exported NewStore() Store function.

  • 🆃 pkg/app.Config — A struct type that holds information and metadata of an application.
  • 🅸 pkg/app.Store — A storage that provides methods to record application configurations:
    • Add(*Config) — Adds a application configuration.
    • Get(string) (*Config, error) — Returns the application configuration for the given name or nil along with an error when not stored.
  • 🆃 appStore — A storage for application configurations.
  • 🅵 NewStore() Store — Creates a new store for application configurations.
@svengreb svengreb added this to the 0.1.0 milestone Nov 15, 2020
@svengreb svengreb self-assigned this Nov 15, 2020
svengreb added a commit that referenced this issue Nov 15, 2020
Like described in the `/apps` directory documentation [1] of the
"tmpl-go" template repository, "wand" also aims to support the
monorepo [2] layout.
In order to manage multiple applications, their information and metadata
are recorded in a configuration store where each entry is identified by
a unique ID, usually the name of the application. The `pkg/app` package
provides two interfaces and an unexported struct that implements it that
can be used through the exported `NewStore() Store` function.

- <T> `pkg/app.Config` — A `struct` type that holds information and
  metadata of an application.
- <I> `pkg/app.Store` — A storage that provides methods to record
  application configurations:
  - `Add(*Config)` — Adds a application configuration.
  - `Get(string) (*Config, error)` — Returns the application
    configuration for the given name or nil along with an error when not
    stored.
- <T> `appStore` — A storage for application configurations.
- <F> `NewStore() Store` — Creates a new store for application configurations.

[1]: https://github.com/svengreb/tmpl-go/tree/main/apps
[2]: https://trunkbaseddevelopment.com/monorepos

GH-8
svengreb added a commit that referenced this issue Nov 15, 2020
Like described in the `/apps` directory documentation [1] of the
"tmpl-go" template repository, "wand" also aims to support the
monorepo [2] layout.
In order to manage multiple applications, their information and metadata
are recorded in a configuration store where each entry is identified by
a unique ID, usually the name of the application. The `pkg/app` package
provides two interfaces and an unexported struct that implements it that
can be used through the exported `NewStore() Store` function.

- <T> `pkg/app.Config` — A `struct` type that holds information and
  metadata of an application.
- <I> `pkg/app.Store` — A storage that provides methods to record
  application configurations:
  - `Add(*Config)` — Adds a application configuration.
  - `Get(string) (*Config, error)` — Returns the application
    configuration for the given name or nil along with an error when not
    stored.
- <T> `appStore` — A storage for application configurations.
- <F> `NewStore() Store` — Creates a new store for application configurations.

[1]: https://github.com/svengreb/tmpl-go/tree/main/apps
[2]: https://trunkbaseddevelopment.com/monorepos

Closes GH-8
@svengreb svengreb removed their assignment Nov 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant