[**@s4ai/core Documentation v0.3.23**](../../../README.md)

***

[@s4ai/core Documentation](../../../modules.md) / [intelligence/self-documenting-generator](../README.md) / CodeDocumenter

# Class: CodeDocumenter

Defined in: intelligence/self-documenting-generator.js:8

## Extends

- [`Revenue`](../../../@s4ai/core/business/variables/Revenue.md)

## Constructors

### Constructor

> **new CodeDocumenter**(`config?`): `CodeDocumenter`

Defined in: intelligence/self-documenting-generator.js:9

#### Parameters

##### config?

#### Returns

`CodeDocumenter`

#### Overrides

`EventEmitter.constructor`

## Properties

### codeMetrics

> **codeMetrics**: `object`

Defined in: intelligence/self-documenting-generator.js:15

***

### documentationStyle

> **documentationStyle**: `any`

Defined in: intelligence/self-documenting-generator.js:11

***

### generatedDocs

> **generatedDocs**: `any`[]

Defined in: intelligence/self-documenting-generator.js:14

***

### includeExamples

> **includeExamples**: `boolean`

Defined in: intelligence/self-documenting-generator.js:12

***

### includeTypes

> **includeTypes**: `boolean`

Defined in: intelligence/self-documenting-generator.js:13

## Methods

### analyzeCode()

> **analyzeCode**(`code`): `object`

Defined in: intelligence/self-documenting-generator.js:279

#### Parameters

##### code

`any`

#### Returns

`object`

##### classes

> **classes**: `any`

##### commentRatio

> **commentRatio**: `number`

##### comments

> **comments**: `any`

##### complexity

> **complexity**: `object`

###### complexity.cyclomatic

> **cyclomatic**: `any` = `complexity`

###### complexity.rating

> **rating**: `string`

##### functions

> **functions**: `any`

##### lines

> **lines**: `any`

***

### estimateComplexity()

> **estimateComplexity**(`code`): `object`

Defined in: intelligence/self-documenting-generator.js:296

#### Parameters

##### code

`any`

#### Returns

`object`

##### cyclomatic

> **cyclomatic**: `any` = `complexity`

##### rating

> **rating**: `string`

***

### exportDocumentation()

> **exportDocumentation**(`format?`): `string`

Defined in: intelligence/self-documenting-generator.js:329

#### Parameters

##### format?

`string` = `'markdown'`

#### Returns

`string`

***

### generateAPIDocumentation()

> **generateAPIDocumentation**(`apiDef`): `string`

Defined in: intelligence/self-documenting-generator.js:201

#### Parameters

##### apiDef

`any`

#### Returns

`string`

***

### generateClassDoc()

> **generateClassDoc**(`classDef`): `string`

Defined in: intelligence/self-documenting-generator.js:61

#### Parameters

##### classDef

`any`

#### Returns

`string`

***

### generateComprehensiveDocs()

> **generateComprehensiveDocs**(`module`): `Promise`\<\{ `api`: `string`; `jsdoc`: `string`; `metrics`: \{ `classes`: `any`; `commentRatio`: `number`; `comments`: `any`; `complexity`: \{ `cyclomatic`: `any`; `rating`: `string`; \}; `functions`: `any`; `lines`: `any`; \}; `moduleName`: `any`; `readme`: `string`; `tests`: `string`; `timestamp`: `number`; `typedefs`: `string`; \}\>

Defined in: intelligence/self-documenting-generator.js:308

#### Parameters

##### module

`any`

#### Returns

`Promise`\<\{ `api`: `string`; `jsdoc`: `string`; `metrics`: \{ `classes`: `any`; `commentRatio`: `number`; `comments`: `any`; `complexity`: \{ `cyclomatic`: `any`; `rating`: `string`; \}; `functions`: `any`; `lines`: `any`; \}; `moduleName`: `any`; `readme`: `string`; `tests`: `string`; `timestamp`: `number`; `typedefs`: `string`; \}\>

***

### generateFunctionDoc()

> **generateFunctionDoc**(`functionDef`): `string`

Defined in: intelligence/self-documenting-generator.js:19

#### Parameters

##### functionDef

`any`

#### Returns

`string`

***

### generateREADMESection()

> **generateREADMESection**(`moduleDef`): `string`

Defined in: intelligence/self-documenting-generator.js:100

#### Parameters

##### moduleDef

`any`

#### Returns

`string`

***

### generateTestDocumentation()

> **generateTestDocumentation**(`testDef`): `string`

Defined in: intelligence/self-documenting-generator.js:239

#### Parameters

##### testDef

`any`

#### Returns

`string`

***

### generateTypeDefinitions()

> **generateTypeDefinitions**(`moduleDef`): `string`

Defined in: intelligence/self-documenting-generator.js:161

#### Parameters

##### moduleDef

`any`

#### Returns

`string`

***

### getDocumentationMetrics()

> **getDocumentationMetrics**(): `object`

Defined in: intelligence/self-documenting-generator.js:341

#### Returns

`object`

##### avgCommentRatio

> **avgCommentRatio**: `number`

##### coverage

> **coverage**: `string`

##### totalCodeLines

> **totalCodeLines**: `any` = `totalLines`

##### totalModumented

> **totalModumented**: `number` = `totalDocs`
