@darwino/darwino-react
Version:
A set of Javascript classes and utilities
196 lines (170 loc) • 6.3 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
/*
* (c) Copyright Darwino Inc. 2014-2017.
*/
import queryString from 'query-string';
import { DEV_OPTIONS, JstoreCursor } from '@darwino/darwino';
var LOAD_ENTRIES = "LOAD_ENTRIES";
var LOAD_DOCUMENT = "LOAD_DOCUMENT";
var NEW_DOCUMENT = "NEW_DOCUMENT";
var CREATE_DOCUMENT = "CREATE_DOCUMENT";
var UPDATE_DOCUMENT = "UPDATE_DOCUMENT";
var DELETE_DOCUMENT = "DELETE_DOCUMENT";
var DELETEALL_DOCUMENTS = "DELETEALL_DOCUMENTS";
var REMOVE_DOCUMENT = "REMOVE_DOCUMENT";
function darwinoToStoreKey(database, store, query) {
return database + store + (query ? query : '');
} //
// Cursor Actions
//
var loadStoreEntries = (database, store, params) => ({
type: LOAD_ENTRIES,
payload: new JstoreCursor().database(database).store(store).queryParams(params).fetch(),
meta: {
database,
store,
params
}
}); //
// Document Actions
//
// Remove document from the store
var removeDocument = (database, store, unid) => ({
type: REMOVE_DOCUMENT,
meta: {
database,
store,
unid
}
}); // Document New
function dispatchNew(doc, docEvents) {
if (docEvents && docEvents.initialize) {
docEvents.initialize(doc, true);
}
return doc;
}
var newDocument = (database, store, unid, serverInit, docEvents) => ({
type: NEW_DOCUMENT,
payload: serverInit ? fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/newdocument").concat(unid ? '/' + encodeURIComponent(unid) : ''), {
credentials: DEV_OPTIONS.credentials
}).then(response => response.json()).then(json => dispatchNew(json, docEvents)) : dispatchNew({
unid,
store,
id: 0,
json: {}
}, docEvents),
meta: {
database,
store,
unid
}
}); // Document Load
function dispatchLoad(doc, docEvents) {
if (docEvents && docEvents.initialize) {
docEvents.initialize(doc, false);
}
return doc;
}
var loadDocument = (database, store, unid, docEvents) => ({
type: LOAD_DOCUMENT,
payload: fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/documents/").concat(encodeURIComponent(unid)), {
credentials: DEV_OPTIONS.credentials
}).then(response => response.json()).then(json => dispatchLoad(json, docEvents)),
meta: {
database,
store,
unid
}
}); // Document Save
function dispatchSave(content, docEvents) {
if (docEvents && docEvents.prepareForSave) {
content = _objectSpread({}, content);
docEvents.prepareForSave(content);
}
return content;
}
var createDocument = (database, store, unid, content, attachments, properties, docEvents) => ({
type: CREATE_DOCUMENT,
payload: fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/documents").concat(unid ? '/' + encodeURIComponent(unid) : ''), {
credentials: DEV_OPTIONS.credentials,
method: 'POST',
body: JSON.stringify({
json: dispatchSave(content, docEvents),
properties,
attachments
})
}).then(response => response.json()).then(json => dispatchLoad(json, docEvents)),
meta: {
database,
store,
unid
}
});
var updateDocument = (database, store, unid, content, attachments, properties, docEvents) => ({
type: UPDATE_DOCUMENT,
payload: fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/documents/").concat(encodeURIComponent(unid)), {
credentials: DEV_OPTIONS.credentials,
method: 'PUT',
body: JSON.stringify({
json: dispatchSave(content, docEvents),
properties: properties,
attachments
})
}).then(response => response.json()).then(json => dispatchLoad(json, docEvents)),
meta: {
database,
store,
unid
}
}); // Document Delete
function dispatchDelete(docEvents) {
if (docEvents && docEvents.initialize) {
docEvents.delete();
}
}
var deleteDocument = (database, store, unid, docEvents) => ({
type: DELETE_DOCUMENT,
payload: fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/documents/").concat(encodeURIComponent(unid)), {
credentials: DEV_OPTIONS.credentials,
method: 'DELETE'
}).then(() => dispatchDelete(docEvents)),
meta: {
database,
store,
unid
}
});
var deleteAllDocuments = (database, store, docEvents) => ({
type: DELETEALL_DOCUMENTS,
payload: fetch("".concat(DEV_OPTIONS.serverPrefix, "$darwino-jstore/databases/").concat(encodeURIComponent(database), "/stores/").concat(encodeURIComponent(store), "/documents"), {
credentials: DEV_OPTIONS.credentials,
method: 'DELETE'
}),
meta: {
database,
store
}
});
var StoreActions = {
LOAD_ENTRIES,
LOAD_DOCUMENT,
NEW_DOCUMENT,
CREATE_DOCUMENT,
UPDATE_DOCUMENT,
DELETE_DOCUMENT,
DELETEALL_DOCUMENTS,
REMOVE_DOCUMENT,
darwinoToStoreKey,
loadStoreEntries,
removeDocument,
newDocument,
loadDocument,
createDocument,
updateDocument,
deleteDocument,
deleteAllDocuments
};
export default StoreActions;
//# sourceMappingURL=StoreActions.js.map