mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
change BaseRegistry to only have one type parameter (#1474)
* change BaseRegistry to only have one type parameter Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
1 parent
0a5e7a048d
commit
5005d34c2e
5 files changed
+23
-10
No files matched your search
@@ -1,20 +1,21 @@
|
||||
// Base class for extensions-api registries
|
||||
import { action, observable } from "mobx";
|
||||
import { LensExtension } from "../lens-extension";
|
||||
import { recitfy } from "../../common/utils";
|
||||
|
||||
export class BaseRegistry<T = object, I extends T = T> {
|
||||
export class BaseRegistry<T> {
|
||||
private items = observable<T>([], { deep: false });
|
||||
|
||||
getItems(): I[] {
|
||||
return this.items.toJS() as I[];
|
||||
getItems(): T[] {
|
||||
return this.items.toJS();
|
||||
}
|
||||
|
||||
add(items: T | T[], ext?: LensExtension): () => void; // allow method overloading with required "ext"
|
||||
@action
|
||||
add(items: T | T[]) {
|
||||
const normalizedItems = (Array.isArray(items) ? items : [items]);
|
||||
this.items.push(...normalizedItems);
|
||||
return () => this.remove(...normalizedItems);
|
||||
const itemArray = recitfy(items);
|
||||
this.items.push(...itemArray);
|
||||
return () => this.remove(...itemArray);
|
||||
}
|
||||
|
||||
@action
|
||||
|
||||
Reference in new issue
Block a user