Class: Oxc::Result

Inherits:
Object
  • Object
show all
Includes:
Diagnosed
Defined in:
lib/oxc/result.rb,
sig/oxc/result.rbs

Direct Known Subclasses

MinifyResult, TransformResult

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Diagnosed

#errors, #errors?, #panicked?, #warnings, #warnings?

Constructor Details

#initialize(code:, diagnostics:, map: nil, legal_comments: [], panicked: false) ⇒ Result

: (code: String, diagnostics: Array, ?map: String?, ?legal_comments: Array, ?panicked: bool) -> void

Parameters:

  • code: (String)
  • diagnostics: (Array[Oxc::Diagnostic])
  • map: (String, nil) (defaults to: nil)
  • legal_comments: (Array[String]) (defaults to: [])
  • panicked: (Boolean) (defaults to: false)


13
14
15
16
17
18
19
# File 'lib/oxc/result.rb', line 13

def initialize(code:, diagnostics:, map: nil, legal_comments: [], panicked: false)
  @code = code
  @map = map
  @legal_comments = legal_comments.freeze
  @diagnostics = diagnostics.freeze
  @panicked = panicked
end

Instance Attribute Details

#codeString (readonly)

Signature:

  • String

Returns:

  • (String)


7
8
9
# File 'lib/oxc/result.rb', line 7

def code
  @code
end

#diagnosticsArray[Oxc::Diagnostic] (readonly)

Signature:

  • Array[Oxc::Diagnostic]

Returns:



10
11
12
# File 'lib/oxc/result.rb', line 10

def diagnostics
  @diagnostics
end

Signature:

  • Array[String]

Returns:

  • (Array[String])


9
10
11
# File 'lib/oxc/result.rb', line 9

def legal_comments
  @legal_comments
end

#mapString? (readonly)

Signature:

  • String?

Returns:

  • (String, nil)


8
9
10
# File 'lib/oxc/result.rb', line 8

def map
  @map
end

Instance Method Details

#inspectString

: () -> String

Returns:

  • (String)


35
36
37
# File 'lib/oxc/result.rb', line 35

def inspect
  "#<#{self.class.name} #{parts.join(" ")}>"
end

#partsArray[String]

: () -> Array

Returns:

  • (Array[String])


42
43
44
45
46
47
48
49
# File 'lib/oxc/result.rb', line 42

def parts
  parts = ["code=#{code.inspect}"] #: Array[String]
  parts << "map=#{map.length} bytes" if map
  parts << "legal_comments=#{legal_comments.inspect}" unless legal_comments.empty?
  parts << "diagnostics=#{diagnostics.length}" unless diagnostics.empty?

  parts
end

#to_sString

: () -> String

Returns:

  • (String)


30
31
32
# File 'lib/oxc/result.rb', line 30

def to_s
  code
end

#validate!(strict: false) ⇒ self

: (?strict: bool?) -> self

Parameters:

  • strict: (Boolean, nil) (defaults to: false)

Returns:

  • (self)


22
23
24
25
26
27
# File 'lib/oxc/result.rb', line 22

def validate!(strict: false)
  return self unless errors? || panicked?
  return self unless strict || panicked? || code.empty?

  raise SyntaxError.new(errors.first&.message || "oxc could not read the source", self)
end