trilium/src/services/script_context.js

22 lines
829 B
JavaScript
Raw Normal View History

const utils = require('./utils');
2018-08-23 16:10:04 +08:00
const BackendScriptApi = require('./backend_script_api');
2018-08-10 19:30:20 +08:00
function ScriptContext(startNote, allNotes, originEntity = null) {
this.modules = {};
this.notes = utils.toObject(allNotes, note => [note.noteId, note]);
2018-08-23 16:10:04 +08:00
this.apis = utils.toObject(allNotes, note => [note.noteId, new BackendScriptApi(startNote, note, originEntity)]);
this.require = moduleNoteIds => {
return moduleName => {
const candidates = allNotes.filter(note => moduleNoteIds.includes(note.noteId));
const note = candidates.find(c => c.title === moduleName);
if (!note) {
throw new Error("Could not find module note " + moduleName);
}
return this.modules[note.noteId].exports;
}
};
}
module.exports = ScriptContext;