當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript traverse.NodePath類代碼示例

本文整理匯總了TypeScript中@babel/traverse.NodePath的典型用法代碼示例。如果您正苦於以下問題:TypeScript NodePath類的具體用法?TypeScript NodePath怎麽用?TypeScript NodePath使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了NodePath類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: transformNode

export function transformNode(t: typeof babelTypes, path: NodePath, options: TransformOptions = {}) {
    const parseResult = parse(t, path, options);
    if (parseResult == null)
        return;
    const transformResult = transform(t, transformCallExpression(parseResult));
    path.replaceWith(transformResult);
}
開發者ID:dsherret,項目名稱:ts-nameof,代碼行數:7,代碼來源:index.ts

示例2: getBestComment

export function getBestComment(nodePath: NodePath): string|undefined {
  const maybeComment = getAttachedComment(nodePath.node);
  if (maybeComment !== undefined) {
    return maybeComment;
  }

  const parent = nodePath.parentPath;
  if (parent === undefined) {
    return undefined;
  }
  if (!isStatementWithUniqueStatementChild(parent.node) &&
      babel.isStatement(nodePath.node)) {
    // Don't walk up above the nearest statement.
    return undefined;
  }
  if (babel.isVariableDeclaration(parent.node) &&
      parent.node.declarations.length !== 1) {
    // The parent node is multiple declarations. We can't be sure its
    // comment applies to us.
    return undefined;
  }

  if (parent.isClassBody() || nodePath.isObjectMember()) {
    // don't go above an object or class member.
    return undefined;
  }

  return getBestComment(parent);
}
開發者ID:Polymer,項目名稱:tools,代碼行數:29,代碼來源:esutil.ts

示例3: return

  const shouldHoistExpression = (expr: NodePath): boolean => {
    if (!expr.isCallExpression()) {
      return false;
    }

    const callee = expr.get('callee');
    // TODO: avoid type casts - the types can be arrays (is it possible to ignore that without casting?)
    const object = callee.get('object') as NodePath;
    const property = callee.get('property') as NodePath;
    return (
      property.isIdentifier() &&
      FUNCTIONS[property.node.name] &&
      (object.isIdentifier(JEST_GLOBAL) ||
        (callee.isMemberExpression() && shouldHoistExpression(object))) &&
      FUNCTIONS[property.node.name](expr.get('arguments'))
    );
  };
開發者ID:Volune,項目名稱:jest,代碼行數:17,代碼來源:index.ts

示例4: getSimpleObjectPropPaths

export function*
    getSimpleObjectPropPaths(nodePath: NodePath<babel.ObjectExpression>) {
  // tslint:disable-next-line: no-any typings are wrong here
  const props = nodePath.get('properties') as any as Array<NodePath>;
  for (const propPath of props) {
    if (propPath.isObjectProperty() || propPath.isObjectMethod()) {
      yield propPath;
    }
  }
}
開發者ID:Polymer,項目名稱:tools,代碼行數:10,代碼來源:esutil.ts

示例5: dispatchVisitMethods

/**
 * Calls into visitor methods for visited node types using `estraverse` API of
 * providing the node and the parent node, and translates the `VisitorOption`
 * return value into directives on the `path` object used by `babel-traverse` to
 * advise visitor control flow, i.e. `stop`, `skip`, and `remove`.
 */
function dispatchVisitMethods(
    methodNames: Array<keyof Visitor>,
    path: NodePath<babel.Node>,
    visitor: Visitor): void {
  for (const methodName of methodNames) {
    if (typeof visitor[methodName] === 'function') {
      // TODO(rictic): can maybe remove this cast in TS 2.8
      const result = (visitor[methodName] as VisitorCallback<babel.Node>)!
          (path.node, path.parent, path);
      switch (result) {
        case VisitorOption.Break:
          return path.stop();
        case VisitorOption.Skip:
          return path.skip();
        case VisitorOption.Remove:
          return path.remove();
      }
    }
  }
}
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:26,代碼來源:estraverse-shim.ts

示例6: getNodeText

    function getNodeText(node: Node) {
        const outerNodeStart = path.node.start!;
        const innerNodeStart = node.start!;
        const offset = innerNodeStart - outerNodeStart;

        return path.getSource().substr(offset, node.end! - node.start!);
    }
開發者ID:dsherret,項目名稱:ts-nameof,代碼行數:7,代碼來源:parse.ts


注:本文中的@babel/traverse.NodePath類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。