| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- "use strict";
- var __defProp = Object.defineProperty;
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
- var __getOwnPropNames = Object.getOwnPropertyNames;
- var __hasOwnProp = Object.prototype.hasOwnProperty;
- var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
- };
- var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
- };
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
- // src/index.ts
- var index_exports = {};
- __export(index_exports, {
- createPersistedState: () => createPersistedState,
- default: () => index_default
- });
- module.exports = __toCommonJS(index_exports);
- var import_destr = require("destr");
- // src/runtime/core.ts
- var import_deep_pick_omit = require("deep-pick-omit");
- function hydrateStore(store, {
- storage,
- serializer,
- key,
- debug,
- pick,
- omit,
- beforeHydrate,
- afterHydrate
- }, context, runHooks = true) {
- try {
- if (runHooks)
- beforeHydrate?.(context);
- const fromStorage = storage.getItem(key);
- if (fromStorage) {
- const deserialized = serializer.deserialize(fromStorage);
- const picked = pick ? (0, import_deep_pick_omit.deepPickUnsafe)(deserialized, pick) : deserialized;
- const omitted = omit ? (0, import_deep_pick_omit.deepOmitUnsafe)(picked, omit) : picked;
- store.$patch(omitted);
- }
- if (runHooks)
- afterHydrate?.(context);
- } catch (error) {
- if (debug)
- console.error("[pinia-plugin-persistedstate]", error);
- }
- }
- function persistState(state, {
- storage,
- serializer,
- key,
- debug,
- pick,
- omit
- }) {
- try {
- const picked = pick ? (0, import_deep_pick_omit.deepPickUnsafe)(state, pick) : state;
- const omitted = omit ? (0, import_deep_pick_omit.deepOmitUnsafe)(picked, omit) : picked;
- const toStorage = serializer.serialize(omitted);
- storage.setItem(key, toStorage);
- } catch (error) {
- if (debug)
- console.error("[pinia-plugin-persistedstate]", error);
- }
- }
- function createPersistence(context, optionsParser, auto) {
- const { pinia, store, options: { persist = auto } } = context;
- if (!persist)
- return;
- if (!(store.$id in pinia.state.value)) {
- const originalStore = pinia._s.get(store.$id.replace("__hot:", ""));
- if (originalStore)
- void Promise.resolve().then(() => originalStore.$persist());
- return;
- }
- const persistenceOptions = Array.isArray(persist) ? persist : persist === true ? [{}] : [persist];
- const persistences = persistenceOptions.map(optionsParser);
- store.$hydrate = ({ runHooks = true } = {}) => {
- persistences.forEach((p) => {
- hydrateStore(store, p, context, runHooks);
- });
- };
- store.$persist = () => {
- persistences.forEach((p) => {
- persistState(store.$state, p);
- });
- };
- persistences.forEach((p) => {
- hydrateStore(store, p, context);
- store.$subscribe(
- (_mutation, state) => persistState(state, p),
- { detached: true }
- );
- });
- }
- // src/index.ts
- function createPersistedState(options = {}) {
- return function(context) {
- createPersistence(
- context,
- (p) => ({
- key: (options.key ? options.key : (x) => x)(p.key ?? context.store.$id),
- debug: p.debug ?? options.debug ?? false,
- serializer: p.serializer ?? options.serializer ?? {
- serialize: (data) => JSON.stringify(data),
- deserialize: (data) => (0, import_destr.destr)(data)
- },
- storage: p.storage ?? options.storage ?? window.localStorage,
- beforeHydrate: p.beforeHydrate,
- afterHydrate: p.afterHydrate,
- pick: p.pick,
- omit: p.omit
- }),
- options.auto ?? false
- );
- };
- }
- var index_default = createPersistedState();
- // Annotate the CommonJS export names for ESM import in node:
- 0 && (module.exports = {
- createPersistedState
- });
|