mirror of
https://github.com/pheralb/svgl.git
synced 2025-12-29 08:01:36 +08:00
⚙️ Create pkgManager store for managing package manager selection
This commit is contained in:
@@ -0,0 +1,32 @@
|
|||||||
|
import { writable } from "svelte/store";
|
||||||
|
import { browser } from "$app/environment";
|
||||||
|
|
||||||
|
type PackageManager = "npm" | "pnpm" | "yarn" | "bun";
|
||||||
|
|
||||||
|
const localStorageKey = "svgl_package_manager";
|
||||||
|
const defaultValue: PackageManager = "npm";
|
||||||
|
|
||||||
|
function getInitialValue(): PackageManager {
|
||||||
|
if (browser) {
|
||||||
|
const stored = localStorage.getItem(localStorageKey);
|
||||||
|
if (
|
||||||
|
stored === "npm" ||
|
||||||
|
stored === "pnpm" ||
|
||||||
|
stored === "yarn" ||
|
||||||
|
stored === "bun"
|
||||||
|
) {
|
||||||
|
return stored;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const pkgManager = writable<PackageManager>(getInitialValue());
|
||||||
|
|
||||||
|
pkgManager.subscribe((value) => {
|
||||||
|
if (browser) {
|
||||||
|
localStorage.setItem(localStorageKey, value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
export { pkgManager, type PackageManager };
|
||||||
Reference in New Issue
Block a user