respond-framework
Version:
create as fast you think
45 lines (44 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const initialData0 = ({
before,
getData,
after,
modular = false,
parallel = false
}) => (state, e) => {
const s = modular ? state : state.respond.topState;
if (s._initialDataFetched) return;
s._initialDataFetched = true;
const promise = initialData(s, e, before, getData, after);
if (!parallel) return promise;
const onError = error => state.respond.onError({
error,
kind: 'initialData',
e
});
return s.respond.awaitInReplaysOnly(promise, onError);
};
var _default = exports.default = initialData0;
const initialData = async (s, e, before, getData, after) => {
let ret = await before?.(s, e);
if (ret === false) return;
const data = await getData(s, e);
Object.assign(e, data, {
data
});
s.respond.devtools.sendPluginNotification({
type: 'initialData',
returned: data
}, e);
ret = await after?.(s, e);
if (ret === false) return;
const meta = {
from: e,
initialData: true
};
await s.events.init.data.dispatch(data, meta);
};