UNPKG

@fails-components/jupyter-filesystem-extension

Version:

A collection of extensions, that redirect's filesystems access to fails and let fails puppeteer Jupyter lite.

61 lines (60 loc) 1.95 kB
import { IDefaultDrive, ISettingManager, IServerSettings } from '@jupyterlab/services'; import { FailsDrive } from './drive'; import { FailsSettings } from './settings'; import { IFailsDriveMessages } from './token'; export * from './token'; const failsDriveMessages = { id: '@fails-components/jupyter-applet-widget:drivemessages', requires: [], autoStart: true, provides: IFailsDriveMessages, activate: (_) => { let initialWaitRes; const initialWait = new Promise(resolve => (initialWaitRes = resolve)); let messageHandler; const driveMessages = { registerMessageHandler: (handler) => { messageHandler = handler; if (initialWaitRes) { initialWaitRes(undefined); } initialWaitRes = undefined; }, sendMessage: async (msg) => { await initialWait; return messageHandler(msg); } }; return driveMessages; } }; const failsDrivePlugin = { id: '@fails-components/jupyter-applet-widget:drive', requires: [IFailsDriveMessages], autoStart: true, provides: IDefaultDrive, activate: (_, driveMessages) => { const drive = new FailsDrive({}); driveMessages.registerMessageHandler(msg => drive.onMessage(msg)); return drive; } }; const failsSettingsPlugin = { id: '@fails-components/jupyter-applet-widget:settings', requires: [], autoStart: true, provides: ISettingManager, optional: [IServerSettings], activate: (_, serverSettings) => { const settings = new FailsSettings({ serverSettings: serverSettings !== null && serverSettings !== void 0 ? serverSettings : undefined }); return settings; } }; const plugins = [ failsDriveMessages, failsDrivePlugin, failsSettingsPlugin ]; export default plugins;