/
githubmirror
/
angular-cli
Обзор
Документация
Войти
/
githubmirror
/
angular-cli
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/angular_devkit/schematics/src/rules/random.ts
53 строки
1 KB
Ash Ramirez
refactor(@angular/cli): update aio links -> adev links
06 июн 2024, 12:12
06 июн 2024, 12:12
434a374
Код
Авторство
О чём код?
/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ import { Source } from '../engine/interface'; import { HostTree } from '../tree/host-tree'; function generateStringOfLength(l: number) { return new Array(l) .fill(0) .map((_x) => { return 'abcdefghijklmnopqrstuvwxyz'[Math.floor(Math.random() * 26)]; }) .join(''); } function random(from: number, to: number) { return Math.floor(Math.random() * (to - from)) + from; } export interface RandomOptions { root?: string; multi?: boolean | number; multiFiles?: boolean | number; } export default function (options: RandomOptions): Source { return () => { const root = 'root' in options ? options.root : '/'; const map = new HostTree(); const nbFiles = 'multiFiles' in options ? typeof options.multiFiles == 'number' ? options.multiFiles : random(2, 12) : 1; for (let i = 0; i < nbFiles; i++) { const path = 'a/b/c/d/e/f'.slice(Math.random() * 10); const fileName = generateStringOfLength(20); const content = generateStringOfLength(100); map.create(root + '/' + path + '/' + fileName, content); } return map; }; }