UNPKG

@code-to-json/core

Version:

[![Build Status](https://travis-ci.org/code-to-json/code-to-json.svg?branch=master)](https://travis-ci.org/code-to-json/code-to-json) [![Build Status](https://dev.azure.com/code-to-json/code-to-json/_apis/build/status/code-to-json.code-to-json)](https://d

51 lines 3.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const processing_queue_1 = require("../processing-queue"); const declaration_1 = require("../serializers/declaration"); const node_1 = require("../serializers/node"); const source_file_1 = require("../serializers/source-file"); const symbol_1 = require("../serializers/symbol"); const type_1 = require("../serializers/type"); const options_1 = require("./options"); /** * Walk a typescript program, using specified entry points, returning * JSON information describing the code */ function walkProgram(program, options = {}) { const opts = options_1.default(options); // Create the type-checker const checker = program.getTypeChecker(); // Get all non-declaration source files const sourceFiles = program.getSourceFiles().filter(opts.shouldIncludeSourceFile); // Initialize the work-processing queue const q = processing_queue_1.create(); sourceFiles.forEach(sf => q.queue(sf, 'sourceFile', checker)); const data = q.drain({ handleNode(ref, item) { return node_1.default(item, checker, ref, q); }, handleType(ref, item) { return type_1.default(item, checker, ref, q); }, handleSourceFile(ref, item) { return source_file_1.default(item, checker, ref, q); }, handleSymbol(ref, item) { return symbol_1.default(item, checker, ref, q); }, handleDeclaration(ref, item) { return declaration_1.default(item, checker, ref, q); }, }); return { codeToJson: { versions: { core: 'pkg.version', }, format: 'raw', }, data, }; } exports.walkProgram = walkProgram; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd2Fsa2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsMERBQTREO0FBUTVELDREQUF5RjtBQUN6Riw4Q0FBb0U7QUFDcEUsNERBQXVGO0FBQ3ZGLGtEQUEwRTtBQUMxRSw4Q0FBb0U7QUFDcEUsdUNBQW1FO0FBb0JuRTs7O0dBR0c7QUFDSCxTQUFnQixXQUFXLENBQ3pCLE9BQWdCLEVBQ2hCLFVBQXNDLEVBQUU7SUFFeEMsTUFBTSxJQUFJLEdBQUcsaUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsMEJBQTBCO0lBQzFCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUV6Qyx1Q0FBdUM7SUFDdkMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUVsRix1Q0FBdUM7SUFDdkMsTUFBTSxDQUFDLEdBQUcseUJBQVcsRUFBRSxDQUFDO0lBQ3hCLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUU5RCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ25CLFVBQVUsQ0FBQyxHQUFZLEVBQUUsSUFBVTtZQUNqQyxPQUFPLGNBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsVUFBVSxDQUFDLEdBQVksRUFBRSxJQUFVO1lBQ2pDLE9BQU8sY0FBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxnQkFBZ0IsQ0FBQyxHQUFrQixFQUFFLElBQWdCO1lBQ25ELE9BQU8scUJBQW1CLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELFlBQVksQ0FBQyxHQUFjLEVBQUUsSUFBUztZQUNwQyxPQUFPLGdCQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELGlCQUFpQixDQUFDLEdBQW1CLEVBQUUsSUFBaUI7WUFDdEQsT0FBTyxxQkFBb0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsT0FBTztRQUNMLFVBQVUsRUFBRTtZQUNWLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsYUFBYTthQUNwQjtZQUNELE1BQU0sRUFBRSxLQUFLO1NBQ2Q7UUFDRCxJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUM7QUF6Q0Qsa0NBeUNDIn0=