Class: CloudflareWorkers::AutoAwait::Transformer
- Inherits:
-
Object
- Object
- CloudflareWorkers::AutoAwait::Transformer
- Defined in:
- lib/cloudflare_workers/auto_await/transformer.rb
Class Method Summary collapse
Class Method Details
.already_awaited?(buffer, range) ⇒ Boolean
19 20 21 |
# File 'lib/cloudflare_workers/auto_await/transformer.rb', line 19 def self.already_awaited?(buffer, range) buffer.source[range.end_pos..]&.match?(/\A\s*\.__await__\b/) end |
.transform(source, await_nodes, buffer) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/cloudflare_workers/auto_await/transformer.rb', line 8 def self.transform(source, await_nodes, buffer) rewriter = Parser::Source::TreeRewriter.new(buffer) await_nodes.each do |node| range = node.loc.expression next unless range next if already_awaited?(buffer, range) rewriter.replace(range, "#{range.source}.__await__") end rewriter.process end |