Skip to content

Commit 99101c4

Browse files
committed
Refactor configuration imports to use the new directory structure and add a readme for configuration clarification
Signed-off-by: worksofliam <[email protected]>
1 parent e582b1e commit 99101c4

File tree

26 files changed

+303
-309
lines changed

26 files changed

+303
-309
lines changed

src/Instance.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import * as vscode from "vscode";
22
import { ConnectionData, IBMiEvent } from "./typings";
33
import IBMi, { ConnectionResult } from "./api/IBMi";
4-
import { CodeForIStorage, ConnectionStorage } from "./api/configuration/Storage";
4+
import { CodeForIStorage } from "./api/configuration/storage/CodeForIStorage";
55
import { withContext } from "./ui/tools";
66
import { handleConnectionResults, messageCallback } from "./ui/connection";
77
import { VsStorage } from "./config/Storage";
88
import { VsCodeConfig } from "./config/Configuration";
9-
import { ConnectionConfig } from "./api/configuration/ConnectionManager";
9+
import { ConnectionConfig } from "./api/configuration/config/ConnectionManager";
1010
import { EventEmitter } from "stream";
11+
import { ConnectionStorage } from "./api/configuration/storage/ConnectionStorage";
1112

1213
type IBMiEventSubscription = {
1314
func: Function,
@@ -35,7 +36,6 @@ export default class Instance {
3536
constructor(context: vscode.ExtensionContext) {
3637
const vscodeStorage = new VsStorage(context);
3738
this.storage = new ConnectionStorage(vscodeStorage);
38-
3939
IBMi.GlobalStorage = new CodeForIStorage(vscodeStorage);
4040
IBMi.connectionManager.configMethod = new VsCodeConfig();
4141

src/api/IBMi.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import { CustomQSh } from './components/cqsh';
99
import { ComponentManager } from "./components/manager";
1010
import { CompileTools } from "./CompileTools";
1111
import IBMiContent from "./IBMiContent";
12-
import { CachedServerSettings, CodeForIStorage } from './configuration/Storage';
12+
import { CachedServerSettings, CodeForIStorage } from './configuration/storage/CodeForIStorage';
1313
import { Tools } from './Tools';
1414
import * as configVars from './configVars';
1515
import { DebugConfiguration } from "./configuration/DebugConfiguration";
16-
import { ConnectionManager, ConnectionConfig } from './configuration/ConnectionManager';
16+
import { ConnectionManager, ConnectionConfig } from './configuration/config/ConnectionManager';
1717
import { CommandData, CommandResult, ConnectionData, IBMiMember, RemoteCommand, WrapResult } from './types';
1818
import { EventEmitter } from 'stream';
1919

src/api/configuration/Storage.ts

Lines changed: 0 additions & 281 deletions
This file was deleted.

src/api/configuration/ConnectionManager.ts renamed to src/api/configuration/config/ConnectionManager.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11

22
import os from "os";
3-
import { FilterType } from "../Filter";
4-
import { Config, VirtualConfig } from "./Config";
5-
import { DeploymentMethod, ConnectionData } from "../types";
3+
import { FilterType } from "../../Filter";
4+
import { Config, VirtualConfig } from "./VirtualConfig";
5+
import { DeploymentMethod, ConnectionData } from "../../types";
66

77
export type SourceDateMode = "edit" | "diff";
88
export type DefaultOpenMode = "browse" | "edit";
File renamed without changes.

src/api/configuration/readme.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
2+
#### What's the difference between `config` and `storage`?
3+
4+
* **config** is the idea of user configurable configuration files. This is things like connection settings, actions, and the likes.
5+
* **storage** if for storing data that is not editable by the user. Details like history, authorisation lists, etc.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
export abstract class BaseStorage {
2+
protected readonly globalState: any;
3+
4+
constructor() {
5+
this.globalState = new Map<string, any>();
6+
}
7+
8+
keys(): readonly string[] {
9+
return Array.from(this.globalState.keys());
10+
}
11+
12+
get<T>(key: string): T | undefined {
13+
return this.globalState.get(this.getStorageKey(key)) as T | undefined;
14+
}
15+
16+
async set(key: string, value: any) {
17+
await this.globalState.set(this.getStorageKey(key), value);
18+
}
19+
20+
getStorageKey(key: string): string {
21+
return key;
22+
}
23+
}
24+
25+
export class VirtualStorage extends BaseStorage {
26+
protected readonly globalState: Map<string, any> = new Map<string, any>();
27+
28+
constructor() {
29+
super();
30+
}
31+
}

0 commit comments

Comments
 (0)