aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorShinigami <[email protected]>2023-09-18 05:52:42 +0200
committerGitHub <[email protected]>2023-09-18 05:52:42 +0200
commitd6a4f8c2ddf9e957e875bc3fab77e496104d1320 (patch)
tree8c87a5d2baf4dfad8d96da7a4823adaf8bd005ee /scripts
parentf40e217c6275ab555ecbe3ca0046526e44b31263 (diff)
downloadfaker-d6a4f8c2ddf9e957e875bc3fab77e496104d1320.tar.xz
faker-d6a4f8c2ddf9e957e875bc3fab77e496104d1320.zip
feat: split SimpleFaker class from Faker (#2369)
Diffstat (limited to 'scripts')
-rw-r--r--scripts/apidoc/fakerClass.ts40
-rw-r--r--scripts/apidoc/generate.ts4
2 files changed, 30 insertions, 14 deletions
diff --git a/scripts/apidoc/fakerClass.ts b/scripts/apidoc/fakerClass.ts
index 1b322f36..5ce3c063 100644
--- a/scripts/apidoc/fakerClass.ts
+++ b/scripts/apidoc/fakerClass.ts
@@ -4,36 +4,48 @@ import type { Method } from '../../docs/.vitepress/components/api-docs/method';
import { writeApiDocsModule } from './apiDocsWriter';
import { analyzeModule, processModuleMethods } from './moduleMethods';
import { analyzeSignature } from './signature';
-import { selectApiSignature } from './typedoc';
+import { extractModuleFieldName, selectApiSignature } from './typedoc';
import type { ModuleSummary } from './utils';
-export async function processFakerClass(
+export async function processFakerClasses(
project: ProjectReflection
-): Promise<ModuleSummary> {
- const fakerClass = project
+): Promise<ModuleSummary[]> {
+ const fakerClasses = project
.getChildrenByKind(ReflectionKind.Class)
- .filter((clazz) => clazz.name === 'Faker')[0];
+ .filter((clazz) => clazz.name === 'Faker' || clazz.name === 'SimpleFaker');
- if (!fakerClass) {
- throw new Error('Faker class not found');
+ if (fakerClasses.length !== 2) {
+ throw new Error('Faker classes not found');
}
- return processClass(fakerClass);
+ return Promise.all(fakerClasses.map(processClass));
}
async function processClass(
fakerClass: DeclarationReflection
): Promise<ModuleSummary> {
- console.log(`Processing Faker class`);
+ const { name } = fakerClass;
+ const moduleFieldName = extractModuleFieldName(fakerClass);
+
+ console.log(`Processing ${name} class`);
+
const { comment, deprecated } = analyzeModule(fakerClass);
const methods: Method[] = [];
console.debug(`- constructor`);
methods.push(await processConstructor(fakerClass));
- methods.push(...(await processModuleMethods(fakerClass, 'faker.')));
+ methods.push(
+ ...(await processModuleMethods(fakerClass, `${moduleFieldName}.`))
+ );
- return writeApiDocsModule('Faker', 'faker', comment, deprecated, methods);
+ return writeApiDocsModule(
+ name,
+ moduleFieldName,
+ comment,
+ deprecated,
+ methods
+ );
}
async function processConstructor(
@@ -45,7 +57,11 @@ async function processConstructor(
const signature = selectApiSignature(constructor);
- const method = await analyzeSignature(signature, '', 'new Faker');
+ const method = await analyzeSignature(
+ signature,
+ '',
+ `new ${fakerClass.name}`
+ );
return {
...method,
diff --git a/scripts/apidoc/generate.ts b/scripts/apidoc/generate.ts
index 8f45fa6f..d1fefe8f 100644
--- a/scripts/apidoc/generate.ts
+++ b/scripts/apidoc/generate.ts
@@ -5,7 +5,7 @@ import {
writeApiSearchIndex,
writeSourceBaseUrl,
} from './apiDocsWriter';
-import { processFakerClass } from './fakerClass';
+import { processFakerClasses } from './fakerClass';
import { processFakerUtilities } from './fakerUtilities';
import { processModules } from './moduleMethods';
import { loadProject } from './typedoc';
@@ -23,7 +23,7 @@ export async function generate(): Promise<void> {
await app.generateJson(project, pathOutputJson);
const pages = await Promise.all([
- processFakerClass(project),
+ ...(await processFakerClasses(project)),
...(await processModules(project)).sort((a, b) =>
a.text.localeCompare(b.text)
),