本文整理匯總了TypeScript中@nteract/commutable.stringifyNotebook函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript stringifyNotebook函數的具體用法?TypeScript stringifyNotebook怎麽用?TypeScript stringifyNotebook使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了stringifyNotebook函數的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: mergeMap
mergeMap(action => {
const state = state$.value;
const contentRef = action.payload.contentRef;
const content = selectors.content(state, { contentRef });
if (!content) {
return of(
actions.saveFailed({
contentRef: action.payload.contentRef,
error: new Error("no notebook loaded to save")
})
);
}
const model = content.model;
if (!model || model.type !== "notebook") {
return of(
actions.saveFailed({
contentRef: action.payload.contentRef,
error: new Error("no notebook loaded to save")
})
);
}
const filepath = content.filepath;
const appVersion = selectors.appVersion(state);
const notebook = stringifyNotebook(
toJS(
model.notebook.setIn(["metadata", "nteract", "version"], appVersion)
)
);
return writeFileObservable(filepath, notebook).pipe(
map(() => {
if (process.platform !== "darwin") {
const notificationSystem = selectors.notificationSystem(
state$.value
);
notificationSystem.addNotification({
autoDismiss: 2,
level: "success",
title: "Save successful!"
});
}
return actions.saveFulfilled({
contentRef: action.payload.contentRef,
model: {
last_modified: new Date()
}
});
}),
catchError((error: Error) =>
of(
actions.saveFailed({
contentRef: action.payload.contentRef,
error
})
)
)
);
})
示例2: it
it("calls FileSaver.saveAs with notebook and filename", () => {
const filename = "/here/there/awesome.ipynb";
const expectedData = fixtureJSON;
expect(FileSaver.saveAs).not.toHaveBeenCalled();
downloadString(
stringifyNotebook(fixtureJSON),
filename,
"application/json"
);
expect(FileSaver.saveAs).toHaveBeenCalledTimes(1);
const actualMockBlobResponse = (FileSaver.saveAs as any).mock.calls[0][0];
const actualFilename = (FileSaver.saveAs as any).mock.calls[0][1];
expect(actualMockBlobResponse).toEqual({
content: [stringifyNotebook(expectedData)],
options: { type: "application/json" }
});
expect(actualFilename).toBe("awesome.ipynb");
});
示例3:
notebookJS => {
if (notebookJS) {
return commutable.stringifyNotebook(notebookJS);
}
return "";
}
示例4: empty
(
action: actions.Save | actions.DownloadContent
):
| Observable<
| actions.DownloadContentFailed
| actions.DownloadContentFulfilled
| actions.SaveFailed
| actions.SaveFulfilled
>
| Observable<never> => {
const state = state$.value;
const host = selectors.currentHost(state);
if (host.type !== "jupyter") {
// Dismiss any usage that isn't targeting a jupyter server
return empty();
}
const contentRef = action.payload.contentRef;
const content = selectors.content(state, { contentRef });
// NOTE: This could save by having selectors for each model type
// have toDisk() selectors
// It will need to be cased off when we have more than one type
// of content we actually save
if (!content) {
const errorPayload = {
error: new Error("Content was not set."),
contentRef: action.payload.contentRef
};
if (action.type === actions.DOWNLOAD_CONTENT) {
return of(actions.downloadContentFailed(errorPayload));
}
return of(actions.saveFailed(errorPayload));
}
if (content.type === "directory") {
// Don't save directories
return empty();
}
let filepath = content.filepath;
// This could be object for notebook, or string for files
let serializedData: Notebook | string;
let saveModel: Partial<contents.Payload> = {};
if (content.type === "notebook") {
const appVersion = selectors.appVersion(state);
// contents API takes notebook as raw JSON whereas downloading takes
// a string
serializedData = toJS(
content.model.notebook.setIn(
["metadata", "nteract", "version"],
appVersion
)
);
saveModel = {
content: serializedData,
type: content.type
};
} else if (content.type === "file") {
serializedData = content.model.text;
saveModel = {
content: serializedData,
type: content.type,
format: "text"
};
} else {
// We shouldn't save directories
return empty();
}
switch (action.type) {
case actions.DOWNLOAD_CONTENT: {
// FIXME: Convert this to downloadString, so it works for both files & notebooks
if (
content.type === "notebook" &&
typeof serializedData === "object"
) {
downloadString(
stringifyNotebook(serializedData),
filepath || "notebook.ipynb",
"application/json"
);
} else if (
content.type === "file" &&
typeof serializedData === "string"
) {
downloadString(
serializedData,
filepath,
content.mimetype || "application/octet-stream"
);
} else {
// This shouldn't happen, is here for safety
return empty();
}
return of(
actions.downloadContentFulfilled({
contentRef: action.payload.contentRef
//.........這裏部分代碼省略.........