1
0
mirror of https://github.com/misskey-dev/misskey synced 2024-12-26 04:28:28 +09:00
misskey/src/remote/activitypub/act/index.ts

31 lines
851 B
TypeScript
Raw Normal View History

2018-03-31 19:55:00 +09:00
import create from './create';
2018-04-02 19:50:40 +09:00
import follow from './follow';
2018-04-03 16:33:16 +09:00
import undo from './undo';
2018-03-31 19:55:00 +09:00
import createObject from '../create';
2018-04-03 20:09:26 +09:00
import Resolver from '../resolver';
2018-03-31 19:55:00 +09:00
2018-04-03 20:09:26 +09:00
export default (resolver: Resolver, actor, value, distribute?: boolean) => {
2018-04-03 16:33:16 +09:00
return resolver.resolve(value).then(resolved => Promise.all(resolved.map(async promisedResult => {
const result = await promisedResult;
const created = await (await createObject(result.resolver, actor, [result.object], distribute))[0];
2018-03-31 19:55:00 +09:00
if (created !== null) {
return created;
}
2018-04-03 16:33:16 +09:00
switch (result.object.type) {
2018-03-31 19:55:00 +09:00
case 'Create':
2018-04-03 16:33:16 +09:00
return create(result.resolver, actor, result.object, distribute);
2018-03-31 19:55:00 +09:00
2018-04-02 19:50:40 +09:00
case 'Follow':
2018-04-03 16:33:16 +09:00
return follow(result.resolver, actor, result.object, distribute);
case 'Undo':
return undo(result.resolver, actor, result.object);
2018-04-02 19:50:40 +09:00
2018-03-31 19:55:00 +09:00
default:
return null;
}
})));
2018-04-01 21:17:46 +09:00
};