@dxos/app-framework 0.3.3-main.0c081e6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +9 -0
- package/.storybook/main.cjs +36 -0
- package/.storybook/preview-head.html +3 -0
- package/.storybook/preview.cjs +45 -0
- package/LICENSE +8 -0
- package/README.md +29 -0
- package/README.yml +5 -0
- package/dist/lib/browser/index.mjs +453 -0
- package/dist/lib/browser/index.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -0
- package/dist/lib/node/index.cjs +522 -0
- package/dist/lib/node/index.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -0
- package/dist/types/src/App.d.ts +19 -0
- package/dist/types/src/App.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/plugins/IntentPlugin/IntentContext.d.ts +8 -0
- package/dist/types/src/plugins/IntentPlugin/IntentContext.d.ts.map +1 -0
- package/dist/types/src/plugins/IntentPlugin/IntentPlugin.d.ts +19 -0
- package/dist/types/src/plugins/IntentPlugin/IntentPlugin.d.ts.map +1 -0
- package/dist/types/src/plugins/IntentPlugin/index.d.ts +4 -0
- package/dist/types/src/plugins/IntentPlugin/index.d.ts.map +1 -0
- package/dist/types/src/plugins/IntentPlugin/intent.d.ts +28 -0
- package/dist/types/src/plugins/IntentPlugin/intent.d.ts.map +1 -0
- package/dist/types/src/plugins/PluginHost/PluginContext.d.ts +24 -0
- package/dist/types/src/plugins/PluginHost/PluginContext.d.ts.map +1 -0
- package/dist/types/src/plugins/PluginHost/PluginHost.d.ts +20 -0
- package/dist/types/src/plugins/PluginHost/PluginHost.d.ts.map +1 -0
- package/dist/types/src/plugins/PluginHost/index.d.ts +4 -0
- package/dist/types/src/plugins/PluginHost/index.d.ts.map +1 -0
- package/dist/types/src/plugins/PluginHost/plugin.d.ts +66 -0
- package/dist/types/src/plugins/PluginHost/plugin.d.ts.map +1 -0
- package/dist/types/src/plugins/PluginHost/plugin.test.d.ts +35 -0
- package/dist/types/src/plugins/PluginHost/plugin.test.d.ts.map +1 -0
- package/dist/types/src/plugins/SurfacePlugin/ErrorBoundary.d.ts +30 -0
- package/dist/types/src/plugins/SurfacePlugin/ErrorBoundary.d.ts.map +1 -0
- package/dist/types/src/plugins/SurfacePlugin/Surface.d.ts +45 -0
- package/dist/types/src/plugins/SurfacePlugin/Surface.d.ts.map +1 -0
- package/dist/types/src/plugins/SurfacePlugin/SurfacePlugin.d.ts +20 -0
- package/dist/types/src/plugins/SurfacePlugin/SurfacePlugin.d.ts.map +1 -0
- package/dist/types/src/plugins/SurfacePlugin/SurfaceRootContext.d.ts +13 -0
- package/dist/types/src/plugins/SurfacePlugin/SurfaceRootContext.d.ts.map +1 -0
- package/dist/types/src/plugins/SurfacePlugin/index.d.ts +5 -0
- package/dist/types/src/plugins/SurfacePlugin/index.d.ts.map +1 -0
- package/dist/types/src/plugins/common/graph.d.ts +26 -0
- package/dist/types/src/plugins/common/graph.d.ts.map +1 -0
- package/dist/types/src/plugins/common/index.d.ts +4 -0
- package/dist/types/src/plugins/common/index.d.ts.map +1 -0
- package/dist/types/src/plugins/common/layout.d.ts +89 -0
- package/dist/types/src/plugins/common/layout.d.ts.map +1 -0
- package/dist/types/src/plugins/common/translations.d.ts +22 -0
- package/dist/types/src/plugins/common/translations.d.ts.map +1 -0
- package/dist/types/src/plugins/helpers.d.ts +22 -0
- package/dist/types/src/plugins/helpers.d.ts.map +1 -0
- package/dist/types/src/plugins/index.d.ts +6 -0
- package/dist/types/src/plugins/index.d.ts.map +1 -0
- package/package.json +34 -0
- package/project.json +78 -0
- package/src/App.tsx +43 -0
- package/src/index.ts +7 -0
- package/src/plugins/IntentPlugin/IntentContext.tsx +17 -0
- package/src/plugins/IntentPlugin/IntentPlugin.tsx +69 -0
- package/src/plugins/IntentPlugin/index.ts +7 -0
- package/src/plugins/IntentPlugin/intent.ts +34 -0
- package/src/plugins/PluginHost/PluginContext.tsx +45 -0
- package/src/plugins/PluginHost/PluginHost.tsx +200 -0
- package/src/plugins/PluginHost/index.ts +7 -0
- package/src/plugins/PluginHost/plugin.test.ts +159 -0
- package/src/plugins/PluginHost/plugin.ts +82 -0
- package/src/plugins/SurfacePlugin/ErrorBoundary.tsx +45 -0
- package/src/plugins/SurfacePlugin/Surface.tsx +116 -0
- package/src/plugins/SurfacePlugin/SurfacePlugin.tsx +53 -0
- package/src/plugins/SurfacePlugin/SurfaceRootContext.tsx +22 -0
- package/src/plugins/SurfacePlugin/index.ts +8 -0
- package/src/plugins/common/graph.ts +33 -0
- package/src/plugins/common/index.ts +7 -0
- package/src/plugins/common/layout.ts +102 -0
- package/src/plugins/common/translations.ts +34 -0
- package/src/plugins/helpers.ts +43 -0
- package/src/plugins/index.ts +10 -0
- package/tsconfig.json +43 -0
- package/tsconfig.node.json +11 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { raise } from '@dxos/debug';
|
|
6
|
+
|
|
7
|
+
import { type Plugin } from './PluginHost';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Find a plugin by ID.
|
|
11
|
+
*/
|
|
12
|
+
export const findPlugin = <T>(plugins: Plugin[], id: string): Plugin<T> | undefined => {
|
|
13
|
+
return plugins.find(
|
|
14
|
+
(plugin) => plugin.meta.id === id || (typeof plugin.meta.shortId === 'string' && plugin.meta.shortId === id),
|
|
15
|
+
) as Plugin<T>;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Find a plugin by ID, or raise an error if not found.
|
|
20
|
+
*/
|
|
21
|
+
export const getPlugin = <T>(plugins: Plugin[], id: string): Plugin<T> => {
|
|
22
|
+
return findPlugin(plugins, id) ?? raise(new Error(`Plugin not found: ${id}`));
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Filter a list of plugins to only those that match a predicate.
|
|
27
|
+
*/
|
|
28
|
+
export const filterPlugins = <T>(
|
|
29
|
+
plugins: Plugin[],
|
|
30
|
+
predicate: (plugin: Plugin) => Plugin<T> | undefined,
|
|
31
|
+
): Plugin<T>[] => plugins.map((plugin) => predicate(plugin)).filter((plugin): plugin is Plugin<T> => !!plugin);
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Resolves a plugin by predicate.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* import { parseIntentPlugin, resolvePlugin } from '@dxos/app-framework';
|
|
38
|
+
* const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);
|
|
39
|
+
*/
|
|
40
|
+
export const resolvePlugin = <T>(
|
|
41
|
+
plugins: Plugin[],
|
|
42
|
+
predicate: (plugin: Plugin) => Plugin<T> | undefined,
|
|
43
|
+
): Plugin<T> | undefined => filterPlugins(plugins, predicate)[0];
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../../tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"esModuleInterop": true,
|
|
5
|
+
"jsx": "react",
|
|
6
|
+
"lib": [
|
|
7
|
+
"DOM",
|
|
8
|
+
"ESNext"
|
|
9
|
+
],
|
|
10
|
+
"module": "ESNext",
|
|
11
|
+
"outDir": "dist"
|
|
12
|
+
},
|
|
13
|
+
"exclude": [
|
|
14
|
+
"/node_modules/"
|
|
15
|
+
],
|
|
16
|
+
"include": [
|
|
17
|
+
"src"
|
|
18
|
+
],
|
|
19
|
+
"references": [
|
|
20
|
+
{
|
|
21
|
+
"path": "../../common/async"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"path": "../../common/debug"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"path": "../../common/invariant"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"path": "../../common/log"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"path": "../app-graph"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"ts-node": {
|
|
37
|
+
"compilerOptions": {
|
|
38
|
+
"module": "CommonJS"
|
|
39
|
+
},
|
|
40
|
+
"files": true,
|
|
41
|
+
"transpileOnly": true
|
|
42
|
+
}
|
|
43
|
+
}
|