local string_util = {}

function string_util.trim(str)
  return str:gsub("%s+", "")
end

function string_util.escape(str)
  return str:gsub("[%(%)%.%%%+%-%*%?%[%^%$%]]", "%%%1")
end

function string_util.ends_with(str, suffix)
  return str:sub(-#suffix) == suffix
end

function string_util.is_str_empty(target)
  return target == nil or target == ""
end

function string_util.convert_empty_to_nil(target)
  if target == "" then
    return nil
  else
    return target
  end
end

function string_util.split(str, delimiter)
  local result = {}

  for token in string.gmatch(str, "[^" .. delimiter .. "]+") do
    table.insert(result, token)
  end

  return result
end

return string_util