本文整理汇总了TypeScript中@jupyterlab/apputils.WindowResolver类的典型用法代码示例。如果您正苦于以下问题:TypeScript WindowResolver类的具体用法?TypeScript WindowResolver怎么用?TypeScript WindowResolver使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WindowResolver类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: async
activate: async (app: JupyterLab, router: IRouter) => {
const resolver = new WindowResolver();
const match = router.current.path.match(Patterns.workspace);
const workspace = (match && decodeURIComponent(match[1])) || '';
const candidate = workspace
? URLExt.join(
PageConfig.getOption('baseUrl'),
PageConfig.getOption('workspacesUrl'),
workspace
)
: app.info.defaultWorkspace;
try {
await resolver.resolve(candidate);
} catch (error) {
console.warn('Window resolution failed:', error);
// Return a promise that never resolves.
return new Promise<IWindowResolver>(() => {
Private.redirect(router);
});
}
PageConfig.setOption('workspace', resolver.name);
return resolver;
}
开发者ID:willingc,项目名称:jupyterlab,代码行数:27,代码来源:index.ts
示例2: async
activate: async (
_: JupyterFrontEnd,
paths: JupyterFrontEnd.IPaths,
router: IRouter
) => {
const { hash, path, search } = router.current;
const query = URLExt.queryStringToObject(search || '');
const solver = new WindowResolver();
const match = path.match(new RegExp(`^${paths.urls.workspaces}([^?\/]+)`));
const workspace = (match && decodeURIComponent(match[1])) || '';
const candidate = Private.candidate(paths, workspace);
try {
await solver.resolve(candidate);
} catch (error) {
// Window resolution has failed so the URL must change. Return a promise
// that never resolves to prevent the application from loading plugins
// that rely on `IWindowResolver`.
return new Promise<IWindowResolver>(() => {
// If the user has requested workspace resolution create a new one.
if (WORKSPACE_RESOLVE in query) {
const { base, workspaces } = paths.urls;
const pool =
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
const random = pool[Math.floor(Math.random() * pool.length)];
const path = URLExt.join(base, workspaces, `auto-${random}`);
// Clone the originally requested workspace after redirecting.
query['clone'] = workspace;
// Change the URL and trigger a hard reload to re-route.
const url = path + URLExt.objectToQueryString(query) + (hash || '');
router.navigate(url, { hard: true, silent: true });
return;
}
// Launch a dialog to ask the user for a new workspace name.
console.warn('Window resolution failed:', error);
return Private.redirect(router, paths, workspace);
});
}
// If the user has requested workspace resolution remove the query param.
if (WORKSPACE_RESOLVE in query) {
delete query[WORKSPACE_RESOLVE];
// Silently scrub the URL.
const url = path + URLExt.objectToQueryString(query) + (hash || '');
router.navigate(url, { silent: true });
}
return solver;
}
开发者ID:afshin,项目名称:jupyterlab,代码行数:53,代码来源:index.ts
示例3: WindowResolver
activate: (app: JupyterLab, router: IRouter) => {
const candidate = Private.getWorkspace(router) || '';
const resolver = new WindowResolver();
return resolver.resolve(candidate)
.catch(reason => {
console.warn('Window resolution failed:', reason);
return Private.redirect(router);
})
.then(() => {
PageConfig.setOption('workspace', resolver.name);
return resolver;
});
}
开发者ID:groutr,项目名称:jupyterlab,代码行数:16,代码来源:index.ts
示例4: async
activate: async (
_: JupyterFrontEnd,
paths: JupyterFrontEnd.IPaths,
router: IRouter
) => {
const { hash, path, search } = router.current;
const query = URLExt.queryStringToObject(search || '');
const solver = new WindowResolver();
const match = path.match(new RegExp(`^${paths.urls.workspaces}([^?\/]+)`));
const workspace = (match && decodeURIComponent(match[1])) || '';
const candidate = Private.candidate(paths, workspace);
const rest = workspace
? path.replace(new RegExp(`^${paths.urls.workspaces}${workspace}`), '')
: path.replace(new RegExp(`^${paths.urls.page}`), '');
try {
await solver.resolve(candidate);
return solver;
} catch (error) {
// Window resolution has failed so the URL must change. Return a promise
// that never resolves to prevent the application from loading plugins
// that rely on `IWindowResolver`.
return new Promise<IWindowResolver>(() => {
const { base, workspaces } = paths.urls;
const pool =
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
const random = pool[Math.floor(Math.random() * pool.length)];
const path = URLExt.join(base, workspaces, `auto-${random}`) + rest;
// Clone the originally requested workspace after redirecting.
query['clone'] = workspace;
// Change the URL and trigger a hard reload to re-route.
const url = path + URLExt.objectToQueryString(query) + (hash || '');
router.navigate(url, { hard: true, silent: true });
});
}
}
开发者ID:jupyter,项目名称:jupyterlab,代码行数:38,代码来源:index.ts
注:本文中的@jupyterlab/apputils.WindowResolver类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论