UNPKG

@betarena/ad-engine

Version:
132 lines (113 loc) 4.64 kB
// ╭──────────────────────────────────────────────────────────────────────────────────╮ // │ 📌 High Order Component Overview │ // ┣──────────────────────────────────────────────────────────────────────────────────┫ // │ ➤ Internal Svelte Code Format :|: V.8.0 │ // │ ➤ Status :|: 🔒 LOCKED │ // │ ➤ Author(s) :|: @migbash │ // ┣──────────────────────────────────────────────────────────────────────────────────┫ // │ 📝 Description │ // ┣──────────────────────────────────────────────────────────────────────────────────┫ // │ > Client 'Svelte/Store' │ // │ > Main Scores Platform Admin Session ('Ephermal') Store │ // ╰──────────────────────────────────────────────────────────────────────────────────╯ /* eslint-disable max-len */ // #region ➤ 📦 Package Imports import { writable } from 'svelte/store'; // #endregion ➤ 📦 Package Imports // #region ➤ 📌 VARIABLES const /** * @description * 📝 store object instance */ storeObject: IAdminControl = { admin: false, numberOfAdvertsActive: 0 } ; // #endregion ➤ 📌 VARIABLES // #region ➤ 🛠️ METHODS /** * @summary * @author * @description * @returns */ function createLocalStore ( ) { const // ╭───── // │ NOTE: |:| 📣 default 'svelte/store' exports. // ╰───── { subscribe, set, update } = writable ( storeObject ), /** * @description * 📣 Complementary 'store' added methods. */ methods = { // ╭──────────────────────────────────────────────────────────────────────────────────╮ // │ 📣 Main Logic │ // ╰──────────────────────────────────────────────────────────────────────────────────╯ /** * @author * @migbash * @summary * - 🔹 HELPER * - IMPORTANT * @description * 📣 Update **target** `list` data of target `properties` to update. * @param { [IAdminDataProp, any][] } data * 💠 **[required]** Target data to update. * @return { void } */ updateData: ( data: [IAdminDataProp, any][] ): void => { for (const iterator of data) { const /** * @description */ dataTarget = iterator[0], /** * @description */ dataPoint = iterator[1] ; if (dataTarget == 'admin') storeObject.admin = dataPoint; else if (dataTarget == 'numberOfAdvertsActive') storeObject.numberOfAdvertsActive += 1; ; } set ( storeObject ); return; }, } ; return { subscribe, set, update, ...methods }; } // #endregion ➤ 🛠️ METHODS export const storeAdmin = createLocalStore();