d664b51c64
* rm tables * rm event-stream & proxied * Remove appview services, move label service to pds * only proxy appview stuff * delete more tables * Start removing message dispatched from pds * more syncing-up removal of message dispatcher in pds * merged * remove feedgens from pds, remove getPopular * remove unused image helper from pds * fixing compiler errors * clean up sharp * rm label service * first pass on cleaning up tests * fix up a bunch of tests * moderation view tests * last admin tests * got a lil overzealous in deletes * clean up unused cfg * clean up label table * simplify admin repo search query/logic * tidy pds entrypoint * in-progress pds config changes * cfg fiddling * finish cleaning up cfg/ctx * comments * building * pds prefix on env * test env * collapse pds migrations down into a single migration * fix up dev-env * tidy * cleanup * fix pds admin tests * fix handle test * fix pds proxy tests * fix subscribe repos test * fix sqlite config in pds tests * add sqlite clause in sequencer-leader * fix actor search w/ sqlite on pds * fixes * fix dev env build * update pds service entrypoint * simple env example * make takedown ids opaque identifiers in the pds * use pds routes for api tests * update pds dockerfile with volume and correct port env var * add a couple env vars to example * add comments to env example * @atproto/pds 0.2.0-beta.0 * @atproto/aws 0.0.1-beta.0 * appview did * @atproto/aws 0.0.1 * enable logs by default * update env example * bugfixing sandbox issues * consistency in pds env var name for appview url * log on pds start and stop, configure version at runtime * @atproto/pds 0.2.0-beta.1 * fix semver matching for pds beta version * v0.2.0-beta.2 * default invites to being not required * fix flaky test * limit db connections in tests * publish 0.2.0-beta.d3 * fix invite required parsing * @atproto/pds 0.2.0-beta.5 * Proxy getPopularFeedGenerators on simplified pds (#1222) proxy getPopularFeedGenerators on pds Co-authored-by: dholms <dtholmgren@gmail.com> * tidy migrations * fix service entry * bump version * change auth order * bump version * bump version * add upgradeRepoVersion & fallback url for cdn * bump version * merging * merge pds * building dev-env * merging tests * merge service entry * test fixing * tidy * fix admin search * tidy * tidy * add snap for getListFeed * add backup nameserver cfg * tidy + pr feedback * tidy * tidy env * bit more * re-add dotenv to root package.json * fix dep * build branch * fix tests * Refactor tests to make better use of dev-env (#1690) * refactor pds tests to use dev env * refactor bsky tests * fix pds test * tidy bsky tests * build pds correctly * fix entry point * default logging to false (for now) * format service entry * Switch takedown ids back to ints on pds distribution (#1694) * switch takedown ids back to ints, consistent with live pds * tidy/fix migration * update migration for sqlite * export moderation action reversal * takedown tests * dont build branch --------- Co-authored-by: Devin Ivy <devinivy@gmail.com>
41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import { RecordRef, SeedClient } from '@atproto/dev-env'
|
|
|
|
export default async (sc: SeedClient, did, threads: Item[]) => {
|
|
const refByItemId: Record<string, RecordRef> = {}
|
|
const rootByItemId: Record<string, RecordRef> = {}
|
|
await walk(threads, async (item, _depth, parent) => {
|
|
if (parent !== undefined) {
|
|
const parentRef = refByItemId[parent.id]
|
|
const rootRef = rootByItemId[parent.id]
|
|
const { ref } = await sc.reply(did, rootRef, parentRef, String(item.id))
|
|
refByItemId[item.id] = ref
|
|
rootByItemId[item.id] = rootRef
|
|
} else {
|
|
const { ref } = await sc.post(did, String(item.id))
|
|
refByItemId[item.id] = ref
|
|
rootByItemId[item.id] = ref
|
|
}
|
|
})
|
|
}
|
|
|
|
export function item(id: number, children: Item[] = []) {
|
|
return { id, children }
|
|
}
|
|
|
|
export async function walk(
|
|
items: Item[],
|
|
cb: (item: Item, depth: number, parent?: Item) => Promise<void>,
|
|
depth = 0,
|
|
parent?: Item,
|
|
) {
|
|
for (const item of items) {
|
|
await cb(item, depth, parent)
|
|
await walk(item.children, cb, depth + 1, item)
|
|
}
|
|
}
|
|
|
|
export interface Item {
|
|
id: number
|
|
children: Item[]
|
|
}
|