import { random, times, capitalize } from 'lodash-es'; import { faker } from '@faker-js/faker'; import { decode } from '../paramsParser'; const getOverload = (args: number[], defaultMin: number, defaultMax: number) => { let len = 0; switch (args.length) { case 0: len = random(defaultMin, defaultMax, false); break; case 1: len = args[0]; break; case 2: len = random(args[0], args[1], false); break; } return len; }; // 随机生成一个句子,第一个单词的首字母大写。 const sentence = decode( (...args: number[]) => { return faker.lorem.sentence(getOverload(args, 12, 18)); }, ['number', 'number'], ); // 随机生成一个单词。 const word = decode( (...args: number[]) => { return faker.lorem.word(getOverload(args, 3, 10)); }, ['number', 'number'], ); // 随机生成一段文本。 const paragraph = decode( (...args: number[]) => { //! paragraphs 错误,所以改为这种形式 const result = times(getOverload(args, 3, 7), () => faker.lorem.lines(1)).join(' '); return result; }, ['number', 'number'], ); // 随机生成一句标题,其中每个单词的首字母大写。 const title = decode( (...args: number[]) => { const len = getOverload(args, 3, 7); return times(len, () => capitalize(word())).join(' '); }, ['number', 'number'], ); export { word, paragraph, sentence, title };