diff options
| author | Shinigami <[email protected]> | 2023-09-18 05:52:42 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-09-18 05:52:42 +0200 |
| commit | d6a4f8c2ddf9e957e875bc3fab77e496104d1320 (patch) | |
| tree | 8c87a5d2baf4dfad8d96da7a4823adaf8bd005ee /scripts | |
| parent | f40e217c6275ab555ecbe3ca0046526e44b31263 (diff) | |
| download | faker-d6a4f8c2ddf9e957e875bc3fab77e496104d1320.tar.xz faker-d6a4f8c2ddf9e957e875bc3fab77e496104d1320.zip | |
feat: split SimpleFaker class from Faker (#2369)
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/apidoc/fakerClass.ts | 40 | ||||
| -rw-r--r-- | scripts/apidoc/generate.ts | 4 |
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) ), |
