• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

TypeScript cafy.arr函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了TypeScript中cafy.arr函数的典型用法代码示例。如果您正苦于以下问题:TypeScript arr函数的具体用法?TypeScript arr怎么用?TypeScript arr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了arr函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。

示例1: default

export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
	let user;

	// Get 'userId' parameter
	const [userId, userIdErr] = $.type(ID).optional.get(params.userId);
	if (userIdErr) return rej('invalid userId param');

	// Get 'userIds' parameter
	const [userIds, userIdsErr] = $.arr($.type(ID)).optional.get(params.userIds);
	if (userIdsErr) return rej('invalid userIds param');

	// Get 'username' parameter
	const [username, usernameErr] = $.str.optional.get(params.username);
	if (usernameErr) return rej('invalid username param');

	// Get 'host' parameter
	const [host, hostErr] = $.str.optional.nullable.get(params.host);
	if (hostErr) return rej('invalid host param');

	if (userIds) {
		const users = await User.find({
			_id: {
				$in: userIds
			}
		});

		res(await Promise.all(users.map(u => pack(u, me, {
			detail: true
		}))));
	} else {
		// Lookup user
		if (typeof host === 'string') {
			try {
				user = await resolveRemoteUser(username, host, cursorOption);
			} catch (e) {
				console.warn(`failed to resolve remote user: ${e}`);
				return rej('failed to resolve remote user');
			}
		} else {
			const q: any = userId !== undefined
				? { _id: userId }
				: { usernameLower: username.toLowerCase(), host: null };

			user = await User.findOne(q, cursorOption);

			if (user === null) {
				return rej('user not found');
			}
		}

		// Send response
		res(await pack(user, me, {
			detail: true
		}));
	}
});
开发者ID:ha-dai,项目名称:Misskey,代码行数:56,代码来源:show.ts


示例2: async

export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
	// Get 'home' parameter
	const [home, homeErr] = $.arr($.obj({
		name: $.str,
		id: $.str,
		data: $.obj()
	}).strict()).get(params.home);
	if (homeErr) return rej('invalid home param');

	await User.update(user._id, {
		$set: {
			'clientSettings.mobileHome': home
		}
	});

	res();

	publishUserStream(user._id, 'mobile_home_updated', home);
});
开发者ID:ha-dai,项目名称:Misskey,代码行数:19,代码来源:update_mobile_home.ts


示例3: async

export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
	// Get 'nameId' parameter
	const [nameId, nameIdErr] = $.str.pipe(isValidNameId).get(params.nameId);
	if (nameIdErr) return rej('invalid nameId param');

	// Get 'name' parameter
	const [name, nameErr] = $.str.get(params.name);
	if (nameErr) return rej('invalid name param');

	// Get 'description' parameter
	const [description, descriptionErr] = $.str.get(params.description);
	if (descriptionErr) return rej('invalid description param');

	// Get 'permission' parameter
	const [permission, permissionErr] = $.arr($.str).unique().get(params.permission);
	if (permissionErr) return rej('invalid permission param');

	// Get 'callbackUrl' parameter
	// TODO: Check it is valid url
	const [callbackUrl = null, callbackUrlErr] = $.str.optional.nullable.get(params.callbackUrl);
	if (callbackUrlErr) return rej('invalid callbackUrl param');

	// Generate secret
	const secret = rndstr('a-zA-Z0-9', 32);

	// Create account
	const app = await App.insert({
		createdAt: new Date(),
		userId: user && user._id,
		name: name,
		nameId: nameId,
		nameIdLower: nameId.toLowerCase(),
		description: description,
		permission: permission,
		callbackUrl: callbackUrl,
		secret: secret
	});

	// Response
	res(await pack(app));
});
开发者ID:ha-dai,项目名称:Misskey,代码行数:41,代码来源:create.ts


