sol-merger
Version:
Merges all import files into single file.
52 lines • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImportsAnalyzer = void 0;
const importVisitor_1 = require("./antlr/visitors/importVisitor");
class ImportsAnalyzer {
static isAllImport(parentImport) {
return (!parentImport ||
(parentImport !== null &&
parentImport.globalRenameImport === null &&
parentImport.namedImports === null));
}
static isRenameGlobalImport(parentImport) {
return parentImport && parentImport.globalRenameImport !== null;
}
constructor(contents) {
this.contents = contents;
}
/**
* Analyzes all the imports of the file
*/
analyzeImports() {
const imports = [];
const importDirectives = [];
const visitor = new importVisitor_1.SolidityImportVisitor(this.contents);
visitor.visit((i) => {
importDirectives.push(i);
});
for (const importDirective of importDirectives) {
const analyzedImport = this.analyzeImport(importDirective);
imports.push(analyzedImport);
}
return imports;
}
/**
* Single import statement to process. Basicly it analizes next things:
*
* 1. Rename of the global import if any
* 2. Named imports if any
* 3. Extract filename from import
*
*/
analyzeImport(importVisitResult) {
return {
file: importVisitResult.filename,
globalRenameImport: importVisitResult.globalRename,
importStatement: this.contents.substring(importVisitResult.start, importVisitResult.end + 1),
namedImports: importVisitResult.namedImports,
};
}
}
exports.ImportsAnalyzer = ImportsAnalyzer;
//# sourceMappingURL=importsAnalyzer.js.map