@quenty/datastore 13.21.0-canary.ae8d76d.0 → 13.21.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/CHANGELOG.md +2 -2
- package/package.json +15 -15
- package/src/Server/DataStore.lua +18 -4
- package/src/Server/GameDataStoreService.lua +1 -1
- package/src/Server/Modules/DataStoreDeleteToken.lua +1 -1
- package/src/Server/Modules/DataStoreSnapshotUtils.lua +1 -1
- package/src/Server/Modules/DataStoreStage.lua +2 -2
- package/src/Server/Modules/DataStoreWriter.lua +4 -4
- package/src/Server/PlayerDataStoreManager.lua +3 -3
- package/src/Server/PlayerDataStoreService.lua +3 -3
- package/src/Server/PrivateServerDataStoreService.lua +2 -2
- package/src/Server/Utility/DataStorePromises.lua +10 -4
- package/test/scripts/Client/ClientMain.client.lua +1 -1
- package/test/scripts/Server/ServerMain.server.lua +5 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# [13.21.0
|
|
6
|
+
# [13.21.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/datastore@13.20.3...@quenty/datastore@13.21.0) (2025-05-10)
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
### Bug Fixes
|
|
@@ -13,7 +13,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
13
13
|
|
|
14
14
|
### Features
|
|
15
15
|
|
|
16
|
-
* Add even more types ([
|
|
16
|
+
* Add even more types ([b31717d](https://github.com/Quenty/NevermoreEngine/commit/b31717d8c9f7620c457f5018a2affa760a65334a))
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/datastore",
|
|
3
|
-
"version": "13.21.0
|
|
3
|
+
"version": "13.21.0",
|
|
4
4
|
"description": "Quenty's Datastore implementation for Roblox",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -26,22 +26,22 @@
|
|
|
26
26
|
"Quenty"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@quenty/baseobject": "10.
|
|
30
|
-
"@quenty/bindtocloseservice": "8.18.0
|
|
31
|
-
"@quenty/loader": "10.
|
|
32
|
-
"@quenty/maid": "3.
|
|
33
|
-
"@quenty/math": "2.7.3",
|
|
34
|
-
"@quenty/pagesutils": "5.12.0
|
|
35
|
-
"@quenty/promise": "10.11.0
|
|
36
|
-
"@quenty/rx": "13.18.0
|
|
37
|
-
"@quenty/servicebag": "11.12.0
|
|
38
|
-
"@quenty/signal": "7.
|
|
39
|
-
"@quenty/symbol": "3.
|
|
40
|
-
"@quenty/table": "3.
|
|
41
|
-
"@quenty/valueobject": "13.18.0
|
|
29
|
+
"@quenty/baseobject": "^10.9.0",
|
|
30
|
+
"@quenty/bindtocloseservice": "^8.18.0",
|
|
31
|
+
"@quenty/loader": "^10.9.0",
|
|
32
|
+
"@quenty/maid": "^3.5.0",
|
|
33
|
+
"@quenty/math": "^2.7.3",
|
|
34
|
+
"@quenty/pagesutils": "^5.12.0",
|
|
35
|
+
"@quenty/promise": "^10.11.0",
|
|
36
|
+
"@quenty/rx": "^13.18.0",
|
|
37
|
+
"@quenty/servicebag": "^11.12.0",
|
|
38
|
+
"@quenty/signal": "^7.11.0",
|
|
39
|
+
"@quenty/symbol": "^3.5.0",
|
|
40
|
+
"@quenty/table": "^3.8.0",
|
|
41
|
+
"@quenty/valueobject": "^13.18.0"
|
|
42
42
|
},
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "20cff952c2cf06b959f2f11d2293bdef38acc604"
|
|
47
47
|
}
|
package/src/Server/DataStore.lua
CHANGED
|
@@ -455,9 +455,16 @@ function DataStore._doDataSync(self: DataStore, writer, doMergeNewData: boolean)
|
|
|
455
455
|
end
|
|
456
456
|
|
|
457
457
|
function DataStore._promiseGetAsyncNoCache(self: DataStore): Promise.Promise<()>
|
|
458
|
-
return self._maid
|
|
458
|
+
return self._maid
|
|
459
|
+
:GivePromise(DataStorePromises.getAsync(self._robloxDataStore, self._key))
|
|
459
460
|
:Catch(function(err)
|
|
460
|
-
warn(
|
|
461
|
+
warn(
|
|
462
|
+
string.format(
|
|
463
|
+
"DataStorePromises.getAsync(%q) -> warning - %s",
|
|
464
|
+
tostring(self._key),
|
|
465
|
+
tostring(err or "empty error")
|
|
466
|
+
)
|
|
467
|
+
)
|
|
461
468
|
return Promise.rejected(err)
|
|
462
469
|
end)
|
|
463
470
|
:Then(function(data)
|
|
@@ -467,10 +474,17 @@ function DataStore._promiseGetAsyncNoCache(self: DataStore): Promise.Promise<()>
|
|
|
467
474
|
self:MergeDiffSnapshot(diffSnapshot)
|
|
468
475
|
|
|
469
476
|
if self._debugWriting then
|
|
470
|
-
print(
|
|
477
|
+
print(
|
|
478
|
+
string.format("DataStorePromises.getAsync(%q) -> Got ", tostring(self._key)),
|
|
479
|
+
data,
|
|
480
|
+
"with diff snapshot",
|
|
481
|
+
diffSnapshot,
|
|
482
|
+
"to view",
|
|
483
|
+
self._viewSnapshot
|
|
484
|
+
)
|
|
471
485
|
-- print(string.format("DataStorePromises.getAsync(%q) -> Got ", self._key), data)
|
|
472
486
|
end
|
|
473
487
|
end)
|
|
474
488
|
end
|
|
475
489
|
|
|
476
|
-
return DataStore
|
|
490
|
+
return DataStore
|
|
@@ -21,13 +21,13 @@ local BaseObject = require("BaseObject")
|
|
|
21
21
|
local DataStoreDeleteToken = require("DataStoreDeleteToken")
|
|
22
22
|
local DataStoreSnapshotUtils = require("DataStoreSnapshotUtils")
|
|
23
23
|
local DataStoreWriter = require("DataStoreWriter")
|
|
24
|
-
local Signal = require("Signal")
|
|
25
24
|
local Maid = require("Maid")
|
|
26
25
|
local Observable = require("Observable")
|
|
27
26
|
local ObservableSubscriptionTable = require("ObservableSubscriptionTable")
|
|
28
27
|
local Promise = require("Promise")
|
|
29
28
|
local PromiseUtils = require("PromiseUtils")
|
|
30
29
|
local Set = require("Set")
|
|
30
|
+
local Signal = require("Signal")
|
|
31
31
|
local Symbol = require("Symbol")
|
|
32
32
|
local Table = require("Table")
|
|
33
33
|
|
|
@@ -1082,4 +1082,4 @@ function DataStoreStage._checkIntegrity(self: DataStoreStage)
|
|
|
1082
1082
|
end
|
|
1083
1083
|
end
|
|
1084
1084
|
|
|
1085
|
-
return DataStoreStage
|
|
1085
|
+
return DataStoreStage
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
local require = require(script.Parent.loader).load(script)
|
|
9
9
|
|
|
10
|
-
local Table = require("Table")
|
|
11
10
|
local DataStoreDeleteToken = require("DataStoreDeleteToken")
|
|
12
|
-
local Symbol = require("Symbol")
|
|
13
|
-
local Set = require("Set")
|
|
14
11
|
local DataStoreSnapshotUtils = require("DataStoreSnapshotUtils")
|
|
12
|
+
local Set = require("Set")
|
|
13
|
+
local Symbol = require("Symbol")
|
|
14
|
+
local Table = require("Table")
|
|
15
15
|
|
|
16
16
|
local UNSET_TOKEN = Symbol.named("unsetValue")
|
|
17
17
|
|
|
@@ -328,4 +328,4 @@ function DataStoreWriter.IsCompleteWipe(self: DataStoreWriter): boolean
|
|
|
328
328
|
return false
|
|
329
329
|
end
|
|
330
330
|
|
|
331
|
-
return DataStoreWriter
|
|
331
|
+
return DataStoreWriter
|
|
@@ -56,10 +56,10 @@ local RunService = game:GetService("RunService")
|
|
|
56
56
|
|
|
57
57
|
local BaseObject = require("BaseObject")
|
|
58
58
|
local DataStore = require("DataStore")
|
|
59
|
-
local PromiseUtils = require("PromiseUtils")
|
|
60
|
-
local PendingPromiseTracker = require("PendingPromiseTracker")
|
|
61
59
|
local Maid = require("Maid")
|
|
60
|
+
local PendingPromiseTracker = require("PendingPromiseTracker")
|
|
62
61
|
local Promise = require("Promise")
|
|
62
|
+
local PromiseUtils = require("PromiseUtils")
|
|
63
63
|
|
|
64
64
|
local PlayerDataStoreManager = setmetatable({}, BaseObject)
|
|
65
65
|
PlayerDataStoreManager.ClassName = "PlayerDataStoreManager"
|
|
@@ -244,4 +244,4 @@ function PlayerDataStoreManager._getKey(self: PlayerDataStoreManager, player: Pl
|
|
|
244
244
|
return self._keyGenerator(player)
|
|
245
245
|
end
|
|
246
246
|
|
|
247
|
-
return PlayerDataStoreManager
|
|
247
|
+
return PlayerDataStoreManager
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
|
|
9
9
|
local require = require(script.Parent.loader).load(script)
|
|
10
10
|
|
|
11
|
-
local
|
|
11
|
+
local DataStore = require("DataStore")
|
|
12
12
|
local DataStorePromises = require("DataStorePromises")
|
|
13
|
-
local Promise = require("Promise")
|
|
14
13
|
local Maid = require("Maid")
|
|
14
|
+
local PlayerDataStoreManager = require("PlayerDataStoreManager")
|
|
15
|
+
local Promise = require("Promise")
|
|
15
16
|
local ServiceBag = require("ServiceBag")
|
|
16
|
-
local DataStore = require("DataStore")
|
|
17
17
|
|
|
18
18
|
local PlayerDataStoreService = {}
|
|
19
19
|
PlayerDataStoreService.ServiceName = "PlayerDataStoreService"
|
|
@@ -11,8 +11,8 @@ local require = require(script.Parent.loader).load(script)
|
|
|
11
11
|
local DataStore = require("DataStore")
|
|
12
12
|
local DataStorePromises = require("DataStorePromises")
|
|
13
13
|
local Maid = require("Maid")
|
|
14
|
-
local ServiceBag = require("ServiceBag")
|
|
15
14
|
local Promise = require("Promise")
|
|
15
|
+
local ServiceBag = require("ServiceBag")
|
|
16
16
|
|
|
17
17
|
local PrivateServerDataStoreService = {}
|
|
18
18
|
PrivateServerDataStoreService.ServiceName = "PrivateServerDataStoreService"
|
|
@@ -85,4 +85,4 @@ function PrivateServerDataStoreService:Destroy(): ()
|
|
|
85
85
|
self._maid:DoCleaning()
|
|
86
86
|
end
|
|
87
87
|
|
|
88
|
-
return PrivateServerDataStoreService
|
|
88
|
+
return PrivateServerDataStoreService
|
|
@@ -9,8 +9,8 @@ local require = require(script.Parent.loader).load(script)
|
|
|
9
9
|
|
|
10
10
|
local DataStoreService = game:GetService("DataStoreService")
|
|
11
11
|
|
|
12
|
-
local Promise = require("Promise")
|
|
13
12
|
local PagesUtils = require("PagesUtils")
|
|
13
|
+
local Promise = require("Promise")
|
|
14
14
|
local Table = require("Table")
|
|
15
15
|
|
|
16
16
|
local DataStorePromises = {}
|
|
@@ -260,7 +260,6 @@ local function areEquivalentPageData(data: { OrderedDataStoreEntry }, otherData:
|
|
|
260
260
|
return Table.deepEquivalent(map, otherMap)
|
|
261
261
|
end
|
|
262
262
|
|
|
263
|
-
|
|
264
263
|
--[=[
|
|
265
264
|
Returns a DataStorePages object. The sort order is determined by ascending,
|
|
266
265
|
the length of each page by pageSize, and minValue/maxValue are
|
|
@@ -274,7 +273,14 @@ end
|
|
|
274
273
|
@param maxValue number?
|
|
275
274
|
@return Promise<OrderedDataStoreEntry>
|
|
276
275
|
]=]
|
|
277
|
-
function DataStorePromises.promiseOrderedEntries(
|
|
276
|
+
function DataStorePromises.promiseOrderedEntries(
|
|
277
|
+
orderedDataStore: OrderedDataStore,
|
|
278
|
+
ascending: boolean,
|
|
279
|
+
pagesize: number,
|
|
280
|
+
entries: number,
|
|
281
|
+
minValue: number?,
|
|
282
|
+
maxValue: number?
|
|
283
|
+
): Promise.Promise<OrderedDataStoreEntry>
|
|
278
284
|
assert(typeof(orderedDataStore) == "Instance" and orderedDataStore:IsA("OrderedDataStore"), "Bad orderedDataStore")
|
|
279
285
|
assert(type(ascending) == "boolean", "Bad ascending")
|
|
280
286
|
assert(type(entries) == "number", "Bad entries")
|
|
@@ -322,4 +328,4 @@ function DataStorePromises.promiseOrderedEntries(orderedDataStore: OrderedDataSt
|
|
|
322
328
|
end)
|
|
323
329
|
end
|
|
324
330
|
|
|
325
|
-
return DataStorePromises
|
|
331
|
+
return DataStorePromises
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
@class ServerMain
|
|
3
3
|
]]
|
|
4
4
|
|
|
5
|
-
local ServerScriptService = game:GetService("ServerScriptService")
|
|
6
5
|
local HttpService = game:GetService("HttpService")
|
|
6
|
+
local ServerScriptService = game:GetService("ServerScriptService")
|
|
7
7
|
|
|
8
8
|
local loader = ServerScriptService:FindFirstChild("LoaderUtils", true).Parent
|
|
9
9
|
local require = require(loader).bootstrapGame(ServerScriptService.datastore)
|
|
@@ -48,7 +48,7 @@ local function spinUpGameCopy(prefix: string)
|
|
|
48
48
|
-- print(string.format("(%s) dataStore:Observe()", prefix), viewSnapshot)
|
|
49
49
|
-- end))
|
|
50
50
|
|
|
51
|
-
task.delay(4*TURN_TIME, function()
|
|
51
|
+
task.delay(4 * TURN_TIME, function()
|
|
52
52
|
warn("Blue server is restoring data")
|
|
53
53
|
|
|
54
54
|
substore:Store(guid, true)
|
|
@@ -71,8 +71,8 @@ local function spinUpGameCopy(prefix: string)
|
|
|
71
71
|
warn(string.format("%s server is adding substore data", prefix))
|
|
72
72
|
|
|
73
73
|
substore:Store(guid, {
|
|
74
|
-
playerCount = 5
|
|
75
|
-
startTime = DateTime.now().UnixTimestamp
|
|
74
|
+
playerCount = 5,
|
|
75
|
+
startTime = DateTime.now().UnixTimestamp,
|
|
76
76
|
})
|
|
77
77
|
-- dataStore:Save()
|
|
78
78
|
|
|
@@ -109,7 +109,6 @@ local function spinUpGameCopy(prefix: string)
|
|
|
109
109
|
substore:Delete(guid)
|
|
110
110
|
return Promise.resolved()
|
|
111
111
|
end))
|
|
112
|
-
|
|
113
112
|
end)
|
|
114
113
|
|
|
115
114
|
return maid
|
|
@@ -117,4 +116,4 @@ end
|
|
|
117
116
|
|
|
118
117
|
spinUpGameCopy("red")
|
|
119
118
|
spinUpGameCopy("blue")
|
|
120
|
-
spinUpGameCopy("green")
|
|
119
|
+
spinUpGameCopy("green")
|