@budibase/shared-core 2.8.31 → 2.8.32-alpha.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.
Files changed (55) hide show
  1. package/package.json +11 -25
  2. package/src/constants.ts +6 -0
  3. package/src/index.ts +1 -0
  4. package/src/sdk/documents/applications.ts +35 -0
  5. package/src/sdk/documents/index.ts +2 -0
  6. package/src/sdk/documents/users.ts +62 -0
  7. package/src/sdk/index.ts +1 -0
  8. package/tsconfig.build.json +22 -5
  9. package/tsconfig.json +6 -3
  10. package/dist/cjs/src/constants.d.ts +0 -87
  11. package/dist/cjs/src/constants.js +0 -94
  12. package/dist/cjs/src/constants.js.map +0 -1
  13. package/dist/cjs/src/filters.d.ts +0 -94
  14. package/dist/cjs/src/filters.js +0 -367
  15. package/dist/cjs/src/filters.js.map +0 -1
  16. package/dist/cjs/src/helpers/helpers.d.ts +0 -29
  17. package/dist/cjs/src/helpers/helpers.js +0 -90
  18. package/dist/cjs/src/helpers/helpers.js.map +0 -1
  19. package/dist/cjs/src/helpers/index.d.ts +0 -2
  20. package/dist/cjs/src/helpers/index.js +0 -19
  21. package/dist/cjs/src/helpers/index.js.map +0 -1
  22. package/dist/cjs/src/helpers/integrations.d.ts +0 -3
  23. package/dist/cjs/src/helpers/integrations.js +0 -22
  24. package/dist/cjs/src/helpers/integrations.js.map +0 -1
  25. package/dist/cjs/src/index.d.ts +0 -4
  26. package/dist/cjs/src/index.js +0 -34
  27. package/dist/cjs/src/index.js.map +0 -1
  28. package/dist/cjs/src/tsconfig-cjs.build.tsbuildinfo +0 -1
  29. package/dist/cjs/src/utils.d.ts +0 -2
  30. package/dist/cjs/src/utils.js +0 -50
  31. package/dist/cjs/src/utils.js.map +0 -1
  32. package/dist/mjs/src/constants.d.ts +0 -87
  33. package/dist/mjs/src/constants.js +0 -91
  34. package/dist/mjs/src/constants.js.map +0 -1
  35. package/dist/mjs/src/filters.d.ts +0 -94
  36. package/dist/mjs/src/filters.js +0 -356
  37. package/dist/mjs/src/filters.js.map +0 -1
  38. package/dist/mjs/src/helpers/helpers.d.ts +0 -29
  39. package/dist/mjs/src/helpers/helpers.js +0 -82
  40. package/dist/mjs/src/helpers/helpers.js.map +0 -1
  41. package/dist/mjs/src/helpers/index.d.ts +0 -2
  42. package/dist/mjs/src/helpers/index.js +0 -3
  43. package/dist/mjs/src/helpers/index.js.map +0 -1
  44. package/dist/mjs/src/helpers/integrations.d.ts +0 -3
  45. package/dist/mjs/src/helpers/integrations.js +0 -17
  46. package/dist/mjs/src/helpers/integrations.js.map +0 -1
  47. package/dist/mjs/src/index.d.ts +0 -4
  48. package/dist/mjs/src/index.js +0 -5
  49. package/dist/mjs/src/index.js.map +0 -1
  50. package/dist/mjs/src/tsconfig.build.tsbuildinfo +0 -1
  51. package/dist/mjs/src/utils.d.ts +0 -2
  52. package/dist/mjs/src/utils.js +0 -34
  53. package/dist/mjs/src/utils.js.map +0 -1
  54. package/tsconfig-base.build.json +0 -25
  55. package/tsconfig-cjs.build.json +0 -8
