本文整理汇总了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;未经允许,请勿转载。 |
请发表评论