bobflux-gen
Version:
Generator for monkey files in bobflux application.
40 lines (39 loc) • 1.27 kB
JavaScript
;
var ts = require("typescript");
var tsa = require("../tsAnalyzer");
function create(saveCallback) {
return {
accept: function (n) {
return n.kind === ts.SyntaxKind.ImportDeclaration;
},
visit: function (id) {
var bindings = id.importClause.namedBindings;
var path = id.moduleSpecifier;
if (isNamespaceImport(bindings)) {
saveCallback({
prefix: bindings.name.text,
relativePath: path.text,
fullPath: tsa.resolvePathStringLiteral(path),
types: []
});
}
else {
saveCallback({
prefix: null,
relativePath: path.text,
fullPath: tsa.resolvePathStringLiteral(path),
types: bindings.elements.map(function (is) {
return {
targetType: is.name.text,
sourceType: (is.propertyName || is.name).text
};
})
});
}
}
};
}
exports.create = create;
function isNamespaceImport(ni) {
return 'name' in ni;
}