@credo-ts/core
Version:
<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1
35 lines (31 loc) • 916 B
JavaScript
import { JsonEncoder } from "../utils/JsonEncoder.mjs";
import "../utils/index.mjs";
//#region src/storage/StorageService.ts
function recordToCursor(record) {
return encodeCursor({
createdAt: record.createdAt instanceof Date ? record.createdAt : new Date(record.createdAt),
id: record.id
});
}
function encodeCursor(cursor) {
return JsonEncoder.toBase64Url(cursor);
}
function decodeCursor(cursor) {
try {
const decoded = JsonEncoder.fromBase64Url(cursor);
if (!decoded || typeof decoded !== "object") return null;
if (typeof decoded.id !== "string") return null;
if (!decoded.createdAt) return null;
const createdAt = new Date(decoded?.createdAt);
if (Number.isNaN(createdAt.getTime())) return null;
return {
id: decoded?.id,
createdAt
};
} catch {
return null;
}
}
//#endregion
export { decodeCursor, encodeCursor, recordToCursor };
//# sourceMappingURL=StorageService.mjs.map