influxdata / influxdata/ui

Make polymorphic interface work with static-time tooling.

Open
#5,687 2 comments 0 reactions 0 assignees View on GitHub
feature-cleanup team/automation
Dominant language
TypeScript
Stars
117
Forks
51
Avg merge
2d 15h
Merged PRs (30d)
4

Description

We have utilized maps of interfaces, with polymorhphic loading of these interfaces (based on type), in order to do more with less code. This is good.

However, the downside is specifically in the approach used in the building of the interface maps, which is done at build time -- post time in which our static tooling can work. This means that we have reduced code navigation, bundle analysis tools (for architecture decisions), and reduced the ability for other devs to also maintain our codebase.

This ticket is about taking our dynamically built interface maps, and making the map be:
1. explicitly, statically defined.
* e.g. ` const interfaceMap = {[type: string]: ClientLib}` with all of the types.
* remove the loading of interfaces by file path
2. using a typescript defined interfaces.
* e.g. each `ClientLib` is an object typed by the `ClientLibType` typescript interface.

Example interface maps, which we have as of now:
* SUPPORTED_VISUALIZATIONS
* PIPE_DEFINITIONS
* ENDPOINT_DEFINITIONS
* TEMPLATES
* CLIENT_DEFINITIONS

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.