示例4: ms

		duration: ms('1hour'),
		max: 300,
		minInterval: ms('1second')
	},

	kind: 'note-write',

	params: {
		visibility: $.str.optional.or(['public', 'home', 'followers', 'specified', 'private']).note({
			default: 'public',
			desc: {
				ja: '投稿の公開範囲'
			}
		}),

		visibleUserIds: $.arr($.type(ID)).optional.unique().min(1).note({
			desc: {
				ja: '(投稿の公開範囲が specified の場合)投稿を閲覧できるユーザー'
			}
		}),

		text: $.str.optional.nullable.pipe(isValidText).note({
			default: null,
			desc: {
				ja: '投稿内容'
			}
		}),

		cw: $.str.optional.nullable.pipe(isValidCw).note({
			desc: {
				ja: 'コンテンツの警告。このパラメータを指定すると設定したテキストで投稿のコンテンツを隠す事が出来ます。'
开发者ID:ha-dai,项目名称:Misskey,代码行数:31,代码来源:create.ts


示例5: default

export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
	// Get 'tag' parameter
	const [tag, tagError] = $.str.get(params.tag);
	if (tagError) return rej('invalid tag param');

	// Get 'includeUserIds' parameter
	const [includeUserIds = [], includeUserIdsErr] = $.arr($.type(ID)).optional.get(params.includeUserIds);
	if (includeUserIdsErr) return rej('invalid includeUserIds param');

	// Get 'excludeUserIds' parameter
	const [excludeUserIds = [], excludeUserIdsErr] = $.arr($.type(ID)).optional.get(params.excludeUserIds);
	if (excludeUserIdsErr) return rej('invalid excludeUserIds param');

	// Get 'includeUserUsernames' parameter
	const [includeUserUsernames = [], includeUserUsernamesErr] = $.arr($.str).optional.get(params.includeUserUsernames);
	if (includeUserUsernamesErr) return rej('invalid includeUserUsernames param');

	// Get 'excludeUserUsernames' parameter
	const [excludeUserUsernames = [], excludeUserUsernamesErr] = $.arr($.str).optional.get(params.excludeUserUsernames);
	if (excludeUserUsernamesErr) return rej('invalid excludeUserUsernames param');

	// Get 'following' parameter
	const [following = null, followingErr] = $.bool.optional.nullable.get(params.following);
	if (followingErr) return rej('invalid following param');

	// Get 'mute' parameter
	const [mute = 'mute_all', muteErr] = $.str.optional.get(params.mute);
	if (muteErr) return rej('invalid mute param');

	// Get 'reply' parameter
	const [reply = null, replyErr] = $.bool.optional.nullable.get(params.reply);
	if (replyErr) return rej('invalid reply param');

	// Get 'renote' parameter
	const [renote = null, renoteErr] = $.bool.optional.nullable.get(params.renote);
	if (renoteErr) return rej('invalid renote param');

	// Get 'media' parameter
	const [media = null, mediaErr] = $.bool.optional.nullable.get(params.media);
	if (mediaErr) return rej('invalid media param');

	// Get 'poll' parameter
	const [poll = null, pollErr] = $.bool.optional.nullable.get(params.poll);
	if (pollErr) return rej('invalid poll param');

	// Get 'sinceDate' parameter
	const [sinceDate, sinceDateErr] = $.num.optional.get(params.sinceDate);
	if (sinceDateErr) throw 'invalid sinceDate param';

	// Get 'untilDate' parameter
	const [untilDate, untilDateErr] = $.num.optional.get(params.untilDate);
	if (untilDateErr) throw 'invalid untilDate param';

	// Get 'offset' parameter
	const [offset = 0, offsetErr] = $.num.optional.min(0).get(params.offset);
	if (offsetErr) return rej('invalid offset param');

	// Get 'limit' parameter
	const [limit = 10, limitErr] = $.num.optional.range(1, 30).get(params.limit);
	if (limitErr) return rej('invalid limit param');

	if (includeUserUsernames != null) {
		const ids = (await Promise.all(includeUserUsernames.map(async (username) => {
			const _user = await User.findOne({
				usernameLower: username.toLowerCase()
			});
			return _user ? _user._id : null;
		}))).filter(id => id != null);

		ids.forEach(id => includeUserIds.push(id));
	}

	if (excludeUserUsernames != null) {
		const ids = (await Promise.all(excludeUserUsernames.map(async (username) => {
			const _user = await User.findOne({
				usernameLower: username.toLowerCase()
			});
			return _user ? _user._id : null;
		}))).filter(id => id != null);

		ids.forEach(id => excludeUserIds.push(id));
	}

	let q: any = {
		$and: [{
			tagsLower: tag.toLowerCase()
		}]
	};

	const push = (x: any) => q.$and.push(x);

	if (includeUserIds && includeUserIds.length != 0) {
		push({
			userId: {
				$in: includeUserIds
			}
		});
	} else if (excludeUserIds && excludeUserIds.length != 0) {
		push({
			userId: {
//.........这里部分代码省略.........
开发者ID:ha-dai,项目名称:Misskey,代码行数:101,代码来源:search_by_tag.ts



注:本文中的cafy.arr函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
TypeScript cafy.array函数代码示例发布时间:2022-05-25
下一篇:
TypeScript json_codecs.recordCodec函数代码示例发布时间:2022-05-25
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap