Uses atcute to show how you can do upserts with atproto records
1import * as TID from '@atcute/tid';
2
3const rightMeow = new Date();
4console.log(`It's ${rightMeow.toLocaleString()} or ${rightMeow.getTime()}`);
5
6//TIDs timestamps are in microseconds. Padding it a bit since we don't need that precision.
7const rightNowMicroSeconds = rightMeow * 1000;
8//Every TID needs a clock id, can be your favorite number even.
9const clockId = 23;
10
11const rightMeowTid = TID.create(rightNowMicroSeconds, clockId);
12console.log(`TID: ${rightMeowTid}`);
13const { timestamp} = TID.parse(rightMeowTid);
14
15//remove the padding
16const backToMilliSeconds = timestamp / 1000;
17//Get a readable timestamp for demo
18const rightNowConvertedBack = new Date(backToMilliSeconds);
19console.log(`Converted back: ${rightNowConvertedBack.toLocaleString()} or ${backToMilliSeconds}`);