summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/act/index.ts
blob: 06d662c1914f8c2f7788e96201aeac97d3fc3774 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import create from './create';
import createObject from '../create';
import Resolver from '../resolver';

export default (actor, value, distribute) => {
	return new Resolver().resolve(value).then(resolved => Promise.all(resolved.map(async promisedResult => {
		const { resolver, object } = await promisedResult;
		const created = await (await createObject(resolver, actor, [object], distribute))[0];

		if (created !== null) {
			return created;
		}

		switch (object.type) {
		case 'Create':
			return create(resolver, actor, object, distribute);

		default:
			return null;
		}
	})));
};