diff options
author | Toby Vincent <tobyv@tobyvin.dev> | 2023-10-22 13:05:32 -0500 |
---|---|---|
committer | Toby Vincent <tobyv@tobyvin.dev> | 2023-10-22 13:05:32 -0500 |
commit | 29f108b5c484f01fcbd7bb8234af035da6971607 (patch) | |
tree | 0a906031f3f4ee3fae57b35d8d95f327faf0c741 /lua/inbox/indexers.lua | |
parent | eee9ce71bd0e84859e5d3a5135fe4f4265d331da (diff) |
refactor: clean up functions
Diffstat (limited to 'lua/inbox/indexers.lua')
-rw-r--r-- | lua/inbox/indexers.lua | 33 |
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 |