dochub-sdk 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/interfaces/content.ts +4 -0
- package/interfaces/context.ts +14 -0
- package/interfaces/core.ts +98 -0
- package/interfaces/document.ts +3 -0
- package/interfaces/protocol.ts +33 -0
- package/interfaces/uicomponent.ts +3 -0
- package/package.json +1 -4
@@ -0,0 +1,14 @@
|
|
1
|
+
import { IDocHubCore } from "dochub-sdk/interfaces/core";
|
2
|
+
|
3
|
+
// Интерфейс переменных среды исполнения
|
4
|
+
export interface IDocHubContextEnv {
|
5
|
+
readonly [key: string]: any;
|
6
|
+
}
|
7
|
+
|
8
|
+
// Интерфейс контекста для выполнения плагина
|
9
|
+
export interface IDocHubContext {
|
10
|
+
// Переменные среды
|
11
|
+
env: IDocHubContextEnv;
|
12
|
+
// Интерфейс к DocHub
|
13
|
+
dochub: IDocHubCore;
|
14
|
+
}
|
@@ -0,0 +1,98 @@
|
|
1
|
+
import { IDocHubContentProvider } from './content';
|
2
|
+
import { IDocHubProtocol } from './protocol';
|
3
|
+
import { IDocHubDocument } from './document';
|
4
|
+
import { IDocHubUIComponent } from './uicomponent';
|
5
|
+
|
6
|
+
|
7
|
+
export interface IDocHubEnv {
|
8
|
+
[id: string]: string
|
9
|
+
}
|
10
|
+
|
11
|
+
export interface IDocHubProblems {
|
12
|
+
// Регистрирует ошибку в системе
|
13
|
+
emit(problem: Error, title?: string, uid?: string);
|
14
|
+
}
|
15
|
+
|
16
|
+
export interface IDocHubSettingsCollection {
|
17
|
+
[id: string]: any;
|
18
|
+
}
|
19
|
+
|
20
|
+
export interface IDocHubSettings {
|
21
|
+
// Регистрирует UI компонент настроек
|
22
|
+
// component - VUE компонент
|
23
|
+
// location - размещение UI компонента в дереве настроек
|
24
|
+
// tags - массив тегов для поиска компонента настроек
|
25
|
+
registerUI(component: any, location: string, tags: string[]);
|
26
|
+
|
27
|
+
// Сохраняет структуру с настройками
|
28
|
+
// settings - сохраняемая структура
|
29
|
+
push(settings: IDocHubSettingsCollection);
|
30
|
+
|
31
|
+
// Получает настройки
|
32
|
+
// fields - требуемый массив полей
|
33
|
+
pull(fields: IDocHubSettingsCollection | string[]): IDocHubSettingsCollection;
|
34
|
+
}
|
35
|
+
|
36
|
+
export interface IDocHubRouter {
|
37
|
+
// Регистрирует роут в формате VUE2
|
38
|
+
registerRoute(route: object);
|
39
|
+
// Регистрирует middleware в формате VUE2
|
40
|
+
registerMiddleware(middleware: object);
|
41
|
+
}
|
42
|
+
|
43
|
+
export interface IDocHubContentProviders {
|
44
|
+
// Возвращает контент-провайдер по типу контента
|
45
|
+
get(contentType: string): IDocHubContentProvider;
|
46
|
+
// Регистрирует контент-провайдер
|
47
|
+
register(contentType: string, provider: IDocHubContentProvider);
|
48
|
+
// Возвращает массив зарегистрированных типов
|
49
|
+
fetch(): string[];
|
50
|
+
}
|
51
|
+
|
52
|
+
export interface IDocHubProtocols {
|
53
|
+
// Возвращает драйвер протокола по идентификатору
|
54
|
+
get(protocol: string): IDocHubProtocol;
|
55
|
+
// Регистрирует драйвер протокола
|
56
|
+
register(protocol: string, driver: IDocHubProtocol);
|
57
|
+
// Возвращает массив зарегистрированных протоколов
|
58
|
+
fetch(): string[];
|
59
|
+
}
|
60
|
+
|
61
|
+
export interface IDocHubDocuments {
|
62
|
+
// Регистрирует тип документа
|
63
|
+
register(type: string, document: IDocHubDocument);
|
64
|
+
// Возвращает массив зарегистрированных типов документов
|
65
|
+
fetch(): string[];
|
66
|
+
}
|
67
|
+
|
68
|
+
export interface IDocHubUI {
|
69
|
+
// Регистрирует UI компонент в слоте
|
70
|
+
register(slot: string, component: IDocHubUIComponent);
|
71
|
+
// Возвращает зарегистрированный компонент по слоту
|
72
|
+
get(slot: string): IDocHubUIComponent[];
|
73
|
+
}
|
74
|
+
|
75
|
+
export interface IDocHubDataLake {
|
76
|
+
// Монтирует источник к загружаемым манифестам озера
|
77
|
+
// uri: string - URI монтируемого ресурса
|
78
|
+
mountManifest(uri: string);
|
79
|
+
// Отмонтирует источник к загружаемым манифестам озера
|
80
|
+
// uri: string - URI отключаемого ресурса
|
81
|
+
unmountManifest(uri: string);
|
82
|
+
// Требует перезагрузки ресурсов задействованных в озере данных
|
83
|
+
// uriPattern: array | RegEx | undefined - Шаблон проверки соответствия URI ресурса
|
84
|
+
// Если undefined - перезагружает все
|
85
|
+
reload(uriPattern?: string | string[] | RegExp);
|
86
|
+
}
|
87
|
+
|
88
|
+
// Главный интерфейс
|
89
|
+
export interface IDocHubCore {
|
90
|
+
problems: IDocHubProblems; // Проблемы
|
91
|
+
settings: IDocHubSettings; // Пользовтельские настройки
|
92
|
+
router: IDocHubRouter; // Работа с UI роутами
|
93
|
+
contentProviders: IDocHubContentProviders; // Провайдеры контента
|
94
|
+
protocols: IDocHubProtocols; // Протоколы доступа к данным
|
95
|
+
documents: IDocHubDocuments; // Документы
|
96
|
+
ui: IDocHubUI; // UI порт
|
97
|
+
dataLake: IDocHubDataLake; // Интерфейс к архкоду
|
98
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { AxiosResponse, AxiosRequestConfig } from 'axios';
|
2
|
+
import { IDocHubContext } from './context';
|
3
|
+
|
4
|
+
// Прослойка интерфейсов Axios для последующей кастомизации и поддержания совместимости
|
5
|
+
export interface IDocHubProtocolRequestConfig extends AxiosRequestConfig {
|
6
|
+
decoder?: Function; // Декодировщик ответа
|
7
|
+
};
|
8
|
+
export interface IDocHubProtocolResponse extends AxiosResponse {};
|
9
|
+
|
10
|
+
// Методы доступные над ресурсом
|
11
|
+
export enum IDocHubProtocolMethods {
|
12
|
+
GET = 'GET',
|
13
|
+
POST = 'POST',
|
14
|
+
DELETE = 'DELETE',
|
15
|
+
HEAD = 'HEAD',
|
16
|
+
PUT = 'PUT',
|
17
|
+
PATCH = 'PATCH',
|
18
|
+
OPTIONS = 'OPTIONS'
|
19
|
+
};
|
20
|
+
|
21
|
+
// Интерфейс транспортного протокола
|
22
|
+
export interface IDocHubProtocol {
|
23
|
+
// Признак активности протокола
|
24
|
+
isActive(): boolean;
|
25
|
+
// Метод инициализации протокола
|
26
|
+
bootstrap(context: IDocHubContext);
|
27
|
+
// Разрешение ссылок
|
28
|
+
resolveURL(...args: string[]): string;
|
29
|
+
// Выполняет запрос к DataLake
|
30
|
+
request(config: IDocHubProtocolRequestConfig): Promise<IDocHubProtocolResponse>;
|
31
|
+
// Возвращает список методов доступных для указанного ресурса
|
32
|
+
availableMethodsFor(uri: string): Promise<IDocHubProtocolMethods[]>;
|
33
|
+
}
|
package/package.json
CHANGED
@@ -1,13 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"name": "dochub-sdk",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.2",
|
4
4
|
"description": "The DocHub System Development Kit.",
|
5
5
|
"private": false,
|
6
6
|
"main": "index.ts",
|
7
7
|
"module": "index.ts",
|
8
|
-
"files": [
|
9
|
-
"."
|
10
|
-
],
|
11
8
|
"homepage": "https://dochub.info",
|
12
9
|
"bin": {
|
13
10
|
"dochub-cli": "cli/main.js"
|