sanity-plugin-dashboard-widget-document-list 0.0.13 → 3.0.0-studio-v3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +92 -48
- package/lib/index.d.ts +18 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +219 -12
- package/lib/index.js.map +1 -1
- package/lib/index.modern.js +217 -0
- package/lib/index.modern.js.map +1 -0
- package/package.json +49 -18
- package/src/DocumentList.tsx +153 -0
- package/src/index.tsx +17 -0
- package/src/sanityConnector.ts +67 -0
- package/lib/DocumentList.css +0 -34
- package/lib/DocumentList.js +0 -196
- package/lib/DocumentList.js.map +0 -1
- package/lib/sanityConnector.js +0 -64
- package/lib/sanityConnector.js.map +0 -1
- package/sanity.json +0 -12
package/lib/DocumentList.js
DELETED
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
|
-
var _router = require("part:@sanity/base/router");
|
|
13
|
-
|
|
14
|
-
var _preview = _interopRequireDefault(require("part:@sanity/base/preview"));
|
|
15
|
-
|
|
16
|
-
var _spinner = _interopRequireDefault(require("part:@sanity/components/loading/spinner"));
|
|
17
|
-
|
|
18
|
-
var _schema = _interopRequireDefault(require("part:@sanity/base/schema"));
|
|
19
|
-
|
|
20
|
-
var _intent = _interopRequireDefault(require("part:@sanity/components/buttons/intent"));
|
|
21
|
-
|
|
22
|
-
var _default2 = require("part:@sanity/components/lists/default");
|
|
23
|
-
|
|
24
|
-
var _draftUtils = require("part:@sanity/base/util/draft-utils");
|
|
25
|
-
|
|
26
|
-
var _lodash = require("lodash");
|
|
27
|
-
|
|
28
|
-
var _sanityConnector = require("./sanityConnector");
|
|
29
|
-
|
|
30
|
-
var _DocumentList = _interopRequireDefault(require("./DocumentList.css"));
|
|
31
|
-
|
|
32
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
-
|
|
34
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
35
|
-
|
|
36
|
-
var schemaTypeNames = _schema.default.getTypeNames();
|
|
37
|
-
|
|
38
|
-
class DocumentList extends _react.default.Component {
|
|
39
|
-
constructor() {
|
|
40
|
-
super(...arguments);
|
|
41
|
-
|
|
42
|
-
_defineProperty(this, "state", {
|
|
43
|
-
documents: null,
|
|
44
|
-
loading: true,
|
|
45
|
-
error: null
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
_defineProperty(this, "componentDidMount", () => {
|
|
49
|
-
var _this$props = this.props,
|
|
50
|
-
query = _this$props.query,
|
|
51
|
-
limit = _this$props.limit,
|
|
52
|
-
apiVersion = _this$props.apiVersion;
|
|
53
|
-
|
|
54
|
-
var _this$assembleQuery = this.assembleQuery(),
|
|
55
|
-
assembledQuery = _this$assembleQuery.assembledQuery,
|
|
56
|
-
params = _this$assembleQuery.params;
|
|
57
|
-
|
|
58
|
-
if (!assembledQuery) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
this.unsubscribe();
|
|
63
|
-
this.subscription = (0, _sanityConnector.getSubscription)(assembledQuery, params, apiVersion).subscribe({
|
|
64
|
-
next: documents => this.setState({
|
|
65
|
-
documents: documents.slice(0, limit),
|
|
66
|
-
loading: false
|
|
67
|
-
}),
|
|
68
|
-
error: _error => this.setState({
|
|
69
|
-
error: _error,
|
|
70
|
-
query,
|
|
71
|
-
loading: false
|
|
72
|
-
})
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
_defineProperty(this, "assembleQuery", () => {
|
|
77
|
-
var _this$props2 = this.props,
|
|
78
|
-
query = _this$props2.query,
|
|
79
|
-
queryParams = _this$props2.queryParams,
|
|
80
|
-
types = _this$props2.types,
|
|
81
|
-
order = _this$props2.order,
|
|
82
|
-
limit = _this$props2.limit;
|
|
83
|
-
|
|
84
|
-
if (query) {
|
|
85
|
-
return {
|
|
86
|
-
assembledQuery: query,
|
|
87
|
-
params: queryParams
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
var documentTypes = schemaTypeNames.filter(typeName => {
|
|
92
|
-
var schemaType = _schema.default.get(typeName);
|
|
93
|
-
|
|
94
|
-
return schemaType.type && schemaType.type.name === 'document';
|
|
95
|
-
});
|
|
96
|
-
return {
|
|
97
|
-
assembledQuery: "*[_type in $types] | order(".concat(order, ") [0...").concat(limit * 2, "]"),
|
|
98
|
-
params: {
|
|
99
|
-
types: types ? (0, _lodash.intersection)(types, documentTypes) : documentTypes
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
componentWillUnmount() {
|
|
106
|
-
this.unsubscribe();
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
unsubscribe() {
|
|
110
|
-
if (this.subscription) {
|
|
111
|
-
this.subscription.unsubscribe();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
render() {
|
|
116
|
-
var _this$props3 = this.props,
|
|
117
|
-
title = _this$props3.title,
|
|
118
|
-
types = _this$props3.types,
|
|
119
|
-
showCreateButton = _this$props3.showCreateButton,
|
|
120
|
-
createButtonText = _this$props3.createButtonText;
|
|
121
|
-
var _this$state = this.state,
|
|
122
|
-
documents = _this$state.documents,
|
|
123
|
-
loading = _this$state.loading,
|
|
124
|
-
error = _this$state.error;
|
|
125
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
126
|
-
className: _DocumentList.default.container
|
|
127
|
-
}, /*#__PURE__*/_react.default.createElement("header", {
|
|
128
|
-
className: _DocumentList.default.header
|
|
129
|
-
}, /*#__PURE__*/_react.default.createElement("h2", {
|
|
130
|
-
className: _DocumentList.default.title
|
|
131
|
-
}, title)), /*#__PURE__*/_react.default.createElement("div", {
|
|
132
|
-
className: _DocumentList.default.content
|
|
133
|
-
}, error && /*#__PURE__*/_react.default.createElement("div", null, error.message), !error && loading && /*#__PURE__*/_react.default.createElement(_spinner.default, {
|
|
134
|
-
center: true,
|
|
135
|
-
message: "Loading..."
|
|
136
|
-
}), !error && !documents && !loading && /*#__PURE__*/_react.default.createElement("div", null, "Could not locate any documents :/"), /*#__PURE__*/_react.default.createElement(_default2.List, null, documents && documents.map(doc => {
|
|
137
|
-
var type = _schema.default.get(doc._type);
|
|
138
|
-
|
|
139
|
-
return /*#__PURE__*/_react.default.createElement(_default2.Item, {
|
|
140
|
-
key: doc._id
|
|
141
|
-
}, /*#__PURE__*/_react.default.createElement(_router.IntentLink, {
|
|
142
|
-
intent: "edit",
|
|
143
|
-
params: {
|
|
144
|
-
type: doc._type,
|
|
145
|
-
id: (0, _draftUtils.getPublishedId)(doc._id)
|
|
146
|
-
},
|
|
147
|
-
className: _DocumentList.default.link
|
|
148
|
-
}, /*#__PURE__*/_react.default.createElement(_preview.default, {
|
|
149
|
-
layout: "default",
|
|
150
|
-
type: type,
|
|
151
|
-
value: doc,
|
|
152
|
-
key: doc._id
|
|
153
|
-
})));
|
|
154
|
-
}))), types && types.length === 1 && showCreateButton && /*#__PURE__*/_react.default.createElement("div", {
|
|
155
|
-
className: _DocumentList.default.footer
|
|
156
|
-
}, /*#__PURE__*/_react.default.createElement(_intent.default, {
|
|
157
|
-
bleed: true,
|
|
158
|
-
color: "primary",
|
|
159
|
-
kind: "simple",
|
|
160
|
-
intent: "create",
|
|
161
|
-
params: {
|
|
162
|
-
type: types[0]
|
|
163
|
-
}
|
|
164
|
-
}, createButtonText || "Create new ".concat(types[0]))));
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
_defineProperty(DocumentList, "propTypes", {
|
|
170
|
-
title: _propTypes.default.string,
|
|
171
|
-
types: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
172
|
-
query: _propTypes.default.string,
|
|
173
|
-
queryParams: _propTypes.default.object,
|
|
174
|
-
// eslint-disable-line react/forbid-prop-types
|
|
175
|
-
order: _propTypes.default.string,
|
|
176
|
-
limit: _propTypes.default.number,
|
|
177
|
-
showCreateButton: _propTypes.default.bool,
|
|
178
|
-
createButtonText: _propTypes.default.string,
|
|
179
|
-
apiVersion: _propTypes.default.string
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
_defineProperty(DocumentList, "defaultProps", {
|
|
183
|
-
title: 'Last created',
|
|
184
|
-
order: '_createdAt desc',
|
|
185
|
-
limit: 10,
|
|
186
|
-
types: null,
|
|
187
|
-
query: null,
|
|
188
|
-
queryParams: {},
|
|
189
|
-
showCreateButton: true,
|
|
190
|
-
createButtonText: null,
|
|
191
|
-
apiVersion: 'v1'
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
var _default = DocumentList;
|
|
195
|
-
exports.default = _default;
|
|
196
|
-
//# sourceMappingURL=DocumentList.js.map
|
package/lib/DocumentList.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/DocumentList.js"],"names":["schemaTypeNames","schema","getTypeNames","DocumentList","React","Component","documents","loading","error","props","query","limit","apiVersion","assembleQuery","assembledQuery","params","unsubscribe","subscription","subscribe","next","setState","slice","queryParams","types","order","documentTypes","filter","typeName","schemaType","get","type","name","componentWillUnmount","render","title","showCreateButton","createButtonText","state","styles","container","header","content","message","map","doc","_type","_id","id","link","length","footer","PropTypes","string","arrayOf","object","number","bool"],"mappings":"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","sourcesContent":["/* eslint-disable complexity */\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport {IntentLink} from 'part:@sanity/base/router'\nimport SanityPreview from 'part:@sanity/base/preview'\nimport Spinner from 'part:@sanity/components/loading/spinner'\nimport schema from 'part:@sanity/base/schema'\nimport IntentButton from 'part:@sanity/components/buttons/intent'\nimport {List, Item} from 'part:@sanity/components/lists/default'\nimport {getPublishedId} from 'part:@sanity/base/util/draft-utils'\nimport {intersection} from 'lodash'\nimport {getSubscription} from './sanityConnector'\nimport styles from './DocumentList.css'\n\nconst schemaTypeNames = schema.getTypeNames()\n\nclass DocumentList extends React.Component {\n\n state = {\n documents: null,\n loading: true,\n error: null\n }\n\n static propTypes = {\n title: PropTypes.string,\n types: PropTypes.arrayOf(PropTypes.string),\n query: PropTypes.string,\n queryParams: PropTypes.object, // eslint-disable-line react/forbid-prop-types\n order: PropTypes.string,\n limit: PropTypes.number,\n showCreateButton: PropTypes.bool,\n createButtonText: PropTypes.string,\n apiVersion: PropTypes.string\n }\n\n static defaultProps = {\n title: 'Last created',\n order: '_createdAt desc',\n limit: 10,\n types: null,\n query: null,\n queryParams: {},\n showCreateButton: true,\n createButtonText: null,\n apiVersion: 'v1'\n }\n\n componentDidMount = () => {\n const {query, limit, apiVersion} = this.props\n const {assembledQuery, params} = this.assembleQuery()\n if (!assembledQuery) {\n return\n }\n\n this.unsubscribe()\n this.subscription = getSubscription(assembledQuery, params, apiVersion)\n .subscribe({\n next: documents =>\n this.setState({documents: documents.slice(0, limit), loading: false}),\n error: error =>\n this.setState({error, query, loading: false})\n })\n }\n\n componentWillUnmount() {\n this.unsubscribe()\n }\n\n unsubscribe() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n }\n\n assembleQuery = () => {\n const {query, queryParams, types, order, limit} = this.props\n if (query) {\n return {assembledQuery: query, params: queryParams}\n }\n\n const documentTypes = schemaTypeNames.filter(typeName => {\n const schemaType = schema.get(typeName)\n return schemaType.type && schemaType.type.name === 'document'\n })\n\n return {\n assembledQuery: `*[_type in $types] | order(${order}) [0...${limit * 2}]`,\n params: {types: types ? intersection(types, documentTypes) : documentTypes}\n }\n }\n\n\n render() {\n const {title, types, showCreateButton, createButtonText} = this.props\n const {documents, loading, error} = this.state\n\n return (\n <div className={styles.container}>\n <header className={styles.header}>\n <h2 className={styles.title}>{title}</h2>\n </header>\n <div className={styles.content}>\n {error && <div>{error.message}</div>}\n {!error && loading && <Spinner center message=\"Loading...\" />}\n {(!error && !documents && !loading) && <div>Could not locate any documents :/</div>}\n <List>\n {documents && documents.map(doc => {\n const type = schema.get(doc._type)\n return (\n <Item key={doc._id}>\n <IntentLink\n intent=\"edit\"\n params={{\n type: doc._type,\n id: getPublishedId(doc._id)\n }}\n className={styles.link}\n >\n <SanityPreview layout=\"default\" type={type} value={doc} key={doc._id} />\n </IntentLink>\n </Item>\n )\n\n })}\n </List>\n </div>\n {types && types.length === 1 && showCreateButton && (\n <div className={styles.footer}>\n <IntentButton bleed color=\"primary\" kind=\"simple\" intent=\"create\" params={{type: types[0]}}>\n {createButtonText || `Create new ${types[0]}`}\n </IntentButton>\n </div>\n )}\n </div>\n )\n }\n}\n\nexport default DocumentList\n"],"file":"DocumentList.js"}
|
package/lib/sanityConnector.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _rxjs = require("rxjs");
|
|
4
|
-
|
|
5
|
-
var _operators = require("rxjs/operators");
|
|
6
|
-
|
|
7
|
-
var _lodash = require("lodash");
|
|
8
|
-
|
|
9
|
-
var _client = _interopRequireDefault(require("part:@sanity/base/client"));
|
|
10
|
-
|
|
11
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
|
|
13
|
-
var withConfig = config => {
|
|
14
|
-
return typeof _client.default.withConfig === 'function' ? _client.default.withConfig(config) : _client.default;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
var draftId = nonDraftDoc => "drafts.".concat(nonDraftDoc._id);
|
|
18
|
-
|
|
19
|
-
var prepareDocumentList = (incoming, apiVersion) => {
|
|
20
|
-
if (!incoming) {
|
|
21
|
-
return Promise.resolve([]);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
var documents = Array.isArray(incoming) ? incoming : [incoming];
|
|
25
|
-
var ids = documents.filter(doc => !doc._id.startsWith('drafts.')).map(draftId);
|
|
26
|
-
return withConfig({
|
|
27
|
-
apiVersion
|
|
28
|
-
}).fetch('*[_id in $ids]', {
|
|
29
|
-
ids
|
|
30
|
-
}).then(drafts => {
|
|
31
|
-
var outgoing = documents.map(doc => {
|
|
32
|
-
var foundDraft = drafts.find(draft => draft._id === draftId(doc));
|
|
33
|
-
return foundDraft || doc;
|
|
34
|
-
});
|
|
35
|
-
return (0, _lodash.uniqBy)(outgoing, '_id');
|
|
36
|
-
}).catch(error => {
|
|
37
|
-
throw new Error("Problems fetching docs ".concat(ids, ". Error: ").concat(error.message));
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
var getSubscription = (query, params, apiVersion) => withConfig({
|
|
42
|
-
apiVersion
|
|
43
|
-
}).listen(query, params, {
|
|
44
|
-
events: ['welcome', 'mutation'],
|
|
45
|
-
includeResult: false,
|
|
46
|
-
visibility: 'query'
|
|
47
|
-
}).pipe((0, _operators.switchMap)(event => {
|
|
48
|
-
return (0, _rxjs.of)(1).pipe(event.type === 'welcome' ? (0, _operators.tap)() : (0, _operators.delay)(1000), (0, _operators.mergeMap)(() => withConfig({
|
|
49
|
-
apiVersion
|
|
50
|
-
}).fetch(query, params).then(incoming => {
|
|
51
|
-
return prepareDocumentList(incoming, apiVersion);
|
|
52
|
-
}).catch(error => {
|
|
53
|
-
if (error.message.startsWith('Problems fetching docs')) {
|
|
54
|
-
throw error;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
throw new Error("Query failed ".concat(query, " and ").concat(JSON.stringify(params), ". Error: ").concat(error.message));
|
|
58
|
-
})));
|
|
59
|
-
}));
|
|
60
|
-
|
|
61
|
-
module.exports = {
|
|
62
|
-
getSubscription
|
|
63
|
-
};
|
|
64
|
-
//# sourceMappingURL=sanityConnector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sanityConnector.js"],"names":["withConfig","config","sanityClient","draftId","nonDraftDoc","_id","prepareDocumentList","incoming","apiVersion","Promise","resolve","documents","Array","isArray","ids","filter","doc","startsWith","map","fetch","then","drafts","outgoing","foundDraft","find","draft","catch","error","Error","message","getSubscription","query","params","listen","events","includeResult","visibility","pipe","event","type","JSON","stringify","module","exports"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,UAAU,GAAGC,MAAM,IAAI;AAC3B,SAAO,OAAOC,gBAAaF,UAApB,KAAmC,UAAnC,GACHE,gBAAaF,UAAb,CAAwBC,MAAxB,CADG,GAEHC,eAFJ;AAGD,CAJD;;AAMA,IAAMC,OAAO,GAAGC,WAAW,qBAAcA,WAAW,CAACC,GAA1B,CAA3B;;AAEA,IAAMC,mBAAmB,GAAG,CAACC,QAAD,EAAWC,UAAX,KAA0B;AACpD,MAAI,CAACD,QAAL,EAAe;AACb,WAAOE,OAAO,CAACC,OAAR,CAAgB,EAAhB,CAAP;AACD;;AACD,MAAMC,SAAS,GAAGC,KAAK,CAACC,OAAN,CAAcN,QAAd,IAA0BA,QAA1B,GAAqC,CAACA,QAAD,CAAvD;AAEA,MAAMO,GAAG,GAAGH,SAAS,CAClBI,MADS,CACFC,GAAG,IAAI,CAACA,GAAG,CAACX,GAAJ,CAAQY,UAAR,CAAmB,SAAnB,CADN,EAETC,GAFS,CAELf,OAFK,CAAZ;AAIA,SAAOH,UAAU,CAAC;AAACQ,IAAAA;AAAD,GAAD,CAAV,CAAyBW,KAAzB,CAA+B,gBAA/B,EAAiD;AAACL,IAAAA;AAAD,GAAjD,EACJM,IADI,CACCC,MAAM,IAAI;AACd,QAAMC,QAAQ,GAAGX,SAAS,CAACO,GAAV,CAAcF,GAAG,IAAI;AACpC,UAAMO,UAAU,GAAGF,MAAM,CAACG,IAAP,CAAYC,KAAK,IAAIA,KAAK,CAACpB,GAAN,KAAcF,OAAO,CAACa,GAAD,CAA1C,CAAnB;AACA,aAAOO,UAAU,IAAIP,GAArB;AACD,KAHgB,CAAjB;AAIA,WAAO,oBAAOM,QAAP,EAAiB,KAAjB,CAAP;AACD,GAPI,EAQJI,KARI,CAQEC,KAAK,IAAI;AACd,UAAM,IAAIC,KAAJ,kCAAoCd,GAApC,sBAAmDa,KAAK,CAACE,OAAzD,EAAN;AACD,GAVI,CAAP;AAWD,CArBD;;AAuBA,IAAMC,eAAe,GAAG,CAACC,KAAD,EAAQC,MAAR,EAAgBxB,UAAhB,KACtBR,UAAU,CAAC;AAACQ,EAAAA;AAAD,CAAD,CAAV,CACGyB,MADH,CACUF,KADV,EACiBC,MADjB,EACyB;AAACE,EAAAA,MAAM,EAAE,CAAC,SAAD,EAAY,UAAZ,CAAT;AAAkCC,EAAAA,aAAa,EAAE,KAAjD;AAAwDC,EAAAA,UAAU,EAAE;AAApE,CADzB,EAEGC,IAFH,CAEQ,0BAAUC,KAAK,IAAI;AACvB,SAAO,cAAa,CAAb,EAAgBD,IAAhB,CACLC,KAAK,CAACC,IAAN,KAAe,SAAf,GAA2B,qBAA3B,GAAmC,sBAAM,IAAN,CAD9B,EAEL,yBAAS,MAAMvC,UAAU,CAAC;AAACQ,IAAAA;AAAD,GAAD,CAAV,CAAyBW,KAAzB,CAA+BY,KAA/B,EAAsCC,MAAtC,EACZZ,IADY,CACPb,QAAQ,IAAI;AAChB,WAAOD,mBAAmB,CAACC,QAAD,EAAWC,UAAX,CAA1B;AACD,GAHY,EAIZkB,KAJY,CAINC,KAAK,IAAI;AACd,QAAIA,KAAK,CAACE,OAAN,CAAcZ,UAAd,CAAyB,wBAAzB,CAAJ,EAAwD;AACtD,YAAMU,KAAN;AACD;;AACD,UAAM,IAAIC,KAAJ,wBAA0BG,KAA1B,kBAAuCS,IAAI,CAACC,SAAL,CAAeT,MAAf,CAAvC,sBAAyEL,KAAK,CAACE,OAA/E,EAAN;AACD,GATY,CAAf,CAFK,CAAP;AAaD,CAdK,CAFR,CADF;;AAoBAa,MAAM,CAACC,OAAP,GAAiB;AACfb,EAAAA;AADe,CAAjB","sourcesContent":["import {of as observableOf} from 'rxjs'\nimport {switchMap, delay, tap, mergeMap} from 'rxjs/operators'\nimport {uniqBy} from 'lodash'\nimport sanityClient from 'part:@sanity/base/client'\n\nconst withConfig = config => {\n return typeof sanityClient.withConfig === 'function'\n ? sanityClient.withConfig(config)\n : sanityClient\n}\n\nconst draftId = nonDraftDoc => `drafts.${nonDraftDoc._id}`\n\nconst prepareDocumentList = (incoming, apiVersion) => {\n if (!incoming) {\n return Promise.resolve([])\n }\n const documents = Array.isArray(incoming) ? incoming : [incoming]\n\n const ids = documents\n .filter(doc => !doc._id.startsWith('drafts.'))\n .map(draftId)\n\n return withConfig({apiVersion}).fetch('*[_id in $ids]', {ids})\n .then(drafts => {\n const outgoing = documents.map(doc => {\n const foundDraft = drafts.find(draft => draft._id === draftId(doc))\n return foundDraft || doc\n })\n return uniqBy(outgoing, '_id')\n })\n .catch(error => {\n throw new Error(`Problems fetching docs ${ids}. Error: ${error.message}`)\n })\n}\n\nconst getSubscription = (query, params, apiVersion) =>\n withConfig({apiVersion})\n .listen(query, params, {events: ['welcome', 'mutation'], includeResult: false, visibility: 'query'})\n .pipe(switchMap(event => {\n return observableOf(1).pipe(\n event.type === 'welcome' ? tap() : delay(1000),\n mergeMap(() => withConfig({apiVersion}).fetch(query, params)\n .then(incoming => {\n return prepareDocumentList(incoming, apiVersion)\n })\n .catch(error => {\n if (error.message.startsWith('Problems fetching docs')) {\n throw error\n }\n throw new Error(`Query failed ${query} and ${JSON.stringify(params)}. Error: ${error.message}`)\n }))\n )\n }))\n\n\nmodule.exports = {\n getSubscription\n}\n"],"file":"sanityConnector.js"}
|