当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript acorn-walk.findNodeAt函数代码示例

本文整理汇总了TypeScript中acorn-walk.findNodeAt函数的典型用法代码示例。如果您正苦于以下问题:TypeScript findNodeAt函数的具体用法?TypeScript findNodeAt怎么用?TypeScript findNodeAt使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了findNodeAt函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: setNetworks

    public async setNetworks(network: INetwork): Promise<void> {
      const ast = await this.getAST();
      const moduleExports: IFound = walk.findNodeAt(ast as ESTree.Node, null, null, isModuleExportsExpression);

      if (moduleExports.node) {
        const node = moduleExports.node as ESTree.ExpressionStatement;
        const rightExpression = (node.expression as ESTree.AssignmentExpression).right;

        if (rightExpression.type === 'ObjectExpression') {
          let networksNode = findProperty(rightExpression, 'networks');
          if (!networksNode) {
            networksNode = generateProperty('networks', generateObjectExpression());
            rightExpression.properties.push(networksNode);
          }

          if (networksNode.value.type === 'ObjectExpression') {
            const isExist = findProperty(networksNode.value, network.name);
            if (isExist) {
              throw Error(`Network with name ${network.name} already existed in truffle-config.js`);
            } else {
              const networkNode = generateProperty(network.name, generateObjectExpression());
              networkNode.value = networkOptionsToAst(network);
              networksNode.value.properties.push(networkNode);
            }
          }
        }
      }

      this.ast = ast;
      return this.writeAST();
    }
开发者ID:chrisseg,项目名称:vscode-azure-blockchain-ethereum,代码行数:31,代码来源:truffleConfig.ts

示例2: getNetworks

    public async getNetworks(): Promise<INetwork[]> {
      const ast = await this.getAST();
      const networks: INetwork[] = [];
      const moduleExports: IFound = walk.findNodeAt(ast as ESTree.Node, null, null, isModuleExportsExpression);

      if (moduleExports.node) {
        const node = moduleExports.node as ESTree.ExpressionStatement;
        const rightExpression = (node.expression as ESTree.AssignmentExpression).right;

        if (rightExpression.type === 'ObjectExpression') {
          const networksNode = findProperty(rightExpression, 'networks');
          if (networksNode && networksNode.value.type === 'ObjectExpression') {
            networksNode.value.properties.forEach((property: ESTree.Property) => {
              if (property.key.type === 'Identifier') {
                networks.push({
                  name: property.key.name,
                  options: astToNetworkOptions(property.value as ESTree.ObjectExpression),
                });
              }
              if (property.key.type === 'Literal') {
                networks.push({
                  name: '' + property.key.value,
                  options: astToNetworkOptions(property.value as ESTree.ObjectExpression),
                });
              }
            });
          }
        }
      }

      return networks;
    }
开发者ID:chrisseg,项目名称:vscode-azure-blockchain-ethereum,代码行数:32,代码来源:truffleConfig.ts

示例3: importFs

    public async importFs(): Promise<void> {
      const ast = await this.getAST();
      const fsRequired: IFound = walk.findNodeAt(ast as ESTree.Node, null, null, isVarDeclaration('fs'));
      if (!fsRequired) {
        const declaration = generateVariableDeclaration('fs', 'require', 'fs');
        (ast as ESTree.Program).body.unshift(declaration);
      }

      this.ast = ast;
      await this.writeAST();
    }
开发者ID:chrisseg,项目名称:vscode-azure-blockchain-ethereum,代码行数:11,代码来源:truffleConfig.ts

示例4: astToNetworkOptions

  function astToNetworkOptions(node: ESTree.ObjectExpression): INetworkOption {
    const options: INetworkOption = {
      network_id: '*',
    };

    const id = findProperty(node, 'network_id');
    if (id && id.value.type === 'Literal' &&
       (typeof id.value.value === 'string' || typeof id.value.value === 'number')) {
      options.network_id = id.value.value;
    }

    const port = findProperty(node, 'port');
    if (port && port.value.type === 'Literal' && typeof port.value.value === 'number') {
      options.port = port.value.value;
    }

    const host = findProperty(node, 'host');
    if (host && host.value.type === 'Literal' && typeof host.value.value === 'string') {
      options.host = host.value.value;
    }

    const websockets = findProperty(node, 'websockets');
    if (websockets && websockets.value.type === 'Literal' && typeof websockets.value.value === 'boolean') {
      options.websockets = websockets.value.value;
    }

    const gas = findProperty(node, 'gas');
    if (gas && gas.value.type === 'Literal' && typeof gas.value.value === 'number') {
      options.gas = gas.value.value;
    }

    const gasPrice = findProperty(node, 'gasPrice');
    if (gasPrice && gasPrice.value.type === 'Literal' && typeof gasPrice.value.value === 'number') {
      options.gasPrice = gasPrice.value.value;
    }

    const from = findProperty(node, 'from');
    if (from && from.value.type === 'Literal' && typeof from.value.value === 'string') {
      options.from = from.value.value;
    }

    const skipDryRun = findProperty(node, 'skipDryRun');
    if (skipDryRun && skipDryRun.value.type === 'Literal' && typeof skipDryRun.value.value === 'boolean') {
      options.skipDryRun = skipDryRun.value.value;
    }

    const timeoutBlocks = findProperty(node, 'timeoutBlocks');
    if (timeoutBlocks && timeoutBlocks.value.type === 'Literal' && typeof timeoutBlocks.value.value === 'number') {
      options.timeoutBlocks = timeoutBlocks.value.value;
    }

    const provider = findProperty(node, 'provider');
    if (provider && provider.value.type === 'FunctionExpression') {
      const hdWalletProvider: IFound = walk.findNodeAt(provider, null, null, isHDWalletProvider);
      if (hdWalletProvider.node && hdWalletProvider.node.type === 'NewExpression') {
        options.provider = astToHDWalletProvider(hdWalletProvider.node);
      }
    }

    if (provider && provider.value.type === 'NewExpression') {
      options.provider = astToHDWalletProvider(provider.value);
    }

    const consortiumId = findProperty(node, 'consortium_id');
    if (consortiumId && consortiumId.value.type === 'Literal' && typeof consortiumId.value.value === 'number') {
      options.consortium_id = consortiumId.value.value;
    }

    return options;
  }
开发者ID:chrisseg,项目名称:vscode-azure-blockchain-ethereum,代码行数:70,代码来源:truffleConfig.ts


注:本文中的acorn-walk.findNodeAt函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。