Make indentation not completely suck
This commit is contained in:
parent
9894b203c9
commit
83c7abd9b4
|
@ -18,62 +18,62 @@ const ev = new Xev();
|
||||||
* Init process
|
* Init process
|
||||||
*/
|
*/
|
||||||
export default async function() {
|
export default async function() {
|
||||||
process.title = `Calckey (${cluster.isPrimary ? 'master' : 'worker'})`;
|
process.title = `Calckey (${cluster.isPrimary ? 'master' : 'worker'})`;
|
||||||
|
|
||||||
if (cluster.isPrimary || envOption.disableClustering) {
|
if (cluster.isPrimary || envOption.disableClustering) {
|
||||||
await masterMain();
|
await masterMain();
|
||||||
|
|
||||||
if (cluster.isPrimary) {
|
if (cluster.isPrimary) {
|
||||||
ev.mount();
|
ev.mount();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cluster.isWorker || envOption.disableClustering) {
|
if (cluster.isWorker || envOption.disableClustering) {
|
||||||
await workerMain();
|
await workerMain();
|
||||||
}
|
}
|
||||||
|
|
||||||
// For when Calckey is started in a child process during unit testing.
|
// For when Calckey is started in a child process during unit testing.
|
||||||
// Otherwise, process.send cannot be used, so start it.
|
// Otherwise, process.send cannot be used, so start it.
|
||||||
if (process.send) {
|
if (process.send) {
|
||||||
process.send('ok');
|
process.send('ok');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//#region Events
|
//#region Events
|
||||||
|
|
||||||
// Listen new workers
|
// Listen new workers
|
||||||
cluster.on('fork', worker => {
|
cluster.on('fork', worker => {
|
||||||
clusterLogger.debug(`Process forked: [${worker.id}]`);
|
clusterLogger.debug(`Process forked: [${worker.id}]`);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Listen online workers
|
// Listen online workers
|
||||||
cluster.on('online', worker => {
|
cluster.on('online', worker => {
|
||||||
clusterLogger.debug(`Process is now online: [${worker.id}]`);
|
clusterLogger.debug(`Process is now online: [${worker.id}]`);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Listen for dying workers
|
// Listen for dying workers
|
||||||
cluster.on('exit', worker => {
|
cluster.on('exit', worker => {
|
||||||
// Replace the dead worker,
|
// Replace the dead worker,
|
||||||
// we're not sentimental
|
// we're not sentimental
|
||||||
clusterLogger.error(chalk.red(`[${worker.id}] died :(`));
|
clusterLogger.error(chalk.red(`[${worker.id}] died :(`));
|
||||||
cluster.fork();
|
cluster.fork();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Display detail of unhandled promise rejection
|
// Display detail of unhandled promise rejection
|
||||||
if (!envOption.quiet) {
|
if (!envOption.quiet) {
|
||||||
process.on('unhandledRejection', console.dir);
|
process.on('unhandledRejection', console.dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Display detail of uncaught exception
|
// Display detail of uncaught exception
|
||||||
process.on('uncaughtException', err => {
|
process.on('uncaughtException', err => {
|
||||||
try {
|
try {
|
||||||
logger.error(err);
|
logger.error(err);
|
||||||
} catch { }
|
} catch { }
|
||||||
});
|
});
|
||||||
|
|
||||||
// Dying away...
|
// Dying away...
|
||||||
process.on('exit', code => {
|
process.on('exit', code => {
|
||||||
logger.info(`The process is going to exit with code ${code}`);
|
logger.info(`The process is going to exit with code ${code}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
|
@ -8,44 +8,44 @@ import { deleteActor } from './actor.js';
|
||||||
* Handle delete activity
|
* Handle delete activity
|
||||||
*/
|
*/
|
||||||
export default async (actor: CacheableRemoteUser, activity: IDelete): Promise<string> => {
|
export default async (actor: CacheableRemoteUser, activity: IDelete): Promise<string> => {
|
||||||
if ('actor' in activity && actor.uri !== activity.actor) {
|
if ('actor' in activity && actor.uri !== activity.actor) {
|
||||||
throw new Error('invalid actor');
|
throw new Error('invalid actor');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type of object to be deleted
|
// Type of object to be deleted
|
||||||
let formerType: string | undefined;
|
let formerType: string | undefined;
|
||||||
|
|
||||||
if (typeof activity.object === 'string') {
|
if (typeof activity.object === 'string') {
|
||||||
// The type is unknown, but it has disappeared
|
// The type is unknown, but it has disappeared
|
||||||
// anyway, so it does not remote resolve
|
// anyway, so it does not remote resolve
|
||||||
formerType = undefined;
|
formerType = undefined;
|
||||||
} else {
|
} else {
|
||||||
const object = activity.object as IObject;
|
const object = activity.object as IObject;
|
||||||
if (isTombstone(object)) {
|
if (isTombstone(object)) {
|
||||||
formerType = toSingle(object.formerType);
|
formerType = toSingle(object.formerType);
|
||||||
} else {
|
} else {
|
||||||
formerType = toSingle(object.type);
|
formerType = toSingle(object.type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const uri = getApId(activity.object);
|
const uri = getApId(activity.object);
|
||||||
|
|
||||||
// Even if type is unknown, if actor and object are the same,
|
// Even if type is unknown, if actor and object are the same,
|
||||||
// it must be `Person`.
|
// it must be `Person`.
|
||||||
if (!formerType && actor.uri === uri) {
|
if (!formerType && actor.uri === uri) {
|
||||||
formerType = 'Person';
|
formerType = 'Person';
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not, fallback to `Note`.
|
// If not, fallback to `Note`.
|
||||||
if (!formerType) {
|
if (!formerType) {
|
||||||
formerType = 'Note';
|
formerType = 'Note';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (validPost.includes(formerType)) {
|
if (validPost.includes(formerType)) {
|
||||||
return await deleteNote(actor, uri);
|
return await deleteNote(actor, uri);
|
||||||
} else if (validActor.includes(formerType)) {
|
} else if (validActor.includes(formerType)) {
|
||||||
return await deleteActor(actor, uri);
|
return await deleteActor(actor, uri);
|
||||||
} else {
|
} else {
|
||||||
return `Unknown type ${formerType}`;
|
return `Unknown type ${formerType}`;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,8 +7,8 @@ import { genId } from '@/misc/gen-id.js';
|
||||||
|
|
||||||
export default async (actor: CacheableRemoteUser, activity: IFlag): Promise<string> => {
|
export default async (actor: CacheableRemoteUser, activity: IFlag): Promise<string> => {
|
||||||
// The object is `(User | Note) | (User | Note) []`, but it cannot be
|
// The object is `(User | Note) | (User | Note) []`, but it cannot be
|
||||||
// matched with all patterns of the DB schema, so the target user is the first
|
// matched with all patterns of the DB schema, so the target user is the first
|
||||||
// user and it is stored as a comment.
|
// user and it is stored as a comment.
|
||||||
const uris = getApIds(activity.object);
|
const uris = getApIds(activity.object);
|
||||||
|
|
||||||
const userIds = uris.filter(uri => uri.startsWith(config.url + '/users/')).map(uri => uri.split('/').pop()!);
|
const userIds = uris.filter(uri => uri.startsWith(config.url + '/users/')).map(uri => uri.split('/').pop()!);
|
||||||
|
|
|
@ -39,8 +39,8 @@ export async function createImage(actor: CacheableRemoteUser, value: any): Promi
|
||||||
});
|
});
|
||||||
|
|
||||||
if (file.isLink) {
|
if (file.isLink) {
|
||||||
// If the URL is different, it means that the same image was previously
|
// If the URL is different, it means that the same image was previously
|
||||||
// registered with a different URL, so update the URL
|
// registered with a different URL, so update the URL
|
||||||
if (file.url !== image.url) {
|
if (file.url !== image.url) {
|
||||||
await DriveFiles.update({ id: file.id }, {
|
await DriveFiles.update({ id: file.id }, {
|
||||||
url: image.url,
|
url: image.url,
|
||||||
|
|
|
@ -101,10 +101,10 @@ function validateActor(x: IObject, uri: string): IActor {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetch a Person.
|
* Fetch a Person.
|
||||||
*
|
*
|
||||||
* If the target Person is registered in Calckey, it will be returned.
|
* If the target Person is registered in Calckey, it will be returned.
|
||||||
*/
|
*/
|
||||||
export async function fetchPerson(uri: string, resolver?: Resolver): Promise<CacheableUser | null> {
|
export async function fetchPerson(uri: string, resolver?: Resolver): Promise<CacheableUser | null> {
|
||||||
if (typeof uri !== 'string') throw new Error('uri is not string');
|
if (typeof uri !== 'string') throw new Error('uri is not string');
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue