UNPKG

@plq/faker

Version:

A set of classes for mocking known data types such as browser history, browser download list, persona, domain name, Jira project, GitHub repository, etc.

53 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const faker_1 = require("@faker-js/faker"); const base_extended_1 = require("./base-extended"); class MockRepository extends base_extended_1.BaseSiteMock { templates = { github: [ ['{{url}}/{{user}}/{{project}}', '{{user}}/{{project}}'], ['{{url}}/{{fakePath}}', '{{fakePath}}'], ], gitlab: [ ['{{url}}/{{user}}/{{project}}', '{{user}} / {{project}} · GitLab'], ['{{url}}/{{fakePath}}', '{{fakePath}} · GitLab'], ], }; constructor(query) { super(query); this.reset(); } isProviderSupported() { return Boolean(this.providers .find(provider => this.domain.name.includes(provider))); } supportedProvider() { const providers = this.providers; return providers.find(provider => this.domain.name.includes(provider)) ?? faker_1.faker.helpers.arrayElement(providers); } createMockItem() { const provider = this.supportedProvider(); const user = this.user.nickname.toLowerCase(); const project = this.project.shortName.toLowerCase(); const templatesArray = this.templates[provider]; const templates = templatesArray.map(templates => templates.map(template => faker_1.faker.helpers.mustache(template, { url: this.domain.full, user, project, summary: faker_1.faker.lorem.sentence(), }))); return { provider, user, project, url: this.isProviderSupported() ? `${this.domain.full}` : `https://${provider}.${project}.${faker_1.faker.internet.domainSuffix()}}`, templates, isSupported: this.isProviderSupported(), }; } } exports.default = MockRepository; //# sourceMappingURL=repository.js.map