mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
35 lines
884 B
TypeScript
35 lines
884 B
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
|
|
import { BaseStore } from "../common/base-store";
|
|
import * as path from "path";
|
|
import type { LensExtension } from "./lens-extension";
|
|
import assert from "assert";
|
|
|
|
export abstract class ExtensionStore<T extends object> extends BaseStore<T> {
|
|
readonly displayName = "ExtensionStore<T>";
|
|
protected extension?: LensExtension;
|
|
|
|
loadExtension(extension: LensExtension) {
|
|
this.extension = extension;
|
|
|
|
this.params.projectVersion ??= this.extension.version;
|
|
|
|
return super.load();
|
|
}
|
|
|
|
load() {
|
|
if (!this.extension) { return; }
|
|
|
|
return super.load();
|
|
}
|
|
|
|
protected cwd() {
|
|
assert(this.extension, "must call this.load() first");
|
|
|
|
return path.join(super.cwd(), "extension-store", this.extension.name);
|
|
}
|
|
}
|