* Reapply "add codegen" This reverts commit 620b10954af90f53e1692c3fd7451c675f1e9956. * add pipethrough * pipethrough header * fix descriptions * rm * codgen/build * add hot * Codegen * Hotter * Category as optional open string * Format * required array * update lex * use right viewer * lex codegen * update comment * codegen * Add basic test * Format * Changeset --------- Co-authored-by: Eric Bailey <git@esb.lol> Co-authored-by: rafael <rafael@blueskyweb.xyz>
71 lines
1.7 KiB
TypeScript
71 lines
1.7 KiB
TypeScript
import { SeedClient, TestNetwork, TestNetworkNoAppView } from '@atproto/dev-env'
|
|
|
|
export type User = {
|
|
id: string
|
|
did: string
|
|
email: string
|
|
handle: string
|
|
password: string
|
|
displayName: string
|
|
description: string
|
|
selfLabels: undefined
|
|
}
|
|
|
|
function createUser(name: string): User {
|
|
return {
|
|
id: name,
|
|
// @ts-ignore overwritten below
|
|
did: undefined,
|
|
email: `${name}@test.com`,
|
|
handle: `${name}.test`,
|
|
password: `${name}-pass`,
|
|
displayName: name,
|
|
description: `hi im ${name} label_me`,
|
|
selfLabels: undefined,
|
|
}
|
|
}
|
|
|
|
const users = {
|
|
trender: createUser('trender'),
|
|
|
|
posterA: createUser('posterA'),
|
|
posterB: createUser('posterB'),
|
|
posterC: createUser('posterC'),
|
|
posterD: createUser('posterD'),
|
|
|
|
viewer: createUser('viewer'),
|
|
viewerBlocker: createUser('viewerBlocker'),
|
|
}
|
|
|
|
export type Users = typeof users
|
|
export type Feeds = SeedClient['feedgens']
|
|
|
|
export async function trendsSeed(
|
|
sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
|
|
) {
|
|
const u = structuredClone(users)
|
|
|
|
await sc.createAccount('trender', u.trender)
|
|
await sc.createAccount('posterA', u.posterA)
|
|
await sc.createAccount('posterB', u.posterB)
|
|
await sc.createAccount('posterC', u.posterC)
|
|
await sc.createAccount('posterD', u.posterD)
|
|
await sc.createAccount('viewer', u.viewer)
|
|
await sc.createAccount('viewerBlocker', u.viewerBlocker)
|
|
|
|
Object.values(u).forEach((user) => {
|
|
u[user.id].did = sc.dids[user.id]
|
|
})
|
|
|
|
await sc.createFeedGen(u.trender.did, 'did:web:example.com', 'trendA')
|
|
await sc.block(u.viewerBlocker.did, u.posterC.did)
|
|
|
|
await sc.network.processAll()
|
|
|
|
return {
|
|
users: u,
|
|
feeds: sc.feedgens,
|
|
seedClient: sc,
|
|
}
|
|
}
|