blob: 46bb2df0753253e23779cd0d9a6cf3cad8662942 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
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)
end
return M.indexer
end
---@param opts inbox.Config
function M.setup(opts)
if opts.indexer == nil then
utils.error("No indexer provided")
return
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
M.indexer = indexer
M.indexer.setup(opts.indexer_config)
end
end
return M
|