Sha256: 769a1fb544ae042feb9a79a49c9281109f99c87b1050b2e5e264dd764832e512

Contents?: true

Size: 478 Bytes

Versions: 1

Compression:

Stored size: 478 Bytes

Contents

# typed: strict

class SerializeValue
  extend T::Sig

  sig { params(value: T.untyped).returns(T.untyped) }
  def self.serialize(value)
    if value.is_a?(Hash)
      HashTransformer.serialize_values(value)
    elsif value.is_a?(Array)
      value.map { |item| serialize(item) }
    elsif value.is_a?(T::Struct)
      value.serialize_to(:deeply_nested_hash).payload_or(value)
    elsif value.respond_to?(:serialize)
      value.serialize
    else
      value
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sorbet-schema-0.8.0 lib/sorbet-schema/serialize_value.rb