basic_node — Code View¶
← Back to Container | ← Back to System
Component Information¶
| Field | Value |
|---|---|
| Component | basic_node |
| Container | Application |
| Type | module |
| Description | TypeScript/JavaScript code extractor |
| --- |
Code Structure¶
Class Diagram¶

Code Elements¶
44 code element(s)
#### Functions ##### `basicNodeExtractor()` Extract architecture information from a Node.js/TypeScript codebase | Field | Value | | --- | --- | | **Type** | `function` | | **Visibility** | `public` | | **Async** | Yes || **Returns** | `Promiseany — - Configuration node with include/exclude patterns- `ctx`: import("C:/Users/chris/git/archlette/src/core/types").PipelineContext — - Optional pipeline context with logger
**Examples:**
---
##### `extractClasses()`
Extract all class declarations from a source file
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedClass[]` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/class-extractor.ts:32` |
**Parameters:**
- `sourceFile`: SourceFile
---
##### `extractClass()`
Extract information from a single class declaration
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedClass` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/class-extractor.ts:53` |
**Parameters:**
- `cls`: ClassDeclaration- `filePath`: string
---
##### `extractMethod()`
Extract method information from a class
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedMethod` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/class-extractor.ts:92` |
**Parameters:**
- `method`: MethodDeclaration- `filePath`: string
---
##### `extractProperty()`
Extract property information from a class
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedProperty` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/class-extractor.ts:121` |
**Parameters:**
- `prop`: PropertyDeclaration- `filePath`: string
---
##### `extractMethodParameter()`
Extract parameter information
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ParameterInfo` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/class-extractor.ts:147` |
**Parameters:**
- `param`: any- `descriptions`: Map
---
##### `mapVisibility()`
Map ts-morph Scope to our visibility string
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `"public" \| "private" \| "protected"` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/class-extractor.ts:168` |
**Parameters:**
- `scope`: any
---
##### `getFileJsDocs()`
Get JSDoc comments from a source file
Checks both the first statement and module-level JSDoc
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `Node[]` - Array of JSDoc nodes (empty if none found) || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:38` |
**Parameters:**
- `sourceFile`: SourceFile — - TypeScript source file to extract JSDoc from
---
##### `extractFileComponent()`
Extract component information from file-level JSDoc
Checks the first JSDoc comment in the file for
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector").ComponentInfo` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:64` |
**Parameters:**
- `sourceFile`: SourceFile
---
##### `extractFileActors()`
Extract actors from file-level JSDoc
Looks for
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector").ActorInfo[]` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:90` |
**Parameters:**
- `sourceFile`: SourceFile
---
##### `extractFileRelationships()`
Extract relationships from file-level JSDoc
Looks for
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector").RelationshipInfo[]` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:109` |
**Parameters:**
- `sourceFile`: SourceFile
---
##### `extractComponentFromJsDoc()`
Extract component info from a JSDoc node
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector").ComponentInfo` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:125` |
**Parameters:**
- `jsDoc`: Node
---
##### `extractActorsFromJsDoc()`
Extract actors from a JSDoc node
Parses
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector").ActorInfo[]` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:157` |
**Parameters:**
- `jsDoc`: Node
---
##### `parseActorTag()`
Parse an
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector").ActorInfo` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:188` |
**Parameters:**
- `tag`: JSDocTag
---
##### `extractRelationshipsFromJsDoc()`
Extract relationships from a JSDoc node
Parses
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector").RelationshipInfo[]` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:225` |
**Parameters:**
- `jsDoc`: Node
---
##### `parseUsesTag()`
Parse a
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector").RelationshipInfo` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:252` |
**Parameters:**
- `tag`: JSDocTag
---
##### `extractComponentName()`
Extract component name from a JSDoc tag
Handles formats like:
-
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `string` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:285` |
**Parameters:**
- `tag`: JSDocTag
---
##### `inferComponentFromPath()`
Infer component name from file path
- Files in subdirectories use the immediate parent folder name
- Files in root directory use a special marker that will be replaced with container name
Examples:
- /path/to/project/src/utils/helper.ts -> 'utils'
- /path/to/project/src/index.ts -> ROOT_COMPONENT_MARKER
- /path/to/project/services/api/client.ts -> 'api'
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector").ComponentInfo` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/component-detector.ts:327` |
**Parameters:**
- `filePath`: string
---
##### `extractDocumentation()`
Extract documentation information from JSDoc
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").DocInfo` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/doc-extractor.ts:13` |
**Parameters:**
- `jsDocs`: JSDoc[]
---
##### `extractDeprecation()`
Extract deprecation information from JSDoc
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").DeprecationInfo` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/doc-extractor.ts:64` |
**Parameters:**
- `jsDocs`: JSDoc[]
---
##### `extractParameterDescriptions()`
Extract parameter descriptions from JSDoc
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `MapJSDoc[]
---
##### `extractReturnDescription()`
Extract return description from JSDoc
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `string` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/doc-extractor.ts:116` |
**Parameters:**
- `jsDocs`: JSDoc[]
---
##### `extractParameterName()`
Extract parameter name from
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `string` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/doc-extractor.ts:131` |
**Parameters:**
- `tag`: JSDocTag — Handles formats like:
---
##### `findSourceFiles()`
Find source files matching include/exclude patterns
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Async** | Yes || **Returns** | `Promiseimport("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractorInputs
---
##### `findPackageJsonFiles()`
Find package.json files within the search paths
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Async** | Yes || **Returns** | `Promiseimport("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractorInputs
---
##### `readPackageInfo()`
Read and parse package.json file
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Async** | Yes || **Returns** | `Promisestring
---
##### `findNearestPackage()`
Find the nearest parent package.json for a given file
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").PackageInfo` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/file-finder.ts:122` |
**Parameters:**
- `filePath`: string- `packages`: import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").PackageInfo[]
---
##### `parseFiles()`
Parse and extract information from source files
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Async** | Yes || **Returns** | `Promisestring[]
---
##### `extractFunctions()`
Extract all function declarations from a source file
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedFunction[]` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/function-extractor.ts:21` |
**Parameters:**
- `sourceFile`: SourceFile
---
##### `extractFunction()`
Extract information from a single function declaration
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedFunction` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/function-extractor.ts:44` |
**Parameters:**
- `func`: FunctionDeclaration- `filePath`: string
---
##### `extractFunctionParameter()`
Extract parameter information
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ParameterInfo` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/function-extractor.ts:80` |
**Parameters:**
- `param`: any- `descriptions`: Map
---
##### `extractArrowFunctions()`
Extract arrow functions assigned to const/let/var
Examples:
const handleClick = () => {}
export const createUser = async (data) => {}
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedFunction[]` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/function-extractor.ts:104` |
**Parameters:**
- `sourceFile`: SourceFile
---
##### `extractImports()`
Extract all import declarations from a source file
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedImport[]` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/import-extractor.ts:15` |
**Parameters:**
- `sourceFile`: SourceFile
---
##### `mapToIR()`
Map file extractions to ArchletteIR
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `public` |
| **Returns** | `z.inferimport("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").FileExtraction[]- `packages`: import("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").PackageInfo[]- `systemInfo`: z.infer
---
##### `mapFunction()`
Map a function to a CodeItem
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `z.inferimport("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedFunction- `filePath`: string- `componentId`: string
---
##### `mapClass()`
Map a class to a CodeItem
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `z.inferimport("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedClass- `filePath`: string- `componentId`: string
---
##### `mapMethod()`
Map a class method to a CodeItem
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `z.inferimport("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedMethod- `className`: string- `filePath`: string- `componentId`: string
---
##### `resolveImportPath()`
Resolve an import path to an absolute file path
Handles relative imports (./file, ../file) and resolves to actual file paths
Returns undefined for node_modules imports or unresolvable paths
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `string` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/to-ir-mapper.ts:518` |
**Parameters:**
- `importSource`: string- `fromFilePath`: string
---
##### `mapImportToComponentRelationships()`
Map imports to component relationships (component-level dependencies)
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `z.inferimport("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedImport- `filePath`: string- `componentId`: string- `fileToComponentMap`: Map
---
##### `mapImportRelationships()`
Map imports to relationships (original code-level format for backward compatibility)
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `z.inferimport("C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/types").ExtractedImport- `filePath`: string
---
##### `generateId()`
Generate a unique ID for a code element
Format: filePath:symbolName
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `string` || **Location** | `C:/Users/chris/git/archlette/src/extractors/builtin/basic-node/to-ir-mapper.ts:634` |
**Parameters:**
- `filePath`: string- `symbolName`: string
---
##### `getDefaultSystem()`
Get default system info from package.json if available
| Field | Value |
| --- | --- |
| **Type** | `function` |
| **Visibility** | `private` |
| **Returns** | `z.inferSourceFile
---
##### `extractInterfaces()`
Extract interfaces from a source file
Examples:
interface User { id: string; name: string }
export interface ApiClient { getSourceFile
---