MCPcopy Index your code
hub / github.com/nukeop/nuclear / loadPluginData

Function loadPluginData

packages/player/src/stores/pluginStore.tsx:69–96  ·  view source on GitHub ↗
(
  sourcePath: string,
  id: string,
  version: string,
)

Source from the content-addressed store, hash-verified

67};
68
69const loadPluginData = async (
70 sourcePath: string,
71 id: string,
72 version: string,
73): Promise<LoadedPluginData> => {
74 const loader = new PluginLoader(sourcePath);
75 const metadata = await loader.loadMetadata();
76
77 const permissions = metadata.permissions || [];
78 const unknownPermissions = permissions.filter(
79 (p) => !allowedPermissions.includes(p),
80 );
81 const warnings: string[] = unknownPermissions.length
82 ? [`Unknown permissions: ${unknownPermissions.join(', ')}`]
83 : [];
84
85 if (warnings.length > 0) {
86 Logger.plugins.warn(
87 `Plugin ${id} loaded with warnings: ${warnings.join(', ')}`,
88 );
89 }
90
91 const managedPath = await installPluginToManagedDir(id, version, sourcePath);
92 const managedPluginLoader = new PluginLoader(managedPath);
93 const { instance } = await managedPluginLoader.load();
94
95 return { metadata, managedPath, instance, warnings };
96};
97
98export const usePluginStore = create<PluginStore>((set, get) => ({
99 plugins: {},

Callers 1

pluginStore.tsxFile · 0.85

Calls 4

loadMetadataMethod · 0.95
loadMethod · 0.95
warnMethod · 0.80

Tested by

no test coverage detected