Class: Zodra::Export::TypeScriptMapper

Inherits:
Object
  • Object
show all
Defined in:
lib/zodra/export/type_script_mapper.rb

Constant Summary collapse

PRIMITIVE_MAP =
{
  string: 'string',
  integer: 'number',
  decimal: 'number',
  number: 'number',
  boolean: 'boolean',
  datetime: 'string',
  date: 'string',
  uuid: 'string',
  binary: 'string'
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(key_format: :keep) ⇒ TypeScriptMapper

Returns a new instance of TypeScriptMapper.



18
19
20
# File 'lib/zodra/export/type_script_mapper.rb', line 18

def initialize(key_format: :keep)
  @key_format = key_format
end

Instance Method Details

#map_contract(contract) ⇒ Object



34
35
36
37
38
# File 'lib/zodra/export/type_script_mapper.rb', line 34

def map_contract(contract)
  params_output = map_contract_params(contract)
  descriptor_output = map_contract_descriptor(contract)
  [params_output, descriptor_output].compact.reject(&:empty?).join("\n\n")
end

#map_contracts(contracts) ⇒ Object



40
41
42
# File 'lib/zodra/export/type_script_mapper.rb', line 40

def map_contracts(contracts)
  contracts.map { |contract| map_contract(contract) }.join("\n\n")
end

#map_definition(definition) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/zodra/export/type_script_mapper.rb', line 22

def map_definition(definition)
  case definition.kind
  when :object then map_object(definition)
  when :enum then map_enum(definition)
  when :union then map_union(definition)
  end
end

#map_definitions(definitions, cycles: Set.new) ⇒ Object



30
31
32
# File 'lib/zodra/export/type_script_mapper.rb', line 30

def map_definitions(definitions, cycles: Set.new)
  definitions.map { |definition| map_definition(definition) }.join("\n\n")
end