UNPKG

vue-di-loader

Version:

Vue Dependency Injection Webpack Loader

98 lines 3.81 kB
"use strict"; 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