frontend
frontend copied to clipboard
Plugins system for SciCat FE
As #1505 shows one can already have quite isolated "plugins" in SciCat FE. However real plugins system requires some more efforts.
Here is how I see plugins roadmap in general:
Extract TypeScript Definitions:
Identify and extract necessary TypeScript definitions from the SciCat frontend. For instance, DatasetState
definition or e.g. DataSet
itself etc
Create a shared types package (e.g., scicat-shared-types
).
For any given plugin:
Set Up New Angular Project:
-
Create a new Angular project for the generic component.
-
Implement the component using the shared types.
Integrate Shared Types:
-
Install the scicat-shared-types package in the new plugin project.
-
Utilize the shared types in the component.
Publish the Plugin:
- Build and publish the plugin to npm or any npm compatible registry (e.g. GitHub).
Update SciCat FE:
-
Install the new plugin and shared types package.
-
Update import paths and integrate the plugin into the SciCat frontend.
An interesting point is to extract those scicat-shared-types
. Ideally those has to be generated from common schema or sdk