Skip to content

Commit c302962

Browse files
committed
Use the unix time instead as shorter
1 parent ebeb383 commit c302962

File tree

2 files changed

+20
-21
lines changed

2 files changed

+20
-21
lines changed

src/__snapshots__/sql-cursor-pagination.test.ts.snap

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6099,7 +6099,7 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
60996099
{
61006100
"edges": [
61016101
{
6102-
"cursor": "qWIDywo8Rl5JFVR8PbE4avrrnn3nzUfyAoDe1bmnz_A.peApzMGipEv7qdRPeraULkDntlGs3jzzSXfTO0844SbARw55FvI9DVExhkzZQqjFXqcZingVwDtjbLqIMAb9imrX2g-TfU5uZMKycOMWyaxoe0_td6xYAxwqgqE",
6102+
"cursor": "HZTLrCVKXHMzAYEdWfgURQ7un1QyVeEPL6lAUVQ33ks.qQxXeujE6leOMjlBqlDpl83sYRqLghCcshcw785yfQunE0diEK-YldGzlgK4-Ni9E-pgrdAouIQPZXVFpeA3mjKaaRGDpjsfh-0MgQ",
61036103
"node": {
61046104
"admin": 0,
61056105
"created_at": 1970-01-19T13:42:23.417Z,
@@ -6111,7 +6111,7 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
61116111
},
61126112
},
61136113
{
6114-
"cursor": "cHd5PKookDvc0P9q8oi0BSxJxjJkY6FRTwsqWafjLZ8.YAXWYP7H8IsYyMv3dZx4TW_o4h2Fn8HwaXlIPQKcyPVef9PKxWABJZVbjF0Y8hd600AmKPdPKVkl7B8P9K2QekYzFK_B47C1uU6ZWDaE0QmLpdEFrEyMdV9AYEc",
6114+
"cursor": "9kuaH_geuEx9b7pqVk8UCfIgWu3F2E-EOtIO2mUrv54.wqA2-aCh9bJddA_EzjFahbpYTxgM8JXoFYl8Dr-iSQPw6O3TqbeoPq9_47xEON4wu3toImr3Q7Y4an7KDqmwPyaPu_ON4tmal5p5Sw",
61156115
"node": {
61166116
"admin": 1,
61176117
"created_at": 1970-01-19T21:08:52.719Z,
@@ -6123,7 +6123,7 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
61236123
},
61246124
},
61256125
{
6126-
"cursor": "gy1A_fKEUWvU0VS0tFndV9XLHcdIA5pgHxXlO74ArBU.l1apu5fAVtgM1M7cMboOxpnfJLvnYcxU3Blc0uE5KK1BxA4wQuByOlCnfNgSNz9d9rAkMNSNaotEdSkgSaQ41jsQ7546X5zmDK5SECHdJJmXK0DScDAUZHYzZzE",
6126+
"cursor": "-K9Y5xUBWrTdFz-dmNahvxztq1dwhM-isNGMB7NlOc4.6j7YrRISP6jDmoP_W4uEHzZ_nrwnBtiditLA6H7u4RpLVpXvKxyQ0k-X_pQdf-qeGSM3-BggrmunVnhy2ZFETGzuP9BDPNqhGELqTg",
61276127
"node": {
61286128
"admin": 1,
61296129
"created_at": 1970-01-20T01:45:59.350Z,
@@ -6135,7 +6135,7 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
61356135
},
61366136
},
61376137
{
6138-
"cursor": "gHfYIMbXWcV96xDGzfF2UZt7MlGcVH9C5UoBW6WLMLA.NJELaBjwP6gyYY9PI5VzRnMTcd_x-wrfz6bpT_WylUbOK9WA2DSrQCkplgCrfG8f8LWB7X1OVhLVbG3qPS7XcFNNmNxawaBSio-GwanlWDhf1cwH4aAYhzr9VRo",
6138+
"cursor": "6BLaEvR9FVRWrumkh9xu0Nl8kRThMiMs44dvLrzUfus.855Bup9aVIk40RtajQ72DHw1WmCto1QeUx9Rp5llU22HJzmhdmU93BwD1WHpZV3Dusq3Eef6GNhmKwEgwPFK840HRAnaYYy9bLHvXg",
61396139
"node": {
61406140
"admin": 0,
61416141
"created_at": 1970-01-20T05:48:58.189Z,
@@ -6147,7 +6147,7 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
61476147
},
61486148
},
61496149
{
6150-
"cursor": "3hmzBHhp3sfAyr-SP3O2te1916dubaKGvqrhkyyeYIU.GzliO7qp_3sFJaGndjb85HrZIuBsAFgRm-S-XGISNsZxRDAGca84BaSK-VbZQQMZPb2kMKoP0bvzQtoet2Rmvq0-MoskwTbbghnCq_IjcKuREsuZ0LSUbWNDRvw",
6150+
"cursor": "M7g1i1GiVPuiWGJvpXCnTOMBroEDAx6euOCo3-lVAr0.ltHPRQBF8AwVGmY7KojXc-mFSNvGCod9KQddayPzrYSYBO4MPCPqEsosakieakfA7iiaqvsRELYWdKUV1j0wAAjPD89iKsiieBy2Dg",
61516151
"node": {
61526152
"admin": 0,
61536153
"created_at": 1970-01-20T10:35:12.324Z,
@@ -6160,14 +6160,14 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
61606160
},
61616161
],
61626162
"pageInfo": {
6163-
"endCursor": "3hmzBHhp3sfAyr-SP3O2te1916dubaKGvqrhkyyeYIU.GzliO7qp_3sFJaGndjb85HrZIuBsAFgRm-S-XGISNsZxRDAGca84BaSK-VbZQQMZPb2kMKoP0bvzQtoet2Rmvq0-MoskwTbbghnCq_IjcKuREsuZ0LSUbWNDRvw",
6163+
"endCursor": "M7g1i1GiVPuiWGJvpXCnTOMBroEDAx6euOCo3-lVAr0.ltHPRQBF8AwVGmY7KojXc-mFSNvGCod9KQddayPzrYSYBO4MPCPqEsosakieakfA7iiaqvsRELYWdKUV1j0wAAjPD89iKsiieBy2Dg",
61646164
"hasNextPage": false,
61656165
"hasPreviousPage": false,
6166-
"startCursor": "qWIDywo8Rl5JFVR8PbE4avrrnn3nzUfyAoDe1bmnz_A.peApzMGipEv7qdRPeraULkDntlGs3jzzSXfTO0844SbARw55FvI9DVExhkzZQqjFXqcZingVwDtjbLqIMAb9imrX2g-TfU5uZMKycOMWyaxoe0_td6xYAxwqgqE",
6166+
"startCursor": "HZTLrCVKXHMzAYEdWfgURQ7un1QyVeEPL6lAUVQ33ks.qQxXeujE6leOMjlBqlDpl83sYRqLghCcshcw785yfQunE0diEK-YldGzlgK4-Ni9E-pgrdAouIQPZXVFpeA3mjKaaRGDpjsfh-0MgQ",
61676167
},
61686168
Symbol(edgesWithRawCursor): [
61696169
{
6170-
"cursor": "qWIDywo8Rl5JFVR8PbE4avrrnn3nzUfyAoDe1bmnz_A.peApzMGipEv7qdRPeraULkDntlGs3jzzSXfTO0844SbARw55FvI9DVExhkzZQqjFXqcZingVwDtjbLqIMAb9imrX2g-TfU5uZMKycOMWyaxoe0_td6xYAxwqgqE",
6170+
"cursor": "HZTLrCVKXHMzAYEdWfgURQ7un1QyVeEPL6lAUVQ33ks.qQxXeujE6leOMjlBqlDpl83sYRqLghCcshcw785yfQunE0diEK-YldGzlgK4-Ni9E-pgrdAouIQPZXVFpeA3mjKaaRGDpjsfh-0MgQ",
61716171
"node": {
61726172
"admin": 0,
61736173
"created_at": 1970-01-19T13:42:23.417Z,
@@ -6179,13 +6179,13 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
61796179
},
61806180
"rawCursor": {
61816181
"fields": {
6182-
"created_at": "1970-01-19T13:42:23.417Z",
6182+
"created_at": 1604543417,
61836183
},
61846184
"queryName": "TestQuery",
61856185
},
61866186
},
61876187
{
6188-
"cursor": "cHd5PKookDvc0P9q8oi0BSxJxjJkY6FRTwsqWafjLZ8.YAXWYP7H8IsYyMv3dZx4TW_o4h2Fn8HwaXlIPQKcyPVef9PKxWABJZVbjF0Y8hd600AmKPdPKVkl7B8P9K2QekYzFK_B47C1uU6ZWDaE0QmLpdEFrEyMdV9AYEc",
6188+
"cursor": "9kuaH_geuEx9b7pqVk8UCfIgWu3F2E-EOtIO2mUrv54.wqA2-aCh9bJddA_EzjFahbpYTxgM8JXoFYl8Dr-iSQPw6O3TqbeoPq9_47xEON4wu3toImr3Q7Y4an7KDqmwPyaPu_ON4tmal5p5Sw",
61896189
"node": {
61906190
"admin": 1,
61916191
"created_at": 1970-01-19T21:08:52.719Z,
@@ -6197,13 +6197,13 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
61976197
},
61986198
"rawCursor": {
61996199
"fields": {
6200-
"created_at": "1970-01-19T21:08:52.719Z",
6200+
"created_at": 1631332719,
62016201
},
62026202
"queryName": "TestQuery",
62036203
},
62046204
},
62056205
{
6206-
"cursor": "gy1A_fKEUWvU0VS0tFndV9XLHcdIA5pgHxXlO74ArBU.l1apu5fAVtgM1M7cMboOxpnfJLvnYcxU3Blc0uE5KK1BxA4wQuByOlCnfNgSNz9d9rAkMNSNaotEdSkgSaQ41jsQ7546X5zmDK5SECHdJJmXK0DScDAUZHYzZzE",
6206+
"cursor": "-K9Y5xUBWrTdFz-dmNahvxztq1dwhM-isNGMB7NlOc4.6j7YrRISP6jDmoP_W4uEHzZ_nrwnBtiditLA6H7u4RpLVpXvKxyQ0k-X_pQdf-qeGSM3-BggrmunVnhy2ZFETGzuP9BDPNqhGELqTg",
62076207
"node": {
62086208
"admin": 1,
62096209
"created_at": 1970-01-20T01:45:59.350Z,
@@ -6215,13 +6215,13 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
62156215
},
62166216
"rawCursor": {
62176217
"fields": {
6218-
"created_at": "1970-01-20T01:45:59.350Z",
6218+
"created_at": 1647959350,
62196219
},
62206220
"queryName": "TestQuery",
62216221
},
62226222
},
62236223
{
6224-
"cursor": "gHfYIMbXWcV96xDGzfF2UZt7MlGcVH9C5UoBW6WLMLA.NJELaBjwP6gyYY9PI5VzRnMTcd_x-wrfz6bpT_WylUbOK9WA2DSrQCkplgCrfG8f8LWB7X1OVhLVbG3qPS7XcFNNmNxawaBSio-GwanlWDhf1cwH4aAYhzr9VRo",
6224+
"cursor": "6BLaEvR9FVRWrumkh9xu0Nl8kRThMiMs44dvLrzUfus.855Bup9aVIk40RtajQ72DHw1WmCto1QeUx9Rp5llU22HJzmhdmU93BwD1WHpZV3Dusq3Eef6GNhmKwEgwPFK840HRAnaYYy9bLHvXg",
62256225
"node": {
62266226
"admin": 0,
62276227
"created_at": 1970-01-20T05:48:58.189Z,
@@ -6233,13 +6233,13 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
62336233
},
62346234
"rawCursor": {
62356235
"fields": {
6236-
"created_at": "1970-01-20T05:48:58.189Z",
6236+
"created_at": 1662538189,
62376237
},
62386238
"queryName": "TestQuery",
62396239
},
62406240
},
62416241
{
6242-
"cursor": "3hmzBHhp3sfAyr-SP3O2te1916dubaKGvqrhkyyeYIU.GzliO7qp_3sFJaGndjb85HrZIuBsAFgRm-S-XGISNsZxRDAGca84BaSK-VbZQQMZPb2kMKoP0bvzQtoet2Rmvq0-MoskwTbbghnCq_IjcKuREsuZ0LSUbWNDRvw",
6242+
"cursor": "M7g1i1GiVPuiWGJvpXCnTOMBroEDAx6euOCo3-lVAr0.ltHPRQBF8AwVGmY7KojXc-mFSNvGCod9KQddayPzrYSYBO4MPCPqEsosakieakfA7iiaqvsRELYWdKUV1j0wAAjPD89iKsiieBy2Dg",
62436243
"node": {
62446244
"admin": 0,
62456245
"created_at": 1970-01-20T10:35:12.324Z,
@@ -6251,7 +6251,7 @@ exports[`SqlCursorPagination > supports \`Date\` objects 14`] = `
62516251
},
62526252
"rawCursor": {
62536253
"fields": {
6254-
"created_at": "1970-01-20T10:35:12.324Z",
6254+
"created_at": 1679712324,
62556255
},
62566256
"queryName": "TestQuery",
62576257
},

src/cursor.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,11 @@ export function buildCursor<TNode extends Record<string, unknown>>({
157157
}
158158
const value = node[alias];
159159
if (value instanceof Date) {
160-
try {
161-
const resolved = value.toISOString();
162-
fields[alias] = resolved;
163-
} catch (e) {
160+
const resolved = value.getTime();
161+
if (!Number.isFinite(resolved)) {
164162
throw new ErrUnexpected(`Invalid date in "${alias}" field`);
165163
}
164+
fields[alias] = resolved;
166165
} else {
167166
fields[alias] = FieldValue.parse(value);
168167
}

0 commit comments

Comments
 (0)