mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
core: build with plugins
This commit is contained in:
8 files changed
+47
-41
No files matched your search
@@ -1,6 +1,7 @@
|
||||
import { Dictionary, escapeRegExp } from 'lodash';
|
||||
import { LRUCache } from 'lru-cache';
|
||||
import { Filter } from 'mongodb';
|
||||
import { Context } from '../context';
|
||||
import { DomainDoc } from '../interface';
|
||||
import bus from '../service/bus';
|
||||
import db from '../service/db';
|
||||
@@ -284,24 +285,26 @@ class DomainModel {
|
||||
}
|
||||
}
|
||||
|
||||
bus.on('ready', () => Promise.all([
|
||||
db.ensureIndexes(
|
||||
coll,
|
||||
{ key: { lower: 1 }, name: 'lower', unique: true },
|
||||
),
|
||||
db.ensureIndexes(
|
||||
collUser,
|
||||
{ key: { domainId: 1, uid: 1 }, name: 'uid', unique: true },
|
||||
{ key: { domainId: 1, rp: -1, uid: 1 }, name: 'rp', sparse: true },
|
||||
),
|
||||
]));
|
||||
bus.on('domain/delete-cache', async (domainId: string) => {
|
||||
const ddoc = await DomainModel.get(domainId);
|
||||
if (!ddoc) return;
|
||||
for (const host of ddoc.hosts || []) {
|
||||
cache.delete(`host::${host}`);
|
||||
}
|
||||
cache.delete(`id::${domainId}`);
|
||||
});
|
||||
export async function apply(ctx: Context) {
|
||||
ctx.on('domain/delete-cache', async (domainId: string) => {
|
||||
const ddoc = await DomainModel.get(domainId);
|
||||
if (!ddoc) return;
|
||||
for (const host of ddoc.hosts || []) {
|
||||
cache.delete(`host::${host}`);
|
||||
}
|
||||
cache.delete(`id::${domainId}`);
|
||||
});
|
||||
await Promise.all([
|
||||
db.ensureIndexes(
|
||||
coll,
|
||||
{ key: { lower: 1 }, name: 'lower', unique: true },
|
||||
),
|
||||
db.ensureIndexes(
|
||||
collUser,
|
||||
{ key: { domainId: 1, uid: 1 }, name: 'uid', unique: true },
|
||||
{ key: { domainId: 1, rp: -1, uid: 1 }, name: 'rp', sparse: true },
|
||||
),
|
||||
]);
|
||||
}
|
||||
export default DomainModel;
|
||||
global.Hydro.model.domain = DomainModel;
|
||||
@@ -465,22 +465,24 @@ class UserModel {
|
||||
}
|
||||
}
|
||||
|
||||
bus.on('ready', () => Promise.all([
|
||||
db.ensureIndexes(
|
||||
coll,
|
||||
{ key: { unameLower: 1 }, name: 'uname', unique: true },
|
||||
{ key: { mailLower: 1 }, name: 'mail', unique: true },
|
||||
),
|
||||
db.ensureIndexes(
|
||||
collV,
|
||||
{ key: { unameLower: 1 }, name: 'uname', unique: true },
|
||||
{ key: { mailLower: 1 }, name: 'mail', unique: true },
|
||||
),
|
||||
db.ensureIndexes(
|
||||
collGroup,
|
||||
{ key: { domainId: 1, name: 1 }, name: 'name', unique: true },
|
||||
{ key: { domainId: 1, uids: 1 }, name: 'uid' },
|
||||
),
|
||||
]));
|
||||
export async function apply() {
|
||||
await Promise.all([
|
||||
db.ensureIndexes(
|
||||
coll,
|
||||
{ key: { unameLower: 1 }, name: 'uname', unique: true },
|
||||
{ key: { mailLower: 1 }, name: 'mail', unique: true },
|
||||
),
|
||||
db.ensureIndexes(
|
||||
collV,
|
||||
{ key: { unameLower: 1 }, name: 'uname', unique: true },
|
||||
{ key: { mailLower: 1 }, name: 'mail', unique: true },
|
||||
),
|
||||
db.ensureIndexes(
|
||||
collGroup,
|
||||
{ key: { domainId: 1, name: 1 }, name: 'name', unique: true },
|
||||
{ key: { domainId: 1, uids: 1 }, name: 'uid' },
|
||||
),
|
||||
]);
|
||||
}
|
||||
export default UserModel;
|
||||
global.Hydro.model.user = UserModel;
|
||||
Reference in new issue
Block a user