{"version":3,"file":"instance.cjs","sources":["../../../../src/mods/scroll/instance.ts"],"sourcesContent":["import { Option } from \"@hazae41/option\";\nimport { Err, Ok } from \"@hazae41/result\";\nimport { Arrays } from \"libs/arrays/arrays.js\";\nimport { Time } from \"libs/time/time.js\";\nimport { CooldownError, MissingFetcherError } from \"mods/core/core.js\";\nimport { Scroll } from \"./helper.js\";\nexport class ScrollFetcherfulQueryInstance {\n    core;\n    cacheKey;\n    settings;\n    constructor(core, cacheKey, settings) {\n        this.core = core;\n        this.cacheKey = cacheKey;\n        this.settings = settings;\n    }\n    static async make(core, cacheKey, qsettings) {\n        const settings = { ...core.settings, ...qsettings };\n        await core.get(cacheKey, settings);\n        return new ScrollFetcherfulQueryInstance(core, cacheKey, settings);\n    }\n    get state() {\n        return Option.unwrap(this.core.getStateSync(this.cacheKey));\n    }\n    get aborter() {\n        return this.core.getAborterSync(this.cacheKey);\n    }\n    get current() {\n        return this.state.current;\n    }\n    get data() {\n        return this.state.data;\n    }\n    get error() {\n        return this.state.error;\n    }\n    get real() {\n        return this.state.real;\n    }\n    get fake() {\n        return this.state.fake;\n    }\n    peek() {\n        return Option.mapSync(this.real?.data?.inner, pages => this.settings.scroller(Arrays.last(pages)));\n    }\n    async mutate(mutator) {\n        return await this.core.mutate(this.cacheKey, mutator, this.settings);\n    }\n    async delete() {\n        return await this.core.delete(this.cacheKey, this.settings);\n    }\n    async fetch(aborter = new AbortController()) {\n        const { core, cacheKey, settings } = this;\n        if (Time.isAfterNow(this.real?.current.cooldown))\n            return new Err(new CooldownError());\n        const result = await core.fetchOrJoin(cacheKey, aborter, async () => await Scroll.first(core, cacheKey, aborter, settings));\n        return new Ok(result);\n    }\n    async refetch(aborter = new AbortController()) {\n        const { core, cacheKey, settings } = this;\n        const result = await core.fetchOrReplace(cacheKey, aborter, async () => await Scroll.first(core, cacheKey, aborter, settings));\n        return new Ok(result);\n    }\n    async scroll(aborter = new AbortController()) {\n        const { core, cacheKey, settings } = this;\n        const result = await core.fetchOrReplace(cacheKey, aborter, async () => await Scroll.scroll(core, cacheKey, aborter, settings));\n        return new Ok(result);\n    }\n}\nexport class ScrollFetcherlessQueryInstance {\n    core;\n    cacheKey;\n    settings;\n    constructor(core, cacheKey, settings) {\n        this.core = core;\n        this.cacheKey = cacheKey;\n        this.settings = settings;\n    }\n    static async make(core, cacheKey, qsettings) {\n        const settings = { ...core.settings, ...qsettings };\n        await core.get(cacheKey, settings);\n        return new ScrollFetcherlessQueryInstance(core, cacheKey, settings);\n    }\n    get state() {\n        return Option.unwrap(this.core.getStateSync(this.cacheKey));\n    }\n    get aborter() {\n        return this.core.getAborterSync(this.cacheKey);\n    }\n    get current() {\n        return this.state.current;\n    }\n    get data() {\n        return this.state.data;\n    }\n    get error() {\n        return this.state.error;\n    }\n    get real() {\n        return this.state.real;\n    }\n    get fake() {\n        return this.state.fake;\n    }\n    peek() {\n        return Option.mapSync(this.real?.data?.inner, pages => this.settings.scroller(Arrays.last(pages)));\n    }\n    async mutate(mutator) {\n        return await this.core.mutate(this.cacheKey, mutator, this.settings);\n    }\n    async delete() {\n        return await this.core.delete(this.cacheKey, this.settings);\n    }\n    async fetch(aborter = new AbortController()) {\n        return new Err(new MissingFetcherError());\n    }\n    async refetch(aborter = new AbortController()) {\n        return new Err(new MissingFetcherError());\n    }\n    async scroll(aborter = new AbortController()) {\n        return new Err(new MissingFetcherError());\n    }\n}\n//# sourceMappingURL=instance.js.map"],"names":["Option","Arrays","core","Time","Err","CooldownError","result","Scroll","Ok","MissingFetcherError"],"mappings":"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"}