44 lines
1.0 KiB
JavaScript
44 lines
1.0 KiB
JavaScript
(function(compodoc) {
|
|
var engine = null;
|
|
var initialized = false;
|
|
|
|
function setEngine(Engine) {
|
|
initialized = false;
|
|
engine = new Engine();
|
|
|
|
init();
|
|
}
|
|
|
|
function init() {
|
|
if (!engine) throw new Error('No engine set for research. Set an engine using compodoc.search.setEngine(Engine).');
|
|
|
|
return engine.init()
|
|
.then(function() {
|
|
initialized = true;
|
|
compodoc.dispatchEvent({
|
|
type: compodoc.EVENTS.SEARCH_READY
|
|
});
|
|
});
|
|
}
|
|
|
|
function query(q, offset, length) {
|
|
if (!initialized) throw new Error('Search has not been initialized');
|
|
return engine.search(q, offset, length);
|
|
}
|
|
|
|
function getEngine() {
|
|
return engine? engine.name : null;
|
|
}
|
|
|
|
function isInitialized() {
|
|
return initialized;
|
|
}
|
|
|
|
compodoc.search = {
|
|
setEngine: setEngine,
|
|
getEngine: getEngine,
|
|
query: query,
|
|
isInitialized: isInitialized
|
|
};
|
|
})(compodoc);
|