UNPKG

16.4 kBJavaScriptView Raw
1"use strict";
2var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3 return new (P || (P = Promise))(function (resolve, reject) {
4 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7 step((generator = generator.apply(thisArg, _arguments || [])).next());
8 });
9};
10Object.defineProperty(exports, "__esModule", { value: true });
11const debug = require("debug");
12const rxjs_1 = require("rxjs");
13const Ops = require("rxjs/operators");
14const rxmq_1 = require("rxmq");
15const service_pb_1 = require("./proto/service_pb");
16const log = debug('treelab-ts-sdk:client');
17class Client {
18 constructor(client, metadata) {
19 this._serviceClient = client;
20 this._metadata = metadata;
21 }
22 unaryCall(call, request) {
23 return new Promise((resolve, reject) => {
24 call(request, (error, response) => {
25 if (error) {
26 return reject(error);
27 }
28 resolve(response);
29 });
30 });
31 }
32 createWorkspaceInput(obj) {
33 const createWorkspaceInput = new service_pb_1.CreateWorkspaceInput();
34 createWorkspaceInput.setName(obj.name);
35 return createWorkspaceInput;
36 }
37 addCoreInput(obj) {
38 const addCoreInput = new service_pb_1.AddCoreInput();
39 addCoreInput.setWorkspaceid(obj.workspaceid);
40 addCoreInput.setCorename(obj.corename);
41 addCoreInput.setColor(obj.color);
42 addCoreInput.setIcon(obj.icon);
43 return addCoreInput;
44 }
45 updateCoreInput(obj) {
46 const updateCoreInput = new service_pb_1.UpdateCoreInput();
47 updateCoreInput.setWorkspaceid(obj.workspaceid);
48 updateCoreInput.setCoreid(obj.coreid);
49 updateCoreInput.setCorename(obj.corename);
50 updateCoreInput.setColor(obj.color);
51 updateCoreInput.setIcon(obj.icon);
52 return updateCoreInput;
53 }
54 addTableInput(obj) {
55 const addTableInput = new service_pb_1.AddTableInput();
56 addTableInput.setWorkspaceid(obj.workspaceid);
57 addTableInput.setCoreid(obj.coreid);
58 addTableInput.setTablename(obj.tablename);
59 return addTableInput;
60 }
61 viewDefinitionInput(obj) {
62 const viewDefinitionInput = new service_pb_1.ViewDefinitionInput();
63 viewDefinitionInput.setName(obj.name);
64 viewDefinitionInput.setType(obj.type);
65 return viewDefinitionInput;
66 }
67 addViewInput(obj) {
68 const addViewInput = new service_pb_1.AddViewInput();
69 addViewInput.setWorkspaceid(obj.workspaceid);
70 addViewInput.setCoreid(obj.coreid);
71 addViewInput.setTableid(obj.tableid);
72 addViewInput.setView(this.viewDefinitionInput(obj.view));
73 return addViewInput;
74 }
75 choiceInput(obj) {
76 const choice = new service_pb_1.Choice();
77 if (!obj)
78 return choice;
79 choice.setId(obj.id);
80 choice.setColor(obj.color);
81 choice.setName(obj.name);
82 return choice;
83 }
84 columnConfigInput(obj) {
85 const columnConfig = new service_pb_1.ColumnConfigInput();
86 columnConfig.setType(obj.type);
87 columnConfig.setName(obj.name);
88 columnConfig.setOrder(obj.order);
89 columnConfig.setForeigntableid(obj.foreigntableid);
90 columnConfig.setDefaultnumber(obj.defaultnumber);
91 columnConfig.setPrecision(obj.precision);
92 columnConfig.setChoicesList(obj.choicesList ? obj.choicesList.map(i => this.choiceInput(i)) : []);
93 return columnConfig;
94 }
95 addColumnInput(obj) {
96 const addColumnInput = new service_pb_1.AddColumnInput();
97 addColumnInput.setWorkspaceid(obj.workspaceid);
98 addColumnInput.setCoreid(obj.coreid);
99 addColumnInput.setTableid(obj.tableid);
100 addColumnInput.setColumnconfig(this.columnConfigInput(obj.columnconfig));
101 return addColumnInput;
102 }
103 addRowInput(obj) {
104 const addRowInput = new service_pb_1.AddRowInput();
105 addRowInput.setWorkspaceid(obj.workspaceid);
106 addRowInput.setCoreid(obj.coreid);
107 addRowInput.setTableid(obj.tableid);
108 return addRowInput;
109 }
110 foreignRowVisibleNameValue(obj) {
111 const foreignRowVisibleNameValue = new service_pb_1.ForeignRowVisibleNameValue();
112 foreignRowVisibleNameValue.setValue(obj.value);
113 return foreignRowVisibleNameValue;
114 }
115 foreignRowValue(obj) {
116 const foreignRowValue = new service_pb_1.ForeignRowValue();
117 foreignRowValue.setId(obj.id);
118 foreignRowValue.setVisiblenameList(obj.visiblenameList.map(i => this.foreignRowVisibleNameValue(i)));
119 return foreignRowValue;
120 }
121 attachment(obj) {
122 const attachment = new service_pb_1.Attachment();
123 attachment.setName(obj.name);
124 attachment.setUrl(obj.url);
125 return attachment;
126 }
127 cellData(obj) {
128 const cellData = new service_pb_1.CellData();
129 cellData.setColumnid(obj.columnid);
130 cellData.setType(obj.type);
131 if (obj.text)
132 cellData.setText(obj.text);
133 if (obj.foreignrowList)
134 cellData.setForeignrowList(obj.foreignrowList.map(i => this.foreignRowValue(i)));
135 if (obj.number)
136 cellData.setNumber(obj.number);
137 if (obj.selecteditemsList)
138 cellData.setSelecteditemsList(obj.selecteditemsList.map(i => this.choiceInput(i)));
139 if (obj.selecteditem)
140 cellData.setSelecteditem(this.choiceInput(obj.selecteditem));
141 if (obj.attachmentsList)
142 cellData.setAttachmentsList(obj.attachmentsList.map(i => this.attachment(i)));
143 if (obj.datetime)
144 cellData.setDatetime(obj.datetime);
145 return cellData;
146 }
147 cellValueInput(obj) {
148 const cellValueInput = new service_pb_1.CellValueInput();
149 cellValueInput.setType(obj.type);
150 if (obj.text)
151 cellValueInput.setText(obj.text);
152 if (obj.foreignrowid)
153 cellValueInput.setForeignrowid(obj.foreignrowid);
154 if (obj.number)
155 cellValueInput.setNumber(obj.number);
156 if (obj.selecteditem)
157 cellValueInput.setSelecteditem(this.choiceInput(obj.selecteditem));
158 if (obj.selecteditemsList)
159 cellValueInput.setSelecteditemsList(obj.selecteditemsList.map(i => this.choiceInput(i)));
160 if (obj.attachmentsList)
161 cellValueInput.setAttachmentsList(obj.attachmentsList.map(i => this.attachment(i)));
162 if (obj.datetime)
163 cellValueInput.setDatetime(obj.datetime);
164 return cellValueInput;
165 }
166 updateCellInput(obj) {
167 const updateCellInput = new service_pb_1.UpdateCellInput();
168 updateCellInput.setWorkspaceid(obj.workspaceid);
169 updateCellInput.setCoreid(obj.coreid);
170 updateCellInput.setTableid(obj.tableid);
171 updateCellInput.setColumnid(obj.columnid);
172 updateCellInput.setRowid(obj.rowid);
173 updateCellInput.setAction(this.updateCellActionInput(obj.action));
174 return updateCellInput;
175 }
176 updateCellActionInput(obj) {
177 const updateCellActionInput = new service_pb_1.UpdateCellActionInput();
178 updateCellActionInput.setType(obj.type);
179 updateCellActionInput.setValue(this.cellValueInput(obj.value));
180 return updateCellActionInput;
181 }
182 workspaceSubscriptionInput(obj) {
183 const workspaceSubscriptionInput = new service_pb_1.WorkspaceSubscriptionInput();
184 workspaceSubscriptionInput.setWorkspaceid(obj.workspaceid);
185 workspaceSubscriptionInput.setTopic(obj.topic);
186 return workspaceSubscriptionInput;
187 }
188 getTableInput(obj) {
189 const getTableInput = new service_pb_1.GetTableInput();
190 getTableInput.setWorkspaceid(obj.workspaceid);
191 getTableInput.setCoreid(obj.coreid);
192 getTableInput.setTableid(obj.tableid);
193 return getTableInput;
194 }
195 getWorkspaceInput(obj) {
196 const getWorkspaceInput = new service_pb_1.GetWorkspaceInput();
197 getWorkspaceInput.setId(obj.id);
198 return getWorkspaceInput;
199 }
200 getCoreInput(obj) {
201 const getCoreInput = new service_pb_1.GetCoreInput();
202 getCoreInput.setWorkspaceid(obj.workspaceid);
203 getCoreInput.setCoreid(obj.coreid);
204 return getCoreInput;
205 }
206 getCoresInput(obj) {
207 const getCoresInput = new service_pb_1.GetCoresInput();
208 getCoresInput.setWorkspaceid(obj.workspaceid);
209 return getCoresInput;
210 }
211 getTablesInput(obj) {
212 const getTablesInput = new service_pb_1.GetTablesInput();
213 getTablesInput.setWorkspaceid(obj.workspaceid);
214 getTablesInput.setCoreid(obj.coreid);
215 return getTablesInput;
216 }
217 createWorkspace(input) {
218 return __awaiter(this, void 0, void 0, function* () {
219 return new Promise((resolve, reject) => {
220 this._serviceClient.createWorkspace(input, this._metadata, (err, result) => {
221 if (err) {
222 return reject(err);
223 }
224 resolve(result);
225 });
226 });
227 });
228 }
229 addCore(input) {
230 return __awaiter(this, void 0, void 0, function* () {
231 return new Promise((resolve, reject) => {
232 this._serviceClient.addCore(input, this._metadata, (err, result) => {
233 if (err) {
234 return reject(err);
235 }
236 resolve(result);
237 });
238 });
239 });
240 }
241 updateCore(input) {
242 return __awaiter(this, void 0, void 0, function* () {
243 return new Promise((resolve, reject) => {
244 this._serviceClient.updateCore(input, this._metadata, (err, result) => {
245 if (err) {
246 return reject(err);
247 }
248 resolve(result);
249 });
250 });
251 });
252 }
253 addTable(input) {
254 return __awaiter(this, void 0, void 0, function* () {
255 return new Promise((resolve, reject) => {
256 this._serviceClient.addTable(input, this._metadata, (err, result) => {
257 if (err) {
258 return reject(err);
259 }
260 resolve(result);
261 });
262 });
263 });
264 }
265 addView(input) {
266 return __awaiter(this, void 0, void 0, function* () {
267 return new Promise((resolve, reject) => {
268 this._serviceClient.addView(input, (err, result) => {
269 if (err) {
270 return reject(err);
271 }
272 resolve(result);
273 });
274 });
275 });
276 }
277 addColumn(input) {
278 return __awaiter(this, void 0, void 0, function* () {
279 return new Promise((resolve, reject) => {
280 this._serviceClient.addColumn(input, this._metadata, (err, result) => {
281 if (err) {
282 return reject(err);
283 }
284 resolve(result);
285 });
286 });
287 });
288 }
289 addRow(input) {
290 return __awaiter(this, void 0, void 0, function* () {
291 return new Promise((resolve, reject) => {
292 this._serviceClient.addRow(input, this._metadata, (err, result) => {
293 if (err) {
294 return reject(err);
295 }
296 resolve(result);
297 });
298 });
299 });
300 }
301 updateCell(input) {
302 return __awaiter(this, void 0, void 0, function* () {
303 return new Promise((resolve, reject) => {
304 this._serviceClient.updateCell(input, this._metadata, (err, result) => {
305 if (err) {
306 return reject(err);
307 }
308 resolve(result);
309 });
310 });
311 });
312 }
313 getWorkspaces() {
314 return __awaiter(this, void 0, void 0, function* () {
315 const input = new service_pb_1.EmptyInput();
316 return new Promise((resolve, reject) => {
317 this._serviceClient.getAllWorkspaces(input, this._metadata, (err, result) => {
318 if (err) {
319 return reject(err);
320 }
321 resolve(result);
322 });
323 });
324 });
325 }
326 getWorkspace(input) {
327 return __awaiter(this, void 0, void 0, function* () {
328 return new Promise((resolve, reject) => {
329 this._serviceClient.getWorkspace(input, this._metadata, (err, result) => {
330 if (err) {
331 return reject(err);
332 }
333 resolve(result);
334 });
335 });
336 });
337 }
338 getCore(input) {
339 return __awaiter(this, void 0, void 0, function* () {
340 return new Promise((resolve, reject) => {
341 this._serviceClient.getCore(input, this._metadata, (err, result) => {
342 if (err) {
343 return reject(err);
344 }
345 resolve(result);
346 });
347 });
348 });
349 }
350 getCores(input) {
351 return __awaiter(this, void 0, void 0, function* () {
352 return new Promise((resolve, reject) => {
353 this._serviceClient.getAllCores(input, this._metadata, (err, result) => {
354 if (err) {
355 return reject(err);
356 }
357 resolve(result);
358 });
359 });
360 });
361 }
362 getTable(input) {
363 return __awaiter(this, void 0, void 0, function* () {
364 return new Promise((resolve, reject) => {
365 this._serviceClient.getTable(input, this._metadata, (err, result) => {
366 if (err) {
367 return reject(err);
368 }
369 resolve(result);
370 });
371 });
372 });
373 }
374 getTables(input) {
375 return __awaiter(this, void 0, void 0, function* () {
376 return new Promise((resolve, reject) => {
377 this._serviceClient.getAllTables(input, this._metadata, (err, result) => {
378 if (err) {
379 return reject(err);
380 }
381 resolve(result);
382 });
383 });
384 });
385 }
386 subscribeToWorkspace(input) {
387 return new rxjs_1.Observable((observer) => {
388 log(`opening stream for subscription ${input.toString()}`);
389 const stream = this._serviceClient.subscribeToWorkspace(input, this._metadata);
390 stream.on('data', (eventPayload) => {
391 if (observer.closed) {
392 return;
393 }
394 observer.next(eventPayload);
395 });
396 stream.on('error', err => observer.error(err));
397 stream.on('end', () => observer.complete());
398 return () => {
399 log(`closing stream for subscription ${input.toString()}`);
400 stream.cancel();
401 };
402 });
403 }
404 observeEvent(workspaceId, topic) {
405 return rxmq_1.default.channel(workspaceId).observe(topic);
406 }
407 observeSpecifiedEvent({ workspaceId, coreId, tableId, rowId, columnId }, specifiedTopic) {
408 return this.observeEvent(workspaceId, '').pipe(Ops.filter((e) => {
409 if (!coreId)
410 return e.eventname.endsWith(specifiedTopic);
411 if (!tableId)
412 return e.eventname.startsWith(coreId) && e.eventname.endsWith(specifiedTopic);
413 return (e.eventname.startsWith(`${coreId}.${tableId}`) &&
414 (rowId ? e.rowid === rowId : true) &&
415 (columnId ? e.columnid === columnId : true) &&
416 e.eventname.endsWith(specifiedTopic));
417 }));
418 }
419}
420exports.Client = Client;
421//# sourceMappingURL=client.js.map
\No newline at end of file