add utils
All checks were successful
Deploy Docs to Synology / deploy (push) Successful in 4s

This commit is contained in:
2026-05-08 12:47:51 +02:00
parent 610c9a9586
commit 369a35d92a
7 changed files with 99 additions and 6 deletions

23
dist/sigpro.js vendored
View File

@@ -833,8 +833,29 @@
router.back = () => window.history.back(); router.back = () => window.history.back();
router.path = () => window.location.hash.replace(/^#/, "") || "/"; router.path = () => window.location.hash.replace(/^#/, "") || "/";
// src/utils.js
var db = async (url, data = {}, loading = null) => {
if (loading)
loading(true);
try {
const res = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data)
});
if (!res.ok) {
const errorText = await res.text();
throw new Error(`Error ${res.status}: ${errorText}`);
}
return await res.json();
} finally {
if (loading)
loading(false);
}
};
// src/build_umd.js // src/build_umd.js
if (typeof window !== "undefined") { if (typeof window !== "undefined") {
Object.assign(window, { $, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); Object.assign(window, { $, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj, db });
} }
})(); })();

2
dist/sigpro.min.js vendored

File diff suppressed because one or more lines are too long

23
dist/utils.js vendored Normal file
View File

@@ -0,0 +1,23 @@
// src/utils.js
var db = async (url, data = {}, loading = null) => {
if (loading)
loading(true);
try {
const res = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data)
});
if (!res.ok) {
const errorText = await res.text();
throw new Error(`Error ${res.status}: ${errorText}`);
}
return await res.json();
} finally {
if (loading)
loading(false);
}
};
export {
db
};

View File

@@ -833,8 +833,29 @@
router.back = () => window.history.back(); router.back = () => window.history.back();
router.path = () => window.location.hash.replace(/^#/, "") || "/"; router.path = () => window.location.hash.replace(/^#/, "") || "/";
// src/utils.js
var db = async (url, data = {}, loading = null) => {
if (loading)
loading(true);
try {
const res = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data)
});
if (!res.ok) {
const errorText = await res.text();
throw new Error(`Error ${res.status}: ${errorText}`);
}
return await res.json();
} finally {
if (loading)
loading(false);
}
};
// src/build_umd.js // src/build_umd.js
if (typeof window !== "undefined") { if (typeof window !== "undefined") {
Object.assign(window, { $, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); Object.assign(window, { $, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj, db });
} }
})(); })();

View File

@@ -1,6 +1,6 @@
{ {
"name": "sigpro", "name": "sigpro",
"version": "1.2.36", "version": "1.2.37",
"type": "module", "type": "module",
"license": "MIT", "license": "MIT",
"author": { "author": {
@@ -21,6 +21,9 @@
}, },
"./router": { "./router": {
"import": "./dist/router.js" "import": "./dist/router.js"
},
"./utils": {
"import": "./dist/utils.js"
} }
}, },
"files": [ "files": [
@@ -47,8 +50,9 @@
"build:esm": "bun build ./src/sigpro.js --bundle --outfile=./dist/sigpro.esm.js --format=esm", "build:esm": "bun build ./src/sigpro.js --bundle --outfile=./dist/sigpro.esm.js --format=esm",
"build:esm:min": "bun build ./src/sigpro.js --bundle --outfile=./dist/sigpro.esm.min.js --format=esm --minify", "build:esm:min": "bun build ./src/sigpro.js --bundle --outfile=./dist/sigpro.esm.min.js --format=esm --minify",
"build:router": "bun build ./src/router.js --bundle --outfile=./dist/router.js --format=esm --external:fs --external:path", "build:router": "bun build ./src/router.js --bundle --outfile=./dist/router.js --format=esm --external:fs --external:path",
"build:utils": "bun build ./src/utils.js --bundle --outfile=./dist/utils.js --format=esm --external:fs --external:path",
"build:copy": "cp ./dist/sigpro.js ./docs/sigpro.js", "build:copy": "cp ./dist/sigpro.js ./docs/sigpro.js",
"build": "bun run build:iife && bun run build:iife:min && bun run build:esm && bun run build:esm:min && bun run build:router && bun run build:copy", "build": "bun run build:iife && bun run build:iife:min && bun run build:esm && bun run build:esm:min && bun run build:router && bun run build:utils && bun run build:copy",
"docs": "bun x serve docs" "docs": "bun x serve docs"
}, },
"keywords": [ "keywords": [

View File

@@ -1,6 +1,7 @@
import { $, watch, batch, h, Fragment, mount, when, each, onUnmount, isArr, isFunc, isObj } from "./sigpro.js" import { $, watch, batch, h, Fragment, mount, when, each, onUnmount, isArr, isFunc, isObj } from "./sigpro.js"
import { router } from "./router.js" import { router } from "./router.js"
import { db } from "./utils.js"
if (typeof window !== "undefined") { if (typeof window !== "undefined") {
Object.assign(window, { $, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }) Object.assign(window, { $, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj, db })
} }

23
src/utils.js Normal file
View File

@@ -0,0 +1,23 @@
// utils.js
export const db = async (url, data = {}, loading = null) => {
if (loading) loading(true);
try {
const res = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
if (!res.ok) {
const errorText = await res.text();
throw new Error(`Error ${res.status}: ${errorText}`);
}
return await res.json();
} finally {
if (loading) loading(false);
}
};