vue-di-loader
Version:
Vue Dependency Injection Webpack Loader
98 lines • 3.81 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var ts_simple_ast_1 = require("ts-simple-ast");
var argumenter_1 = require("@joejukan/argumenter");
var function_1 = require("../function");
var web_kit_1 = require("@joejukan/web-kit");
var ASTParser = /** @class */ (function () {
function ASTParser() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var argue = new argumenter_1.Argumenter(args);
this.source = argue.instance(ts_simple_ast_1.SourceFile);
}
ASTParser.prototype.log = function (value) {
function_1.log("[ast-finder] " + value);
};
ASTParser.prototype.findVariableDeclaration = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var argue = new argumenter_1.Argumenter(args);
var source = this.source;
var name = argue.string;
var ctor = argue.function;
if (ctor && !name) {
name = ctor.name;
}
if (source) {
var statements = source.getVariableStatements();
if (statements) {
for (var i = 0; i < statements.length; i++) {
var declarations = statements[i].getDeclarations();
if (declarations) {
for (var j = 0; j < declarations.length; j++) {
var declaration = declarations[j];
var type = declaration.getType();
if (type) {
var symbol = type.getSymbol() || type.getAliasSymbol();
if (symbol && symbol.getName() === name) {
return declaration;
}
}
}
}
}
}
}
return undefined;
};
ASTParser.prototype.exists = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var argue = new argumenter_1.Argumenter(args);
var key = argue.string;
var kind = argue.number;
var node = argue.object;
return typeof this.get(node, key, kind) !== 'undefined';
};
ASTParser.prototype.get = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var argue = new argumenter_1.Argumenter(args);
var key = argue.string;
var kind = argue.number;
var node = argue.object;
var syntax = undefined;
switch (node.getKind()) {
case ts_simple_ast_1.SyntaxKind.SyntaxList:
syntax = node;
break;
case ts_simple_ast_1.SyntaxKind.ObjectLiteralExpression:
syntax = node.getFirstChildByKind(ts_simple_ast_1.SyntaxKind.SyntaxList);
break;
}
if (syntax) {
var pairs = syntax.getChildren() || [];
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[0];
var id = pair.getFirstChildByKind(ts_simple_ast_1.SyntaxKind.Identifier);
var literal = (web_kit_1.ok(kind) ? pair.getFirstChildByKind(kind) : pair.getLastChild());
if (key === id.getText() || "'" + key + "'" === id.getText() || "\"" + key + "\"" === id.getText()) {
return literal;
}
}
}
return;
};
return ASTParser;
}());
exports.ASTParser = ASTParser;
//# sourceMappingURL=ast.parser.js.map
;