@coriolis/coriolis-svelte
Version:
Coriolis wrapper for Svelte
54 lines (43 loc) • 1.5 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var svelte = require('svelte');
// eslint-disable-next-line import/no-unresolved
var KEY_GET_SOURCE = 'Coriolis store reference withProjection';
var KEY_DISPATCH = 'Coriolis store reference dispatch';
var withProjection = function withProjection() {
return svelte.getContext(KEY_GET_SOURCE).apply(void 0, arguments);
};
var createDispatch = function createDispatch(builder) {
var dispatch = svelte.getContext(KEY_DISPATCH);
return function () {
var event = builder.apply(void 0, arguments);
if (!event) {
return;
}
dispatch(event);
};
};
var createStoreAPIProvider = function createStoreAPIProvider() {
var receivedStoreAPI;
var setStoreAPI = function setStoreAPI(storeAPI) {
receivedStoreAPI = storeAPI;
};
var shareStoreAPI = function shareStoreAPI() {
if (!receivedStoreAPI) {
throw new Error('Store API to share has not been set');
}
var _receivedStoreAPI = receivedStoreAPI,
dispatch = _receivedStoreAPI.dispatch,
withProjection = _receivedStoreAPI.withProjection;
svelte.setContext(KEY_GET_SOURCE, withProjection);
svelte.setContext(KEY_DISPATCH, dispatch);
};
return {
setStoreAPI: setStoreAPI,
shareStoreAPI: shareStoreAPI
};
};
exports.createDispatch = createDispatch;
exports.createStoreAPIProvider = createStoreAPIProvider;
exports.withProjection = withProjection;
//# sourceMappingURL=provideStore.js.map