@@ -1,356 +0,0 @@
1
- import { SortType } from "@budibase/types";
2
- import { OperatorOptions, SqlNumberTypeRangeMap } from "./constants";
3
- import { deepGet } from "./helpers";
4
- const HBS_REGEX = /{{([^{].*?)}}/g;
5
- /**
6
- * Returns the valid operator options for a certain data type
7
- * @param type the data type
8
- */
9
- export const getValidOperatorsForType = (type, field, datasource // TODO: is this table id ever populated?
10
- ) => {
11
- const Op = OperatorOptions;
12
- const stringOps = [
13
- Op.Equals,
14
- Op.NotEquals,
15
- Op.StartsWith,
16
- Op.Like,
17
- Op.Empty,
18
- Op.NotEmpty,
19
- Op.In,
20
- ];
21
- const numOps = [
22
- Op.Equals,
23
- Op.NotEquals,
24
- Op.MoreThan,
25
- Op.LessThan,
26
- Op.Empty,
27
- Op.NotEmpty,
28
- Op.In,
29
- ];
30
- let ops = [];
31
- if (type === "string") {
32
- ops = stringOps;
33
- }
34
- else if (type === "number" || type === "bigint") {
35
- ops = numOps;
36
- }
37
- else if (type === "options") {
38
- ops = [Op.Equals, Op.NotEquals, Op.Empty, Op.NotEmpty, Op.In];
39
- }
40
- else if (type === "array") {
41
- ops = [Op.Contains, Op.NotContains, Op.Empty, Op.NotEmpty, Op.ContainsAny];
42
- }
43
- else if (type === "boolean") {
44
- ops = [Op.Equals, Op.NotEquals, Op.Empty, Op.NotEmpty];
45
- }
46
- else if (type === "longform") {
47
- ops = stringOps;
48
- }
49
- else if (type === "datetime") {
50
- ops = numOps;
51
- }
52
- else if (type === "formula") {
53
- ops = stringOps.concat([Op.MoreThan, Op.LessThan]);
54
- }
55
- // Only allow equal/not equal for _id in SQL tables
56
- const externalTable = datasource?.tableId?.includes("datasource_plus");
57
- if (field === "_id" && externalTable) {
58
- ops = [Op.Equals, Op.NotEquals, Op.In];
59
- }
60
- return ops;
61
- };
62
- /**
63
- * Operators which do not support empty strings as values
64
- */
65
- export const NoEmptyFilterStrings = [
66
- OperatorOptions.StartsWith.value,
67
- OperatorOptions.Like.value,
68
- OperatorOptions.Equals.value,
69
- OperatorOptions.NotEquals.value,
70
- OperatorOptions.Contains.value,
71
- OperatorOptions.NotContains.value,
72
- ];
73
- /**
74
- * Removes any fields that contain empty strings that would cause inconsistent
75
- * behaviour with how backend tables are filtered (no value means no filter).
76
- */
77
- const cleanupQuery = (query) => {
78
- if (!query) {
79
- return query;
80
- }
81
- for (let filterField of NoEmptyFilterStrings) {
82
- if (!query[filterField]) {
83
- continue;
84
- }
85
- for (let [key, value] of Object.entries(query[filterField])) {
86
- if (value == null || value === "") {
87
- delete query[filterField][key];
88
- }
89
- }
90
- }
91
- return query;
92
- };
93
- /**
94
- * Removes a numeric prefix on field names designed to give fields uniqueness
95
- */
96
- const removeKeyNumbering = (key) => {
97
- if (typeof key === "string" && key.match(/\d[0-9]*:/g) != null) {
98
- const parts = key.split(":");
99
- parts.shift();
100
- return parts.join(":");
101
- }
102
- else {
103
- return key;
104
- }
105
- };
106
- /**
107
- * Builds a lucene JSON query from the filter structure generated in the builder
108
- * @param filter the builder filter structure
109
- */
110
- export const buildLuceneQuery = (filter) => {
111
- let query = {
112
- string: {},
113
- fuzzy: {},
114
- range: {},
115
- equal: {},
116
- notEqual: {},
117
- empty: {},
118
- notEmpty: {},
119
- contains: {},
120
- notContains: {},
121
- oneOf: {},
122
- containsAny: {},
123
- };
124
- if (Array.isArray(filter)) {
125
- filter.forEach(expression => {
126
- let { operator, field, type, value, externalType } = expression;
127
- const isHbs = typeof value === "string" && (value.match(HBS_REGEX) || []).length > 0;
128
- // Parse all values into correct types
129
- if (operator === "allOr") {
130
- query.allOr = true;
131
- return;
132
- }
133
- if (type === "datetime" &&
134
- !isHbs &&
135
- operator !== "empty" &&
136
- operator !== "notEmpty") {
137
- // Ensure date value is a valid date and parse into correct format
138
- if (!value) {
139
- return;
140
- }
141
- try {
142
- value = new Date(value).toISOString();
143
- }
144
- catch (error) {
145
- return;
146
- }
147
- }
148
- if (type === "number" && typeof value === "string") {
149
- if (operator === "oneOf") {
150
- value = value.split(",").map(item => parseFloat(item));
151
- }
152
- else if (!isHbs) {
153
- value = parseFloat(value);
154
- }
155
- }
156
- if (type === "boolean") {
157
- value = `${value}`?.toLowerCase() === "true";
158
- }
159
- if (["contains", "notContains", "containsAny"].includes(operator) &&
160
- type === "array" &&
161
- typeof value === "string") {
162
- value = value.split(",");
163
- }
164
- if (operator.startsWith("range") && query.range) {
165
- const minint = SqlNumberTypeRangeMap[externalType]?.min || Number.MIN_SAFE_INTEGER;
166
- const maxint = SqlNumberTypeRangeMap[externalType]?.max || Number.MAX_SAFE_INTEGER;
167
- if (!query.range[field]) {
168
- query.range[field] = {
169
- low: type === "number" ? minint : "0000-00-00T00:00:00.000Z",
170
- high: type === "number" ? maxint : "9999-00-00T00:00:00.000Z",
171
- };
172
- }
173
- if (operator === "rangeLow" && value != null && value !== "") {
174
- query.range[field].low = value;
175
- }
176
- else if (operator === "rangeHigh" &&
177
- value != null &&
178
- value !== "") {
179
- query.range[field].high = value;
180
- }
181
- }
182
- else if (query[operator]) {
183
- if (type === "boolean") {
184
- // Transform boolean filters to cope with null.
185
- // "equals false" needs to be "not equals true"
186
- // "not equals false" needs to be "equals true"
187
- if (operator === "equal" && value === false) {
188
- query.notEqual = query.notEqual || {};
189
- query.notEqual[field] = true;
190
- }
191
- else if (operator === "notEqual" && value === false) {
192
- query.equal = query.equal || {};
193
- query.equal[field] = true;
194
- }
195
- else {
196
- query[operator] = query[operator] || {};
197
- query[operator][field] = value;
198
- }
199
- }
200
- else {
201
- query[operator] = query[operator] || {};
202
- query[operator][field] = value;
203
- }
204
- }
205
- });
206
- }
207
- return query;
208
- };
209
- /**
210
- * Performs a client-side lucene search on an array of data
211
- * @param docs the data
212
- * @param query the JSON lucene query
213
- */
214
- export const runLuceneQuery = (docs, query) => {
215
- if (!docs || !Array.isArray(docs)) {
216
- return [];
217
- }
218
- if (!query) {
219
- return docs;
220
- }
221
- // Make query consistent first
222
- query = cleanupQuery(query);
223
- // Iterates over a set of filters and evaluates a fail function against a doc
224
- const match = (type, failFn) => (doc) => {
225
- const filters = Object.entries(query[type] || {});
226
- for (let i = 0; i < filters.length; i++) {
227
- const [key, testValue] = filters[i];
228
- const docValue = deepGet(doc, removeKeyNumbering(key));
229
- if (failFn(docValue, testValue)) {
230
- return false;
231
- }
232
- }
233
- return true;
234
- };
235
- // Process a string match (fails if the value does not start with the string)
236
- const stringMatch = match("string", (docValue, testValue) => {
237
- return (!docValue || !docValue?.toLowerCase().startsWith(testValue?.toLowerCase()));
238
- });
239
- // Process a fuzzy match (treat the same as starts with when running locally)
240
- const fuzzyMatch = match("fuzzy", (docValue, testValue) => {
241
- return (!docValue || !docValue?.toLowerCase().startsWith(testValue?.toLowerCase()));
242
- });
243
- // Process a range match
244
- const rangeMatch = match("range", (docValue, testValue) => {
245
- return (docValue == null ||
246
- docValue === "" ||
247
- +docValue < testValue.low ||
248
- +docValue > testValue.high);
249
- });
250
- // Process an equal match (fails if the value is different)
251
- const equalMatch = match("equal", (docValue, testValue) => {
252
- return testValue != null && testValue !== "" && docValue !== testValue;
253
- });
254
- // Process a not-equal match (fails if the value is the same)
255
- const notEqualMatch = match("notEqual", (docValue, testValue) => {
256
- return testValue != null && testValue !== "" && docValue === testValue;
257
- });
258
- // Process an empty match (fails if the value is not empty)
259
- const emptyMatch = match("empty", (docValue) => {
260
- return docValue != null && docValue !== "";
261
- });
262
- // Process a not-empty match (fails is the value is empty)
263
- const notEmptyMatch = match("notEmpty", (docValue) => {
264
- return docValue == null || docValue === "";
265
- });
266
- // Process an includes match (fails if the value is not included)
267
- const oneOf = match("oneOf", (docValue, testValue) => {
268
- if (typeof testValue === "string") {
269
- testValue = testValue.split(",");
270
- if (typeof docValue === "number") {
271
- testValue = testValue.map((item) => parseFloat(item));
272
- }
273
- }
274
- return !testValue?.includes(docValue);
275
- });
276
- const containsAny = match("containsAny", (docValue, testValue) => {
277
- return !docValue?.includes(...testValue);
278
- });
279
- const contains = match("contains", (docValue, testValue) => {
280
- return !testValue?.every((item) => docValue?.includes(item));
281
- });
282
- const notContains = match("notContains", (docValue, testValue) => {
283
- return testValue?.every((item) => docValue?.includes(item));
284
- });
285
- // Match a document against all criteria
286
- const docMatch = (doc) => {
287
- return (stringMatch(doc) &&
288
- fuzzyMatch(doc) &&
289
- rangeMatch(doc) &&
290
- equalMatch(doc) &&
291
- notEqualMatch(doc) &&
292
- emptyMatch(doc) &&
293
- notEmptyMatch(doc) &&
294
- oneOf(doc) &&
295
- contains(doc) &&
296
- containsAny(doc) &&
297
- notContains(doc));
298
- };
299
- // Process all docs
300
- return docs.filter(docMatch);
301
- };
302
- /**
303
- * Performs a client-side sort from the equivalent server-side lucene sort
304
- * parameters.
305
- * @param docs the data
306
- * @param sort the sort column
307
- * @param sortOrder the sort order ("ascending" or "descending")
308
- * @param sortType the type of sort ("string" or "number")
309
- */
310
- export const luceneSort = (docs, sort, sortOrder, sortType = SortType.STRING) => {
311
- if (!sort || !sortOrder || !sortType) {
312
- return docs;
313
- }
314
- const parse = sortType === "string" ? (x) => `${x}` : (x) => parseFloat(x);
315
- return docs
316
- .slice()
317
- .sort((a, b) => {
318
- const colA = parse(a[sort]);
319
- const colB = parse(b[sort]);
320
- if (sortOrder.toLowerCase() === "descending") {
321
- return colA > colB ? -1 : 1;
322
- }
323
- else {
324
- return colA > colB ? 1 : -1;
325
- }
326
- });
327
- };
328
- /**
329
- * Limits the specified docs to the specified number of rows from the equivalent
330
- * server-side lucene limit parameters.
331
- * @param docs the data
332
- * @param limit the number of docs to limit to
333
- */
334
- export const luceneLimit = (docs, limit) => {
335
- const numLimit = parseFloat(limit);
336
- if (isNaN(numLimit)) {
337
- return docs;
338
- }
339
- return docs.slice(0, numLimit);
340
- };
341
- export const hasFilters = (query) => {
342
- if (!query) {
343
- return false;
344
- }
345
- const skipped = ["allOr"];
346
- for (let [key, value] of Object.entries(query)) {
347
- if (skipped.includes(key) || typeof value !== "object") {
348
- continue;
349
- }
350
- if (Object.keys(value).length !== 0) {
351
- return true;
352
- }
353
- }
354
- return false;
355
- };
356
- //# sourceMappingURL=filters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/filters.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { User } from "@budibase/types";
2
- /**
3
- * Gets a key within an object. The key supports dot syntax for retrieving deep
4
- * fields - e.g. "a.b.c".
5
- * Exact matches of keys with dots in them take precedence over nested keys of
6
- * the same path - e.g. getting "a.b" from { "a.b": "foo", a: { b: "bar" } }
7
- * will return "foo" over "bar".
8
- * @param obj the object
9
- * @param key the key
10
- * @return {*|null} the value or null if a value was not found for this key
11
- */
12
- export declare const deepGet: (obj: {
13
- [x: string]: any;
14
- }, key: string) => any;
15
- /**
16
- * Gets the initials to show in a user avatar.
17
- * @param user the user
18
- */
19
- export declare const getUserInitials: (user: User) => string;
20
- /**
21
- * Gets a deterministic colour for a particular user
22
- * @param user the user
23
- */
24
- export declare const getUserColor: (user: User) => string;
25
- /**
26
- * Gets a friendly label to describe who a user is.
27
- * @param user the user
28
- */
29
- export declare const getUserLabel: (user: User) => string;
@@ -1,82 +0,0 @@
1
- /**
2
- * Gets a key within an object. The key supports dot syntax for retrieving deep
3
- * fields - e.g. "a.b.c".
4
- * Exact matches of keys with dots in them take precedence over nested keys of
5
- * the same path - e.g. getting "a.b" from { "a.b": "foo", a: { b: "bar" } }
6
- * will return "foo" over "bar".
7
- * @param obj the object
8
- * @param key the key
9
- * @return {*|null} the value or null if a value was not found for this key
10
- */
11
- export const deepGet = (obj, key) => {
12
- if (!obj || !key) {
13
- return null;
14
- }
15
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
16
- return obj[key];
17
- }
18
- const split = key.split(".");
19
- for (let i = 0; i < split.length; i++) {
20
- obj = obj?.[split[i]];
21
- }
22
- return obj;
23
- };
24
- /**
25
- * Gets the initials to show in a user avatar.
26
- * @param user the user
27
- */
28
- export const getUserInitials = (user) => {
29
- if (!user) {
30
- return "?";
31
- }
32
- let initials = "";
33
- initials += user.firstName ? user.firstName[0] : "";
34
- initials += user.lastName ? user.lastName[0] : "";
35
- if (initials !== "") {
36
- return initials;
37
- }
38
- return user.email?.[0] || "U";
39
- };
40
- /**
41
- * Gets a deterministic colour for a particular user
42
- * @param user the user
43
- */
44
- export const getUserColor = (user) => {
45
- let id = user?._id;
46
- if (!id) {
47
- return "var(--spectrum-global-color-blue-400)";
48
- }
49
- // In order to generate the same color for global users as app users, we need
50
- // to remove the app-specific table prefix
51
- id = id.replace("ro_ta_users_", "");
52
- // Generate a hue based on the ID
53
- let hue = 1;
54
- for (let i = 0; i < id.length; i++) {
55
- hue += id.charCodeAt(i);
56
- hue = hue % 36;
57
- }
58
- return `hsl(${hue * 10}, 50%, 40%)`;
59
- };
60
- /**
61
- * Gets a friendly label to describe who a user is.
62
- * @param user the user
63
- */
64
- export const getUserLabel = (user) => {
65
- if (!user) {
66
- return "";
67
- }
68
- const { firstName, lastName, email } = user;
69
- if (firstName && lastName) {
70
- return `${firstName} ${lastName}`;
71
- }
72
- else if (firstName) {
73
- return firstName;
74
- }
75
- else if (lastName) {
76
- return lastName;
77
- }
78
- else {
79
- return email;
80
- }
81
- };
82
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/helpers/helpers.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAyB,EAAE,GAAW,EAAE,EAAE;IAChE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;QAChB,OAAO,IAAI,CAAA;KACZ;IACD,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;QAClD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;KAChB;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,GAAG,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KACtB;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,EAAE;IAC5C,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,GAAG,CAAA;KACX;IACD,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACjD,IAAI,QAAQ,KAAK,EAAE,EAAE;QACnB,OAAO,QAAQ,CAAA;KAChB;IACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;AAC/B,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,EAAE;IACzC,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,CAAA;IAClB,IAAI,CAAC,EAAE,EAAE;QACP,OAAO,uCAAuC,CAAA;KAC/C;IAED,6EAA6E;IAC7E,0CAA0C;IAC1C,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IAEnC,iCAAiC;IACjC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAClC,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACvB,GAAG,GAAG,GAAG,GAAG,EAAE,CAAA;KACf;IACD,OAAO,OAAO,GAAG,GAAG,EAAE,aAAa,CAAA;AACrC,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,EAAE;IACzC,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAA;KACV;IACD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAC3C,IAAI,SAAS,IAAI,QAAQ,EAAE;QACzB,OAAO,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAA;KAClC;SAAM,IAAI,SAAS,EAAE;QACpB,OAAO,SAAS,CAAA;KACjB;SAAM,IAAI,QAAQ,EAAE;QACnB,OAAO,QAAQ,CAAA;KAChB;SAAM;QACL,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from "./helpers";
2
- export * from "./integrations";
@@ -1,3 +0,0 @@
1
- export * from "./helpers";
2
- export * from "./integrations";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA"}
@@ -1,3 +0,0 @@
1
- import { Datasource, SourceName } from "@budibase/types";
2
- export declare function isGoogleSheets(type: SourceName): boolean;
3
- export declare function isSQL(datasource: Datasource): boolean;
@@ -1,17 +0,0 @@
1
- import { SourceName } from "@budibase/types";
2
- export function isGoogleSheets(type) {
3
- return type === SourceName.GOOGLE_SHEETS;
4
- }
5
- export function isSQL(datasource) {
6
- if (!datasource || !datasource.source) {
7
- return false;
8
- }
9
- const SQL = [
10
- SourceName.POSTGRES,
11
- SourceName.SQL_SERVER,
12
- SourceName.MYSQL,
13
- SourceName.ORACLE,
14
- ];
15
- return SQL.indexOf(datasource.source) !== -1;
16
- }
17
- //# sourceMappingURL=integrations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../../../src/helpers/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAExD,MAAM,UAAU,cAAc,CAAC,IAAgB;IAC7C,OAAO,IAAI,KAAK,UAAU,CAAC,aAAa,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,UAAsB;IAC1C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACrC,OAAO,KAAK,CAAA;KACb;IACD,MAAM,GAAG,GAAG;QACV,UAAU,CAAC,QAAQ;QACnB,UAAU,CAAC,UAAU;QACrB,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,MAAM;KAClB,CAAA;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AAC9C,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from "./constants";
2
- export * as dataFilters from "./filters";
3
- export * as helpers from "./helpers";
4
- export * as utils from "./utils";
@@ -1,5 +0,0 @@
1
- export * from "./constants";
2
- export * as dataFilters from "./filters";
3
- export * as helpers from "./helpers";
4
- export * as utils from "./utils";
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,WAAW,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA"}