Class: Opal::Vite::SourceMapValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/opal/vite/source_map.rb

Class Method Summary collapse

Class Method Details

.info(source_map_json) ⇒ Object

Get information about a source map



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/opal/vite/source_map.rb', line 25

def self.info(source_map_json)
  return nil unless valid?(source_map_json)

  map = JSON.parse(source_map_json)
  {
    version: map['version'],
    sources: map['sources'],
    sources_count: map['sources']&.length || 0,
    has_names: !map['names'].nil?,
    has_source_content: !map['sourcesContent'].nil?
  }
end

.valid?(source_map_json) ⇒ Boolean

Validate a source map JSON string

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/opal/vite/source_map.rb', line 7

def self.valid?(source_map_json)
  return false if source_map_json.nil? || source_map_json.empty?

  begin
    map = JSON.parse(source_map_json)

    # Check required fields
    return false unless map['version']
    return false unless map['sources']
    return false unless map['mappings']

    true
  rescue JSON::ParserError
    false
  end
end