UNPKG

gen-jhipster

Version:

VHipster - Spring Boot + Angular/React/Vue in one handy generator

56 lines (55 loc) 2.1 kB
/** * Copyright 2013-2026 the original author or authors from the JHipster project. * * This file is part of the JHipster project, see https://www.jhipster.tech/ * for more information. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { Faker, base, en } from '@faker-js/faker'; import Randexp from 'randexp'; import { languageToFakerLanguage } from "../../languages/support/languages.js"; class RandexpWithFaker extends Randexp { faker; constructor(regexp, flags, faker) { super(regexp, flags); this.max = 5; this.faker = faker; if (this.faker === undefined) { throw new Error('Faker is required'); } // In order to have consistent results with RandExp, the RNG is seeded. this.randInt = (from, to) => faker.number.int({ min: from, max: to }); } } export class FakerWithRandexp extends Faker { createRandexp(regexp, flags) { return new RandexpWithFaker(regexp, flags, this); } } /** * Create a faker instance. * @param nativeLanguage - native language * @returns Faker instance */ export async function createFaker(nativeLanguage = 'en') { nativeLanguage = languageToFakerLanguage(nativeLanguage); const fakerModule = await import(`@faker-js/faker`); const fakerLanguage = nativeLanguage in fakerModule ? nativeLanguage : 'en'; const locale = fakerModule[fakerLanguage]; const faker = new FakerWithRandexp({ locale: [locale, base, en], }); faker.createRandexp = (pattern, m) => new RandexpWithFaker(pattern, m, faker); return faker; }