aboutsummaryrefslogtreecommitdiff
path: root/node_modules/typedoc/dist/lib/converter/nodes/block.js.map
blob: 2d7a33e157e5ce1bc35b1ec9dadd41982f2051de (plain)
1
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/lib/converter/nodes/block.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\n\nimport { Reflection, ReflectionKind, ReflectionFlag } from '../../models/index';\nimport { createDeclaration } from '../factories/index';\nimport { Context } from '../context';\nimport { Component, ConverterNodeComponent } from '../components';\nimport { Option } from '../../utils/component';\nimport { ParameterType } from '../../utils/options/declaration';\n\nconst prefered: ts.SyntaxKind[] = [\n    ts.SyntaxKind.ClassDeclaration,\n    ts.SyntaxKind.InterfaceDeclaration,\n    ts.SyntaxKind.EnumDeclaration\n];\n\nexport enum SourceFileMode {\n    File, Modules\n}\n\n@Component({name: 'node:block'})\nexport class BlockConverter extends ConverterNodeComponent<ts.SourceFile|ts.Block|ts.ModuleBlock> {\n    @Option({\n        name: 'mode',\n        help: \"Specifies the output mode the project is used to be compiled with: 'file' or 'modules'\",\n        type: ParameterType.Map,\n        map: {\n            'file': SourceFileMode.File,\n            'modules': SourceFileMode.Modules\n        },\n        defaultValue: SourceFileMode.Modules\n    })\n    mode: number;\n\n    /**\n     * List of supported TypeScript syntax kinds.\n     */\n    supports: ts.SyntaxKind[] = [\n        ts.SyntaxKind.Block,\n        ts.SyntaxKind.ModuleBlock,\n        ts.SyntaxKind.SourceFile\n    ];\n\n    /**\n     * Analyze the given class declaration node and create a suitable reflection.\n     *\n     * @param context  The context object describing the current state the converter is in.\n     * @param node     The class declaration node that should be analyzed.\n     * @return The resulting reflection or NULL.\n     */\n    convert(context: Context, node: ts.SourceFile|ts.Block|ts.ModuleBlock): Reflection {\n        if (node.kind === ts.SyntaxKind.SourceFile) {\n            this.convertSourceFile(context, <ts.SourceFile> node);\n        } else {\n            this.convertStatements(context, node);\n        }\n\n        return context.scope;\n    }\n\n    /**\n     * Analyze the given source file node and create a suitable reflection.\n     *\n     * @param context  The context object describing the current state the converter is in.\n     * @param node     The source file node that should be analyzed.\n     * @return The resulting reflection or NULL.\n     */\n    private convertSourceFile(context: Context, node: ts.SourceFile): Reflection {\n        let result = context.scope;\n\n        context.withSourceFile(node, () => {\n            if (this.mode === SourceFileMode.Modules) {\n                result = createDeclaration(context, node, ReflectionKind.ExternalModule, node.fileName);\n                context.withScope(result, () => {\n                    this.convertStatements(context, node);\n                    result.setFlag(ReflectionFlag.Exported);\n                });\n            } else {\n                this.convertStatements(context, node);\n            }\n        });\n\n        return result;\n    }\n\n    private convertStatements(context: Context, node: ts.SourceFile|ts.Block|ts.ModuleBlock) {\n        if (node.statements) {\n            const statements: ts.Statement[] = [];\n\n            node.statements.forEach((statement) => {\n                if (prefered.indexOf(statement.kind) !== -1) {\n                    this.owner.convertNode(context, statement);\n                } else {\n                    statements.push(statement);\n                }\n            });\n\n            statements.forEach((statement) => {\n                this.owner.convertNode(context, statement);\n            });\n        }\n    }\n}\n"]}