module GraphQL::Schema::UniqueWithinType

def decode(node_id, separator: self.default_id_separator)

Returns:
  • (Array<(String, String)>) - The type name & value passed to {.encode}

Parameters:
  • node_id (String) -- A unique ID generated by {.encode}
def decode(node_id, separator: self.default_id_separator)
  Base64.decode64(node_id).split(separator)
end

def encode(type_name, object_value, separator: self.default_id_separator)

Returns:
  • (String) - a unique, opaque ID generated as a function of the two inputs

Parameters:
  • object_value (Any) --
  • type_name (String) --
def encode(type_name, object_value, separator: self.default_id_separator)
  object_value_str = object_value.to_s
  if type_name.include?(separator) || object_value_str.include?(separator)
    raise "encode(#{type_name}, #{object_value_str}) contains reserved characters `#{separator}`"
  end
  Base64.strict_encode64([type_name, object_value_str].join(separator))
end