summaryrefslogtreecommitdiffstats
path: root/lua/inbox/indexers.lua
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2023-10-22 13:05:32 -0500
committerToby Vincent <tobyv@tobyvin.dev>2023-10-22 13:05:32 -0500
commit29f108b5c484f01fcbd7bb8234af035da6971607 (patch)
tree0a906031f3f4ee3fae57b35d8d95f327faf0c741 /lua/inbox/indexers.lua
parenteee9ce71bd0e84859e5d3a5135fe4f4265d331da (diff)
refactor: clean up functions
Diffstat (limited to 'lua/inbox/indexers.lua')
-rw-r--r--lua/inbox/indexers.lua33
1 files changed, 15 insertions, 18 deletions
diff --git a/lua/inbox/indexers.lua b/lua/inbox/indexers.lua
index 0c87988..46bb2df 100644
--- a/lua/inbox/indexers.lua
+++ b/lua/inbox/indexers.lua
@@ -1,37 +1,34 @@
+local utils = require("inbox.utils")
+
local M = {}
---@return inbox.Indexer
function M.get_indexer()
if not M.indexer then
local config = require("inbox.config")
- M.setup(config.indexer_config)
+ M.setup(config)
end
return M.indexer
end
----@param opts inbox.Indexer.Config
+---@param opts inbox.Config
function M.setup(opts)
- if not opts then
- vim.notify("No indexer set", vim.log.levels.ERROR)
- return nil
- end
-
- if type(opts) == "string" then
- opts = { name = opts }
+ if opts.indexer == nil then
+ utils.error("No indexer provided")
+ return
end
- local ok, indexer = pcall(require, string.format("inbox.indexers.%s", opts.name))
- if not ok then
- vim.notify(string.format("Indexer not found: '%s'", indexer), vim.log.levels.ERROR)
- end
+ local is_ok, indexer = pcall(require, string.format("inbox.indexers.%s", opts.indexer))
+ if not is_ok then
+ utils.error("Indexer not found", { indexer = opts.indexer })
+ elseif not indexer.available() then
+ utils.error("Indexer not available", { indexer = opts.indexer })
+ else
+ -- TODO: Validate indexer spec
- -- TODO: Validate indexer spec
- if indexer.available() then
M.indexer = indexer
- M.indexer.setup(opts)
- else
- vim.notify(string.format("Indexer not available: '%s'", indexer), vim.log.levels.ERROR)
+ M.indexer.setup(opts.indexer_config)
end
end