Sha256: d3d8353b180d7ca94a55cf93109f4c933d0464ca9710ab233687ed80131068ca

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

module Rbs2ts
  module Converter
    module Helper
      class << self
        INDENT = '  '

        def indent(text, level = 1)
          text
            .split("\n")
            .map {|t| "#{INDENT * level}#{t}" }
            .join("\n")
        end

        TS_RESERVED_WORDS = %w(
          any as boolean break case catch class const constructor continue debugger declare
          default delete do else enum export extends false finally for from function get if
          implements import in instanceof interface let module new null number of package
          private protected public require return set static string super switch symbol
          this throw true try type typeof var void while with yield
        )

        def convert_name(org_name)
          name = org_name.to_s.gsub(/[:@]/, '')

          unless name =~ /^[A-Z]/
            name = CaseTransform.camel_lower(name)
          end

          if TS_RESERVED_WORDS.include?(name)
            "#{name}Type"
          else
            name
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rbs2ts-1.3.1 lib/rbs2ts/converter/helper.rb