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