当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript selectors.serverConfig方法代码示例

本文整理汇总了TypeScript中@nteract/core.selectors.serverConfig方法的典型用法代码示例。如果您正苦于以下问题:TypeScript selectors.serverConfig方法的具体用法?TypeScript selectors.serverConfig怎么用?TypeScript selectors.serverConfig使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在@nteract/core.selectors的用法示例。


在下文中一共展示了selectors.serverConfig方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: openNotebook

export function openNotebook(
  host: JupyterHostRecord,
  ks: KernelspecRecord | KernelspecProps,
  props: {
    appVersion: string;
    baseDir: string;
    appBase: string;
  }
): void {
  const serverConfig: any = selectors.serverConfig(host);

  // The notebook they get to start with
  const notebook: Notebook = {
    cells: [
      {
        cell_type: "code",
        execution_count: null,
        metadata: {},
        outputs: [],
        source: [""]
      }
    ],
    metadata: {
      kernelspec: {
        display_name: ks.displayName,
        language: ks.language,
        name: ks.name
      },
      nteract: {
        version: props.appVersion
      }
    },
    nbformat: 4,
    nbformat_minor: 2
  };

  // NOTE: For the sake of expediency, all the logic to launch a new is
  //       happening here instead of an epic
  contents
    // Create UntitledXYZ.ipynb by letting the server do it
    .create<"notebook">(serverConfig, props.baseDir, {
      type: "notebook"
      // NOTE: The contents API appears to ignore the content field for new
      // notebook creation.
      //
      // It would be nice if it could take it. Instead we'll create a new
      // notebook for the user and redirect them after we've put in the
      // content we want.
      //
      // Amusingly, this could be used for more general templates to, as
      // well as introduction notebooks.
    })
    .pipe(
      // We only expect one response, it's ajax and we want this subscription
      // to finish so we don't have to unsubscribe
      first(),
      mergeMap(({ response }) => {
        const filepath: string = response.path;

        const sessionPayload: SessionPayload = {
          kernel: {
            id: null,
            name: ks.name
          },
          name: "",
          path: filepath,
          type: "notebook"
        };

        return forkJoin(
          // Get their kernel started up
          sessions.create(serverConfig, sessionPayload),
          // Save the initial notebook document
          contents.save(serverConfig, filepath, {
            content: notebook,
            type: "notebook"
          })
        );
      }),
      first(),
      map(([_session, content]) => {
        const { response } = content;

        if (content.status > 299 || typeof response === "string") {
          // hack around this old hack around for creating a notebook
          // from the directory ideally this would be in a proper epic
          // instead of leaky async code here
          const message: string[] = ["Failed to create notebook due to: "];

          if (typeof response === "string") {
            message.push(response);
          } else {
            message.push(JSON.stringify(response));
          }

          alert(message.join(""));

          return;
        }

//.........这里部分代码省略.........
开发者ID:nteract,项目名称:nteract,代码行数:101,代码来源:open-notebook.ts


注:本文中的@nteract/core.selectors.serverConfig方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。