@signaldb/core 1.0.0 → 1.2.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 +2 -2
- package/dist/.vite/manifest.json +78 -64
- package/dist/Collection/index.d.ts +39 -16
- package/dist/Collection/types.d.ts +1 -1
- package/dist/devtools.d.ts +4 -0
- package/dist/index.cjs.js +19 -11
- package/dist/index.cjs10.js +27 -6
- package/dist/index.cjs11.js +6 -3
- package/dist/index.cjs12.js +3 -35
- package/dist/index.cjs13.js +141 -16
- package/dist/index.cjs14.js +38 -5
- package/dist/index.cjs15.js +2 -42
- package/dist/index.cjs16.js +5 -11
- package/dist/index.cjs17.js +40 -17
- package/dist/index.cjs18.js +11 -245
- package/dist/index.cjs19.js +16 -67
- package/dist/index.cjs2.js +104 -615
- package/dist/index.cjs20.js +251 -67
- package/dist/index.cjs21.js +68 -8
- package/dist/index.cjs22.js +83 -22
- package/dist/index.cjs23.js +8 -135
- package/dist/index.cjs24.js +25 -16
- package/dist/index.cjs25.js +144 -5
- package/dist/index.cjs26.js +5 -17
- package/dist/index.cjs27.js +15 -21
- package/dist/index.cjs28.js +21 -39
- package/dist/index.cjs29.js +40 -27
- package/dist/index.cjs3.js +669 -136
- package/dist/index.cjs30.js +27 -7
- package/dist/index.cjs31.js +9 -0
- package/dist/index.cjs4.js +166 -63
- package/dist/index.cjs5.js +66 -3
- package/dist/index.cjs6.js +2 -2
- package/dist/index.cjs7.js +2 -2
- package/dist/index.cjs8.js +2 -2
- package/dist/index.cjs9.js +3 -28
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +20 -12
- package/dist/index10.mjs +27 -6
- package/dist/index11.mjs +6 -3
- package/dist/index12.mjs +3 -34
- package/dist/index13.mjs +141 -16
- package/dist/index14.mjs +37 -5
- package/dist/index15.mjs +2 -41
- package/dist/index16.mjs +5 -11
- package/dist/index17.mjs +39 -17
- package/dist/index18.mjs +11 -244
- package/dist/index19.mjs +16 -66
- package/dist/index2.mjs +80 -615
- package/dist/index20.mjs +251 -67
- package/dist/index21.mjs +67 -8
- package/dist/index22.mjs +82 -22
- package/dist/index23.mjs +8 -135
- package/dist/index24.mjs +25 -15
- package/dist/index25.mjs +144 -5
- package/dist/index26.mjs +5 -17
- package/dist/index27.mjs +15 -21
- package/dist/index28.mjs +21 -39
- package/dist/index29.mjs +40 -27
- package/dist/index3.mjs +669 -136
- package/dist/index30.mjs +27 -7
- package/dist/index31.mjs +10 -0
- package/dist/index4.mjs +166 -62
- package/dist/index5.mjs +65 -3
- package/dist/index6.mjs +2 -2
- package/dist/index7.mjs +2 -2
- package/dist/index8.mjs +2 -2
- package/dist/index9.mjs +3 -28
- package/dist/persistence/combinePersistenceAdapters.d.ts +7 -7
- package/dist/types/MemoryAdapter.d.ts +2 -2
- package/dist/utils/EventEmitter.d.ts +75 -0
- package/dist/utils/deepClone.d.ts +2 -2
- package/dist/utils/set.d.ts +2 -2
- package/dist/utils/uniqueBy.d.ts +2 -2
- package/package.json +1 -1
- package/dist/types/EventEmitter.d.ts +0 -25
package/dist/index.cjs30.js
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
function set(object, path, value, deleteIfUndefined = false) {
|
|
3
|
+
if (object == null)
|
|
4
|
+
return object;
|
|
5
|
+
const segments = path.split(/[.[\]]/g);
|
|
6
|
+
if (segments[0] === "")
|
|
7
|
+
segments.shift();
|
|
8
|
+
if (segments.at(-1) === "")
|
|
9
|
+
segments.pop();
|
|
10
|
+
const apply = (node) => {
|
|
11
|
+
if (segments.length > 1) {
|
|
12
|
+
const key = segments.shift();
|
|
13
|
+
const nextIsNumber = !Number.isNaN(Number.parseInt(segments[0], 10));
|
|
14
|
+
if (node[key] === void 0) {
|
|
15
|
+
node[key] = nextIsNumber ? [] : {};
|
|
16
|
+
}
|
|
17
|
+
apply(node[key]);
|
|
18
|
+
} else {
|
|
19
|
+
if (deleteIfUndefined && value === void 0) {
|
|
20
|
+
delete node[segments[0]];
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
node[segments[0]] = value;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
apply(object);
|
|
27
|
+
return object;
|
|
8
28
|
}
|
|
9
|
-
module.exports =
|
|
29
|
+
module.exports = set;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
function uniqueBy(array, fn) {
|
|
3
|
+
const set = /* @__PURE__ */ new Set();
|
|
4
|
+
return array.filter((element) => {
|
|
5
|
+
const value = typeof fn === "function" ? fn(element) : element[fn];
|
|
6
|
+
return !set.has(value) && set.add(value);
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
module.exports = uniqueBy;
|
package/dist/index.cjs4.js
CHANGED
|
@@ -1,70 +1,173 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
const ReplicatedCollection = require("./index.cjs22.js");
|
|
6
|
+
const createSignal = require("./index.cjs19.js");
|
|
7
|
+
class AutoFetchCollection extends ReplicatedCollection.default {
|
|
8
|
+
/**
|
|
9
|
+
* @param options {Object} - Options for the collection.
|
|
10
|
+
* @param options.fetchQueryItems {Function} - A function that fetches items from the server. It takes the selector as an argument and returns a promise that resolves to an object with an `items` property.
|
|
11
|
+
* @param options.purgeDelay {Number} - The delay in milliseconds before purging an item from the cache.
|
|
12
|
+
*/
|
|
13
|
+
constructor(options) {
|
|
14
|
+
var _a;
|
|
15
|
+
let triggerRemoteChange;
|
|
16
|
+
super({
|
|
17
|
+
...options,
|
|
18
|
+
pull: () => Promise.resolve({
|
|
19
|
+
items: [...this.itemsCache.values()].reduce((memo, items) => {
|
|
20
|
+
const newItems = [...memo];
|
|
21
|
+
items.forEach((item) => {
|
|
22
|
+
const index = newItems.findIndex((i) => i.id === item.id);
|
|
23
|
+
if (index === -1) {
|
|
24
|
+
newItems.push(item);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
newItems[index] = this.mergeItems(newItems[index], item);
|
|
28
|
+
});
|
|
29
|
+
return newItems;
|
|
30
|
+
}, [])
|
|
31
|
+
}),
|
|
32
|
+
registerRemoteChange: async (onChange) => {
|
|
33
|
+
triggerRemoteChange = onChange;
|
|
16
34
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
});
|
|
36
|
+
__publicField(this, "activeObservers", /* @__PURE__ */ new Map());
|
|
37
|
+
__publicField(this, "observerTimeouts", /* @__PURE__ */ new Map());
|
|
38
|
+
__publicField(this, "purgeDelay");
|
|
39
|
+
__publicField(this, "idQueryCache", /* @__PURE__ */ new Map());
|
|
40
|
+
__publicField(this, "itemsCache", /* @__PURE__ */ new Map());
|
|
41
|
+
__publicField(this, "fetchQueryItems");
|
|
42
|
+
__publicField(this, "triggerReload", null);
|
|
43
|
+
__publicField(this, "reactivityAdapter", null);
|
|
44
|
+
__publicField(this, "loadingSignals", /* @__PURE__ */ new Map());
|
|
45
|
+
__publicField(this, "isFetchingSignal");
|
|
46
|
+
__publicField(this, "mergeItems");
|
|
47
|
+
this.mergeItems = options.mergeItems ?? ((itemA, itemB) => ({ ...itemA, ...itemB }));
|
|
48
|
+
this.purgeDelay = options.purgeDelay ?? 1e4;
|
|
49
|
+
this.isFetchingSignal = createSignal((_a = options.reactivity) == null ? void 0 : _a.create(), false);
|
|
50
|
+
if (!triggerRemoteChange)
|
|
51
|
+
throw new Error("No triggerRemoteChange method found. Looks like your persistence adapter was not registered");
|
|
52
|
+
this.triggerReload = triggerRemoteChange;
|
|
53
|
+
this.reactivityAdapter = options.reactivity ?? null;
|
|
54
|
+
this.fetchQueryItems = options.fetchQueryItems;
|
|
55
|
+
this.on("observer.created", (selector) => this.handleObserverCreation(selector ?? {}));
|
|
56
|
+
this.on("observer.disposed", (selector) => setTimeout(() => this.handleObserverDisposal(selector ?? {}), 100));
|
|
57
|
+
if (options.registerRemoteChange) {
|
|
58
|
+
void options.registerRemoteChange(() => this.forceRefetch());
|
|
33
59
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Registers a query manually that items should be fetched for it
|
|
63
|
+
* @param selector {Object} Selector of the query
|
|
64
|
+
*/
|
|
65
|
+
registerQuery(selector) {
|
|
66
|
+
this.handleObserverCreation(selector);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Unregisters a query manually that items are not fetched anymore for it
|
|
70
|
+
* @param selector {Object} Selector of the query
|
|
71
|
+
*/
|
|
72
|
+
unregisterQuery(selector) {
|
|
73
|
+
this.handleObserverDisposal(selector);
|
|
74
|
+
}
|
|
75
|
+
getKeyForSelector(selector) {
|
|
76
|
+
return JSON.stringify(selector);
|
|
77
|
+
}
|
|
78
|
+
async forceRefetch() {
|
|
79
|
+
return Promise.all([...this.activeObservers.values()].map(({ selector }) => this.fetchSelector(selector))).then(() => {
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
fetchSelector(selector) {
|
|
83
|
+
this.isFetchingSignal.set(true);
|
|
84
|
+
return this.fetchQueryItems(selector).then((response) => {
|
|
85
|
+
if (!response.items)
|
|
86
|
+
throw new Error("AutoFetchCollection currently only works with a full item response");
|
|
87
|
+
this.itemsCache.set(this.getKeyForSelector(selector), response.items);
|
|
88
|
+
response.items.forEach((item) => {
|
|
89
|
+
const queries = this.idQueryCache.get(item.id) ?? [];
|
|
90
|
+
queries.push(selector);
|
|
91
|
+
this.idQueryCache.set(item.id, queries);
|
|
92
|
+
});
|
|
93
|
+
this.setLoading(selector, true);
|
|
94
|
+
this.once("persistence.received", () => {
|
|
95
|
+
this.setLoading(selector, false);
|
|
49
96
|
});
|
|
97
|
+
if (!this.triggerReload)
|
|
98
|
+
throw new Error("No triggerReload method found. Looks like your persistence adapter was not registered");
|
|
99
|
+
void this.triggerReload();
|
|
100
|
+
}).catch((error) => {
|
|
101
|
+
this.emit("persistence.error", error);
|
|
102
|
+
}).finally(() => {
|
|
103
|
+
this.isFetchingSignal.set(false);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
handleObserverCreation(selector) {
|
|
107
|
+
var _a;
|
|
108
|
+
const activeObservers = ((_a = this.activeObservers.get(this.getKeyForSelector(selector))) == null ? void 0 : _a.count) ?? 0;
|
|
109
|
+
this.activeObservers.set(this.getKeyForSelector(selector), {
|
|
110
|
+
selector,
|
|
111
|
+
count: activeObservers + 1
|
|
112
|
+
});
|
|
113
|
+
const timeout = this.observerTimeouts.get(this.getKeyForSelector(selector));
|
|
114
|
+
if (timeout)
|
|
115
|
+
clearTimeout(timeout);
|
|
116
|
+
if (activeObservers === 0)
|
|
117
|
+
void this.fetchSelector(selector);
|
|
118
|
+
}
|
|
119
|
+
handleObserverDisposal(selector) {
|
|
120
|
+
var _a;
|
|
121
|
+
const currentObservers = ((_a = this.activeObservers.get(this.getKeyForSelector(selector))) == null ? void 0 : _a.count) ?? 0;
|
|
122
|
+
const activeObservers = currentObservers - 1;
|
|
123
|
+
if (activeObservers > 0) {
|
|
124
|
+
this.activeObservers.set(this.getKeyForSelector(selector), {
|
|
125
|
+
selector,
|
|
126
|
+
count: activeObservers
|
|
127
|
+
});
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const timeout = this.observerTimeouts.get(this.getKeyForSelector(selector));
|
|
131
|
+
if (timeout)
|
|
132
|
+
clearTimeout(timeout);
|
|
133
|
+
const removeObserver = () => {
|
|
134
|
+
this.activeObservers.delete(this.getKeyForSelector(selector));
|
|
135
|
+
this.itemsCache.delete(this.getKeyForSelector(selector));
|
|
136
|
+
if (!this.triggerReload)
|
|
137
|
+
throw new Error("No triggerReload method found. Looks like your persistence adapter was not registered");
|
|
138
|
+
void this.triggerReload();
|
|
139
|
+
};
|
|
140
|
+
if (this.purgeDelay === 0) {
|
|
141
|
+
removeObserver();
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
this.observerTimeouts.set(this.getKeyForSelector(selector), setTimeout(removeObserver, this.purgeDelay));
|
|
145
|
+
}
|
|
146
|
+
ensureSignal(selector) {
|
|
147
|
+
if (!this.reactivityAdapter)
|
|
148
|
+
throw new Error("No reactivity adapter found");
|
|
149
|
+
if (!this.loadingSignals.has(this.getKeyForSelector(selector))) {
|
|
150
|
+
this.loadingSignals.set(this.getKeyForSelector(selector), createSignal(this.reactivityAdapter.create(), false));
|
|
50
151
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
152
|
+
return this.loadingSignals.get(this.getKeyForSelector(selector));
|
|
153
|
+
}
|
|
154
|
+
setLoading(selector, value) {
|
|
155
|
+
const signal = this.ensureSignal(selector);
|
|
156
|
+
signal.set(value);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Indicates wether a query is currently been loaded
|
|
160
|
+
* ⚡️ this function is reactive!
|
|
161
|
+
* @param selector {Object} Selector of the query
|
|
162
|
+
* @returns The loading state
|
|
163
|
+
*/
|
|
164
|
+
isLoading(selector) {
|
|
165
|
+
const isPushing = this.isPushing();
|
|
166
|
+
if (!selector) {
|
|
167
|
+
return this.isFetchingSignal.get() || isPushing;
|
|
66
168
|
}
|
|
67
|
-
|
|
169
|
+
const signal = this.ensureSignal(selector);
|
|
170
|
+
return signal.get() || isPushing;
|
|
171
|
+
}
|
|
68
172
|
}
|
|
69
|
-
exports
|
|
70
|
-
exports.default = combinePersistenceAdapters;
|
|
173
|
+
module.exports = AutoFetchCollection;
|
package/dist/index.cjs5.js
CHANGED
|
@@ -1,5 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const createPersistenceAdapter = require("./index.cjs8.js");
|
|
4
|
+
function createTemporaryFallbackExecutor(firstResolvingPromiseFunction, secondResolvingPromiseFunction, options) {
|
|
5
|
+
const cacheTimeout = options == null ? void 0 : options.cacheTimeout;
|
|
6
|
+
let isResolved = false;
|
|
7
|
+
let resolvedValue = null;
|
|
8
|
+
let timeout = null;
|
|
9
|
+
let secondaryPromise = null;
|
|
10
|
+
return (...args) => {
|
|
11
|
+
if (secondaryPromise == null) {
|
|
12
|
+
if (timeout) {
|
|
13
|
+
clearTimeout(timeout);
|
|
14
|
+
timeout = null;
|
|
15
|
+
}
|
|
16
|
+
secondaryPromise = secondResolvingPromiseFunction(...args).then((result) => {
|
|
17
|
+
{
|
|
18
|
+
timeout = setTimeout(() => {
|
|
19
|
+
isResolved = false;
|
|
20
|
+
resolvedValue = null;
|
|
21
|
+
secondaryPromise = null;
|
|
22
|
+
}, cacheTimeout);
|
|
23
|
+
}
|
|
24
|
+
isResolved = true;
|
|
25
|
+
resolvedValue = result;
|
|
26
|
+
options.onResolve(resolvedValue);
|
|
27
|
+
return result;
|
|
28
|
+
});
|
|
29
|
+
} else if (isResolved) {
|
|
30
|
+
return secondaryPromise;
|
|
31
|
+
}
|
|
32
|
+
return firstResolvingPromiseFunction(...args);
|
|
33
|
+
};
|
|
4
34
|
}
|
|
5
|
-
|
|
35
|
+
function combinePersistenceAdapters(slowAdapter, fastAdapter) {
|
|
36
|
+
let handleChange = null;
|
|
37
|
+
const readExecutor = createTemporaryFallbackExecutor(() => fastAdapter.load(), () => slowAdapter.load(), {
|
|
38
|
+
cacheTimeout: 100,
|
|
39
|
+
onResolve: (result) => {
|
|
40
|
+
var _a, _b, _c;
|
|
41
|
+
if (handleChange)
|
|
42
|
+
void handleChange();
|
|
43
|
+
void fastAdapter.save(result.items || [], {
|
|
44
|
+
added: ((_a = result.changes) == null ? void 0 : _a.added) || [],
|
|
45
|
+
modified: ((_b = result.changes) == null ? void 0 : _b.modified) || [],
|
|
46
|
+
removed: ((_c = result.changes) == null ? void 0 : _c.removed) || []
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return createPersistenceAdapter({
|
|
51
|
+
async register(onChange) {
|
|
52
|
+
handleChange = onChange;
|
|
53
|
+
await Promise.all([slowAdapter.register(onChange), fastAdapter.register(onChange)]);
|
|
54
|
+
},
|
|
55
|
+
async load() {
|
|
56
|
+
const promise = readExecutor();
|
|
57
|
+
return promise;
|
|
58
|
+
},
|
|
59
|
+
async save(items, changes) {
|
|
60
|
+
await Promise.all([
|
|
61
|
+
fastAdapter.save(items, changes),
|
|
62
|
+
slowAdapter.save(items, changes)
|
|
63
|
+
]);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
exports.createTemporaryFallbackExecutor = createTemporaryFallbackExecutor;
|
|
68
|
+
exports.default = combinePersistenceAdapters;
|
package/dist/index.cjs6.js
CHANGED
package/dist/index.cjs7.js
CHANGED
package/dist/index.cjs8.js
CHANGED
package/dist/index.cjs9.js
CHANGED
|
@@ -1,30 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
return true;
|
|
5
|
-
if (a instanceof RegExp && b instanceof RegExp)
|
|
6
|
-
return a.toString() === b.toString();
|
|
7
|
-
if (a instanceof Date && b instanceof Date)
|
|
8
|
-
return a.getTime() === b.getTime();
|
|
9
|
-
if (typeof a !== "object")
|
|
10
|
-
return false;
|
|
11
|
-
if (typeof b !== "object")
|
|
12
|
-
return false;
|
|
13
|
-
if (a === null)
|
|
14
|
-
return false;
|
|
15
|
-
if (b === null)
|
|
16
|
-
return false;
|
|
17
|
-
const aKeys = Object.keys(a);
|
|
18
|
-
const bKeys = Object.keys(b);
|
|
19
|
-
if (aKeys.length !== bKeys.length)
|
|
20
|
-
return false;
|
|
21
|
-
for (let i = 0; i < aKeys.length; i += 1) {
|
|
22
|
-
const key = aKeys[i];
|
|
23
|
-
if (!bKeys.includes(key))
|
|
24
|
-
return false;
|
|
25
|
-
if (!isEqual(a[key], b[key]))
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
return true;
|
|
2
|
+
function createReactivityAdapter(definition) {
|
|
3
|
+
return definition;
|
|
29
4
|
}
|
|
30
|
-
module.exports =
|
|
5
|
+
module.exports = createReactivityAdapter;
|
package/dist/index.d.ts
CHANGED
|
@@ -14,3 +14,5 @@ export { default as createReactivityAdapter } from './createReactivityAdapter';
|
|
|
14
14
|
export { default as isEqual } from './utils/isEqual';
|
|
15
15
|
export { default as modify } from './utils/modify';
|
|
16
16
|
export { default as randomId } from './utils/randomId';
|
|
17
|
+
export { default as EventEmitter } from './utils/EventEmitter';
|
|
18
|
+
export { default as loadDeveloperTools } from './devtools';
|
package/dist/index.mjs
CHANGED
|
@@ -1,24 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { default as
|
|
3
|
-
import { default as
|
|
4
|
-
import { default as
|
|
5
|
-
import { default as
|
|
6
|
-
import { default as
|
|
7
|
-
import { default as
|
|
8
|
-
import { default as
|
|
9
|
-
import { default as
|
|
10
|
-
import { default as
|
|
11
|
-
import { default as
|
|
1
|
+
import loadDeveloperTools from "./index2.mjs";
|
|
2
|
+
import { default as default2 } from "./index3.mjs";
|
|
3
|
+
import { default as default3 } from "./index4.mjs";
|
|
4
|
+
import { default as default4 } from "./index5.mjs";
|
|
5
|
+
import { default as default5 } from "./index6.mjs";
|
|
6
|
+
import { default as default6 } from "./index7.mjs";
|
|
7
|
+
import { default as default7 } from "./index8.mjs";
|
|
8
|
+
import { default as default8 } from "./index9.mjs";
|
|
9
|
+
import { default as default9 } from "./index10.mjs";
|
|
10
|
+
import { default as default10 } from "./index11.mjs";
|
|
11
|
+
import { default as default11 } from "./index12.mjs";
|
|
12
|
+
import { default as default12 } from "./index13.mjs";
|
|
13
|
+
import { default as default13 } from "./index14.mjs";
|
|
14
|
+
/* istanbul ignore if -- @preserve */
|
|
15
|
+
if (process.env.NODE_ENV !== "production") {
|
|
16
|
+
loadDeveloperTools();
|
|
17
|
+
}
|
|
12
18
|
export {
|
|
13
19
|
default3 as AutoFetchCollection,
|
|
14
20
|
default2 as Collection,
|
|
21
|
+
default12 as EventEmitter,
|
|
15
22
|
default4 as combinePersistenceAdapters,
|
|
16
|
-
|
|
23
|
+
default13 as createIndex,
|
|
17
24
|
default5 as createIndexProvider,
|
|
18
25
|
default6 as createMemoryAdapter,
|
|
19
26
|
default7 as createPersistenceAdapter,
|
|
20
27
|
default8 as createReactivityAdapter,
|
|
21
28
|
default9 as isEqual,
|
|
29
|
+
loadDeveloperTools,
|
|
22
30
|
default10 as modify,
|
|
23
31
|
default11 as randomId
|
|
24
32
|
};
|
package/dist/index10.mjs
CHANGED
|
@@ -1,9 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
function isEqual(a, b) {
|
|
2
|
+
if (Object.is(a, b))
|
|
3
|
+
return true;
|
|
4
|
+
if (a instanceof RegExp && b instanceof RegExp)
|
|
5
|
+
return a.toString() === b.toString();
|
|
6
|
+
if (a instanceof Date && b instanceof Date)
|
|
7
|
+
return a.getTime() === b.getTime();
|
|
8
|
+
if (typeof a !== "object")
|
|
9
|
+
return false;
|
|
10
|
+
if (typeof b !== "object")
|
|
11
|
+
return false;
|
|
12
|
+
if (a === null)
|
|
13
|
+
return false;
|
|
14
|
+
if (b === null)
|
|
15
|
+
return false;
|
|
16
|
+
const aKeys = Object.keys(a);
|
|
17
|
+
const bKeys = Object.keys(b);
|
|
18
|
+
if (aKeys.length !== bKeys.length)
|
|
19
|
+
return false;
|
|
20
|
+
for (const key of aKeys) {
|
|
21
|
+
if (!bKeys.includes(key))
|
|
22
|
+
return false;
|
|
23
|
+
if (!isEqual(a[key], b[key]))
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
6
27
|
}
|
|
7
28
|
export {
|
|
8
|
-
|
|
29
|
+
isEqual as default
|
|
9
30
|
};
|
package/dist/index11.mjs
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { update } from "mingo";
|
|
2
|
+
function modify(item, modifier) {
|
|
3
|
+
const clonedItem = { ...item };
|
|
4
|
+
update(clonedItem, modifier);
|
|
5
|
+
return clonedItem;
|
|
3
6
|
}
|
|
4
7
|
export {
|
|
5
|
-
|
|
8
|
+
modify as default
|
|
6
9
|
};
|
package/dist/index12.mjs
CHANGED
|
@@ -1,37 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import getMatchingKeys from "./index27.mjs";
|
|
4
|
-
import serializeValue from "./index16.mjs";
|
|
5
|
-
function createExternalIndex(field, index) {
|
|
6
|
-
return createIndexProvider({
|
|
7
|
-
query(selector) {
|
|
8
|
-
const keys = getMatchingKeys(field, selector);
|
|
9
|
-
if (keys == null)
|
|
10
|
-
return { matched: false };
|
|
11
|
-
const itemPositions = keys.reduce((memo, key) => [...memo, ...index.get(key) || []], []);
|
|
12
|
-
return {
|
|
13
|
-
matched: true,
|
|
14
|
-
positions: itemPositions,
|
|
15
|
-
fields: [field]
|
|
16
|
-
};
|
|
17
|
-
},
|
|
18
|
-
rebuild() {
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
function createIndex(field) {
|
|
23
|
-
const index = /* @__PURE__ */ new Map();
|
|
24
|
-
return Object.assign(Object.assign({}, createExternalIndex(field, index)), { rebuild(items) {
|
|
25
|
-
index.clear();
|
|
26
|
-
items.forEach((item, i) => {
|
|
27
|
-
const value = serializeValue(get(item, field));
|
|
28
|
-
const current = index.get(value) || /* @__PURE__ */ new Set();
|
|
29
|
-
current.add(i);
|
|
30
|
-
index.set(value, current);
|
|
31
|
-
});
|
|
32
|
-
} });
|
|
1
|
+
function randomId() {
|
|
2
|
+
return Math.floor(Math.random() * 1e17).toString(16);
|
|
33
3
|
}
|
|
34
4
|
export {
|
|
35
|
-
|
|
36
|
-
createIndex as default
|
|
5
|
+
randomId as default
|
|
37
6
|
};
|