feat: plugin config

update: package.json
This commit is contained in:
Braks
2021-07-10 14:07:39 +02:00
parent f47036ef52
commit 753f7070c7
2 changed files with 31 additions and 1 deletions
+1 -1
View File
@@ -36,7 +36,6 @@
"d3-zoom": "^3.0.0",
"fast-deep-equal": "^3.1.3",
"pinia": "^2.0.0-beta.3",
"vue": "^3.0.5",
"vue-demi": "latest"
},
"devDependencies": {
@@ -76,6 +75,7 @@
"rollup-plugin-vue": "^6.0.0",
"typescript": "^4.3.5",
"vite": "^2.3.8",
"vue": "^3.0.5",
"vue-tsc": "^0.0.24"
},
"peerDependencies": {
+30
View File
@@ -1,4 +1,5 @@
import RevueFlow from './container/RevueFlow';
import { App, inject, InjectionKey } from 'vue-demi';
export default RevueFlow;
@@ -25,3 +26,32 @@ export { default as useUpdateNodeInternals } from './hooks/useUpdateNodeInternal
export * from './additional-components';
export * from './types';
export interface RevueFlowOptions {
theme: string;
}
export interface RevueFlowPlugin {
options?: RevueFlowOptions;
install(app: App): void;
}
export const RevueFlowPluginSymbol: InjectionKey<RevueFlowPlugin> = Symbol();
export function RevueFlowPlugin(): RevueFlowPlugin {
const RevueFlowPlugin = inject(RevueFlowPluginSymbol);
if (!RevueFlowPlugin) throw new Error('No RevueFlowPlugin provided.');
return RevueFlowPlugin;
}
export function createVueCounterPlugin(options?: RevueFlowOptions): RevueFlowPlugin {
return {
options,
install(app: App) {
app.component('revue-flow', RevueFlow);
app.provide(RevueFlowPluginSymbol, this);
}
};
}