@code-to-json/core
Version:
[](https://travis-ci.org/code-to-json/code-to-json) [](https://d
50 lines • 3.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("@code-to-json/utils");
const amd_dependency_1 = require("./amd-dependency");
const file_reference_1 = require("./file-reference");
/**
* Serialize a SourceFile to a POJO
* @param sourceFile SourceFile to serialize
* @param checker A type-checker
* @param ref Refernece to the SourceFile being serialized
* @param _queue Processing queue
*/
function serializeSourceFile(sourceFile, checker, ref, _queue) {
const { fileName, moduleName, isDeclarationFile, amdDependencies, referencedFiles: _referencedFiles, typeReferenceDirectives: _typeReferenceDirectives, libReferenceDirectives: _libReferenceDirectives
// statements: _statements
} = sourceFile;
// tslint:disable-next-line:no-commented-code
// const statements = _statements.map(s => _queue.queue(s, 'node', checker)).filter(isRef);
const basicInfo = {
id: utils_1.refId(ref),
entity: 'sourceFile',
moduleName,
fileName,
isDeclarationFile
// statements
};
if (amdDependencies && amdDependencies.length > 0) {
basicInfo.amdDependencies = amdDependencies.map(amd_dependency_1.default);
}
if (_referencedFiles && _referencedFiles.length > 0) {
basicInfo.referencedFiles = _referencedFiles.map(file_reference_1.default);
}
if (_typeReferenceDirectives && _typeReferenceDirectives.length > 0) {
basicInfo.referencedFiles = _typeReferenceDirectives.map(file_reference_1.default);
}
if (_libReferenceDirectives && _libReferenceDirectives.length > 0) {
basicInfo.referencedFiles = _libReferenceDirectives.map(file_reference_1.default);
}
/**
* Take the source file's AST node, and use the checker
* to obtain a Symbol (AST + Type Information, via the binder)
*/
const sym = checker.getSymbolAtLocation(sourceFile);
if (sym) {
basicInfo.symbol = _queue.queue(sym, 'symbol', checker);
}
return basicInfo;
}
exports.default = serializeSourceFile;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VyaWFsaXplcnMvc291cmNlLWZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQ0FBNEM7QUFLNUMscURBQW1GO0FBQ25GLHFEQUFtRjtBQWFuRjs7Ozs7O0dBTUc7QUFDSCxTQUF3QixtQkFBbUIsQ0FDekMsVUFBc0IsRUFDdEIsT0FBb0IsRUFDcEIsR0FBa0IsRUFDbEIsTUFBdUI7SUFFdkIsTUFBTSxFQUNKLFFBQVEsRUFDUixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixlQUFlLEVBQUUsZ0JBQWdCLEVBQ2pDLHVCQUF1QixFQUFFLHdCQUF3QixFQUNqRCxzQkFBc0IsRUFBRSx1QkFBdUI7SUFDL0MsMEJBQTBCO01BQzNCLEdBQUcsVUFBVSxDQUFDO0lBRWYsNkNBQTZDO0lBQzdDLDJGQUEyRjtJQUMzRixNQUFNLFNBQVMsR0FBeUI7UUFDdEMsRUFBRSxFQUFFLGFBQUssQ0FBQyxHQUFHLENBQUM7UUFDZCxNQUFNLEVBQUUsWUFBWTtRQUNwQixVQUFVO1FBQ1YsUUFBUTtRQUNSLGlCQUFpQjtRQUNqQixhQUFhO0tBQ2QsQ0FBQztJQUNGLElBQUksZUFBZSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2pELFNBQVMsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyx3QkFBc0IsQ0FBQyxDQUFDO0tBQ3pFO0lBQ0QsSUFBSSxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ25ELFNBQVMsQ0FBQyxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLHdCQUFzQixDQUFDLENBQUM7S0FDMUU7SUFDRCxJQUFJLHdCQUF3QixJQUFJLHdCQUF3QixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDbkUsU0FBUyxDQUFDLGVBQWUsR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsd0JBQXNCLENBQUMsQ0FBQztLQUNsRjtJQUNELElBQUksdUJBQXVCLElBQUksdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNqRSxTQUFTLENBQUMsZUFBZSxHQUFHLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyx3QkFBc0IsQ0FBQyxDQUFDO0tBQ2pGO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELElBQUksR0FBRyxFQUFFO1FBQ1AsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDekQ7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBakRELHNDQWlEQyJ9