@westacks/vortex
Version:
Server-based routing for SPAs
75 lines (74 loc) • 1.92 kB
JavaScript
import { a as subscribe, g as getPage } from "../page-ILOxo6kg.js";
import { l } from "../router-CgFdQeyO.js";
import { u as useForm$1 } from "../form-Cv6npAGh.js";
const noop = () => {
};
function safe_not_equal(a, b) {
return a != a ? b == b : a !== b || a !== null && typeof a === "object" || typeof a === "function";
}
const subscriber_queue = [];
function readable(value, start) {
return {
subscribe: writable(value, start).subscribe
};
}
function writable(value, start = noop) {
let stop = null;
const subscribers = /* @__PURE__ */ new Set();
function set(new_value) {
if (safe_not_equal(value, new_value)) {
value = new_value;
if (stop) {
const run_queue = !subscriber_queue.length;
for (const subscriber of subscribers) {
subscriber[1]();
subscriber_queue.push(subscriber, value);
}
if (run_queue) {
for (let i = 0; i < subscriber_queue.length; i += 2) {
subscriber_queue[i][0](subscriber_queue[i + 1]);
}
subscriber_queue.length = 0;
}
}
}
}
function update(fn) {
set(fn(
/** @type {T} */
value
));
}
function subscribe2(run, invalidate = noop) {
const subscriber = [run, invalidate];
subscribers.add(subscriber);
if (subscribers.size === 1) {
stop = start(set, update) || noop;
}
run(
/** @type {T} */
value
);
return () => {
subscribers.delete(subscriber);
if (subscribers.size === 0 && stop) {
stop();
stop = null;
}
};
}
return { set, update, subscribe: subscribe2 };
}
const page = readable(getPage(), subscribe);
function useForm(data, rememberKey) {
const { get, subscribe: subscribe2 } = useForm$1(data);
const store = readable(get(), subscribe2);
store.set = () => {
};
return store;
}
export {
l as inertia,
page,
useForm
};