This commit is contained in:
728
2022-11-24 21:04:42 +08:00
parent 4089d2958a
commit c458d253e6
6 changed files with 21 additions and 18 deletions

View File

@ -19,7 +19,7 @@ await Promise.all(uid.map(async ({ _id }) => {
rec_of_uid(coll.fund, [_id]), rec_of_uid(coll.fund, [_id]),
]) ])
await Deno.writeTextFile(`json/u${_id}.json`, JSON.stringify({ await Deno.writeTextFile(`json/u${_id}.json`, JSON.stringify({
...u, worker, work, fund ...u, rec: { worker, work, fund }
})) }))
})) }))
await Promise.all(sid.map(async ({ _id }) => { await Promise.all(sid.map(async ({ _id }) => {
@ -30,7 +30,7 @@ await Promise.all(sid.map(async ({ _id }) => {
rec_of_sid(coll.fund, _id), rec_of_sid(coll.fund, _id),
]) ])
await Deno.writeTextFile(`json/s${_id}.json`, JSON.stringify({ await Deno.writeTextFile(`json/s${_id}.json`, JSON.stringify({
...s, worker, work, fund ...s, rec: { worker, work, fund }
})) }))
})) }))
await Promise.all(a.map(async ({ _id }) => { await Promise.all(a.map(async ({ _id }) => {
@ -55,5 +55,5 @@ export type Rec = {
} }
export type Agenda = typeof a[0] export type Agenda = typeof a[0]
export type Recent = typeof r export type Recent = typeof r
export type User = Awaited<ReturnType<typeof user>> & Rec export type User = Awaited<ReturnType<typeof user>> & { rec: Rec }
export type Soc = Awaited<ReturnType<typeof soc>> & Rec export type Soc = Awaited<ReturnType<typeof soc>> & { rec: Rec }

View File

@ -5,10 +5,10 @@ export async function agenda(
) { ) {
const a = await coll.agenda.find().sort({ _id: -1 }).toArray() const a = await coll.agenda.find().sort({ _id: -1 }).toArray()
return Promise.all(a.map(async a => { return Promise.all(a.map(async a => {
const [nrec, dat] = await Promise.all([ const [rec, dat] = await Promise.all([
nrec_of_aid(a._id), nrec_of_aid(a._id),
dat_of_aid(a._id), dat_of_aid(a._id),
]) ])
return { ...a, ...nrec, dat } return { ...a, rec, dat }
})) }))
} }

View File

@ -26,9 +26,9 @@ export async function soc(
if (sid === 0) return null if (sid === 0) return null
const s = await soc_of_sid(sid) const s = await soc_of_sid(sid)
if (s === null) return null if (s === null) return null
const [nrec, uname] = await Promise.all([ const [rec, uname] = await Promise.all([
nrec_of_uid(s.uid), nrec_of_uid(s.uid),
idname(coll.user, s.uid), idname(coll.user, s.uid),
]) ])
return { ...s, ...nrec, uname } return { ...s, rec, uname }
} }

View File

@ -14,11 +14,11 @@ export async function user(
uid: number uid: number
) { ) {
if (uid === 0) return null if (uid === 0) return null
const [u, soc, nrec] = await Promise.all([ const [u, soc, rec] = await Promise.all([
user_of_uid(uid), user_of_uid(uid),
soc_of_uid(uid), soc_of_uid(uid),
nrec_of_uid([uid]), nrec_of_uid([uid]),
]) ])
if (u === null) return null if (u === null) return null
return { ...u, soc, ...nrec } return { ...u, soc, rec }
} }

View File

@ -8,7 +8,7 @@ Deno.test("user", async () => {
const u = await user(728) const u = await user(728)
console.log(u) console.log(u)
assert(u && u.name === "万大可") assert(u && u.name === "万大可")
assert(u.worker === 1 && u.work === 1 && u.fund === 0) assert(u.rec.worker === 1 && u.rec.work === 1 && u.rec.fund === 0)
const [worker, work, fund] = await Promise.all([ const [worker, work, fund] = await Promise.all([
rec_of_uid(coll.worker, [728]), rec_of_uid(coll.worker, [728]),
rec_of_uid(coll.work, [728]), rec_of_uid(coll.work, [728]),
@ -24,8 +24,9 @@ Deno.test("soc", async () => {
assert(s && s.name === "主义主义软件开发") assert(s && s.name === "主义主义软件开发")
const uname = new Map(s.uname) const uname = new Map(s.uname)
assert(uname.get(s.uid[1]) === "万大可") assert(uname.get(s.uid[1]) === "万大可")
assert(s.worker === 2) assert(s.rec.worker === 2)
assert(s.work === 3) assert(s.rec.work === 3)
assert(s.rec.fund === 0)
const [worker, work, fund] = await Promise.all([ const [worker, work, fund] = await Promise.all([
rec_of_sid(coll.worker, 2), rec_of_sid(coll.worker, 2),
rec_of_sid(coll.work, 2), rec_of_sid(coll.work, 2),
@ -47,7 +48,7 @@ Deno.test("agenda", async () => {
console.log(worker, work, fund) console.log(worker, work, fund)
assert(a.length === 4 && a4._id === 4) assert(a.length === 4 && a4._id === 4)
assert(a4.dat?.typ === "imgsrc" && a1.dat === null) assert(a4.dat?.typ === "imgsrc" && a1.dat === null)
assert(worker.rec.length === a1.worker) assert(worker.rec.length === a1.rec.worker)
assert(work.rec.length === a1.work) assert(work.rec.length === a1.rec.work)
assert(fund.rec.length === a1.fund) assert(fund.rec.length === a1.rec.fund)
}) })

View File

@ -268,8 +268,10 @@ window.addEventListener("hashchange", () => {
async function load( async function load(
) { ) {
agenda = await json("agenda") [agenda, recent] = await Promise.all([
recent = await json("recent") await json("agenda"),
await json("recent"),
])
window.dispatchEvent(new Event("hashchange")) window.dispatchEvent(new Event("hashchange"))
} }