You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-06-30 23:44:55 +02:00
All: Add support for application plugins (#3257)
This commit is contained in:
@ -0,0 +1,29 @@
|
||||
let eventHandlerIndex_ = 1;
|
||||
|
||||
export interface EventHandlers {
|
||||
[key:string]: Function;
|
||||
}
|
||||
|
||||
export default function mapEventHandlersToIds(arg:any, eventHandlers:EventHandlers) {
|
||||
if (Array.isArray(arg)) {
|
||||
for (let i = 0; i < arg.length; i++) {
|
||||
arg[i] = mapEventHandlersToIds(arg[i], eventHandlers);
|
||||
}
|
||||
return arg;
|
||||
} else if (typeof arg === 'function') {
|
||||
const id = `___plugin_event_${eventHandlerIndex_}`;
|
||||
eventHandlerIndex_++;
|
||||
eventHandlers[id] = arg;
|
||||
return id;
|
||||
} else if (arg === null) {
|
||||
return null;
|
||||
} else if (arg === undefined) {
|
||||
return undefined;
|
||||
} else if (typeof arg === 'object') {
|
||||
for (const n in arg) {
|
||||
arg[n] = mapEventHandlersToIds(arg[n], eventHandlers);
|
||||
}
|
||||
}
|
||||
|
||||
return arg;
|
||||
}
|
Reference in New Issue
Block a user