mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Add tests for Open Notebook Folder functionality. (#10056)
This commit is contained in:
@@ -1,74 +0,0 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as fs from 'fs-extra';
|
||||
import * as nls from 'vscode-nls';
|
||||
const localize = nls.loadMessageBundle();
|
||||
|
||||
import * as constants from '../common/constants';
|
||||
|
||||
export enum SettingType {
|
||||
String,
|
||||
Number,
|
||||
Boolean,
|
||||
Set
|
||||
}
|
||||
export class ISetting {
|
||||
key: string;
|
||||
value: string | number | boolean;
|
||||
type: SettingType;
|
||||
}
|
||||
|
||||
export class JupyterSettingWriter {
|
||||
private settings: ISetting[] = [];
|
||||
|
||||
constructor(private baseFile: string) {
|
||||
}
|
||||
|
||||
public addSetting(setting: ISetting): void {
|
||||
this.settings.push(setting);
|
||||
}
|
||||
|
||||
public async writeSettings(targetFile: string): Promise<void> {
|
||||
let settings = await this.printSettings();
|
||||
await fs.writeFile(targetFile, settings);
|
||||
}
|
||||
|
||||
public async printSettings(): Promise<string> {
|
||||
let content = '';
|
||||
let newLine = process.platform === constants.winPlatform ? '\r\n' : '\n';
|
||||
if (this.baseFile) {
|
||||
let sourceContents = await fs.readFile(this.baseFile);
|
||||
content += sourceContents.toString();
|
||||
}
|
||||
|
||||
for (let setting of this.settings) {
|
||||
content += newLine;
|
||||
content += this.printSetting(setting);
|
||||
}
|
||||
return content;
|
||||
}
|
||||
|
||||
private printSetting(setting: ISetting): string {
|
||||
let value: string;
|
||||
switch (setting.type) {
|
||||
case SettingType.Boolean:
|
||||
value = setting.value ? 'True' : 'False';
|
||||
break;
|
||||
case SettingType.String:
|
||||
value = `'${setting.value}'`;
|
||||
break;
|
||||
case SettingType.Number:
|
||||
value = `${setting.value}`;
|
||||
break;
|
||||
case SettingType.Set:
|
||||
value = `set([${setting.value}])`;
|
||||
break;
|
||||
default:
|
||||
throw new Error(localize('UnexpectedSettingType', "Unexpected setting type {0}", setting.type));
|
||||
}
|
||||
return `c.${setting.key} = ${value}`;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user