allow reading and updating pointer data directly to database

This commit is contained in:
buzz-lightsnack-2007 2024-05-05 09:07:22 +08:00
parent 785e6e8e11
commit cfdeacd071

View file

@ -11,6 +11,7 @@ class pointer {
*/ */
static select(URL) { static select(URL) {
const clean = (URL) => { const clean = (URL) => {
// Remove the protocol from the URL. // Remove the protocol from the URL.
return((URL.replace(/(^\w+:|^)\/\//, ``).split(`?`))[0]); return((URL.replace(/(^\w+:|^)\/\//, ``).split(`?`))[0]);
} }
@ -20,7 +21,8 @@ class pointer {
} catch(err) {} } catch(err) {}
// Get the last edited site. // Get the last edited site.
return(global.write([`last`, `URL`], this.URL, -1)); return((URL) ? global.write([`last`], URL, -1) : null);
} }
/* /*
@ -28,17 +30,38 @@ class pointer {
@param {dictionary} state the new state @param {dictionary} state the new state
*/ */
static update(state) { static async update(state) {
// Indicate the status of the process. // Indicate the status of the process.
if ((state && (typeof state).includes(`obj`)) ? Object.keys(state).length : false) { if ((state && (typeof state).includes(`obj`)) ? Object.keys(state).length : false) {
(Object.keys(state)).forEach(async (key) => { if (state[`URL`]) {
await global.write([`last`, key], state[key], -1); await this.select(state[`URL`]);
}); delete state[`URL`];
};
(await global.read([`last`]))
? (Object.keys(state)).forEach(async (key) => {
await global.write([`sites`, await global.read([`last`]), key], state[key], -1);
})
: false;
} }
} }
static read() { /*
return(global.read([`last`])); Read a property about the pointer.
@param {string} name the property to read
*/
static async read(name) {
let RETURN = ((name)
? (!(name.trim().includes(`URL`))
? await global.read([`last`])
: true)
: false)
? global.read((name.trim().includes(`URL`))
? [`last`]
: [`sites`, await global.read([`last`]), ...((Array.isArray(name)) ? name : name.trim().split(`,`))])
: null;
return(RETURN);
} }
/* /*