vrack2-core 0.0.1
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/.eslintrc.js +6 -0
- package/LICENSE +177 -0
- package/README.md +6 -0
- package/docs/RU-README.md +6 -0
- package/lib/Container.d.ts +30 -0
- package/lib/Container.js +236 -0
- package/lib/DeviceManager.d.ts +32 -0
- package/lib/DeviceManager.js +143 -0
- package/lib/IServiceStructure.d.ts +5 -0
- package/lib/IServiceStructure.js +2 -0
- package/lib/IStructureDevice.d.ts +7 -0
- package/lib/IStructureDevice.js +2 -0
- package/lib/ImportManager.d.ts +15 -0
- package/lib/ImportManager.js +145 -0
- package/lib/MainProcess.d.ts +9 -0
- package/lib/MainProcess.js +28 -0
- package/lib/Utility.d.ts +21 -0
- package/lib/Utility.js +48 -0
- package/lib/actions/Action.d.ts +4 -0
- package/lib/actions/Action.js +16 -0
- package/lib/actions/BasicAction.d.ts +15 -0
- package/lib/actions/BasicAction.js +44 -0
- package/lib/actions/GlobalAction.d.ts +4 -0
- package/lib/actions/GlobalAction.js +17 -0
- package/lib/actions/IAction.d.ts +11 -0
- package/lib/actions/IAction.js +2 -0
- package/lib/actions/ILocalAction.d.ts +11 -0
- package/lib/actions/ILocalAction.js +2 -0
- package/lib/errors/CoreError.d.ts +53 -0
- package/lib/errors/CoreError.js +81 -0
- package/lib/errors/ErrorManager.d.ts +47 -0
- package/lib/errors/ErrorManager.js +84 -0
- package/lib/index.d.ts +19 -0
- package/lib/index.js +55 -0
- package/lib/ports/BasicPort.d.ts +11 -0
- package/lib/ports/BasicPort.js +49 -0
- package/lib/ports/ILocalPort.d.ts +10 -0
- package/lib/ports/ILocalPort.js +2 -0
- package/lib/ports/IPort.d.ts +10 -0
- package/lib/ports/IPort.js +2 -0
- package/lib/ports/Port.d.ts +6 -0
- package/lib/ports/Port.js +20 -0
- package/lib/ports/ReturnPort.d.ts +6 -0
- package/lib/ports/ReturnPort.js +21 -0
- package/lib/ports/StandartPort.d.ts +4 -0
- package/lib/ports/StandartPort.js +17 -0
- package/lib/service/Device.d.ts +175 -0
- package/lib/service/Device.js +191 -0
- package/lib/service/DeviceConnect.d.ts +21 -0
- package/lib/service/DeviceConnect.js +32 -0
- package/lib/service/DevicePort.d.ts +24 -0
- package/lib/service/DevicePort.js +41 -0
- package/lib/service/IDeviceEvent.d.ts +5 -0
- package/lib/service/IDeviceEvent.js +2 -0
- package/lib/test.d.ts +1 -0
- package/lib/test.js +58 -0
- package/lib/validator/IValidationProblem.d.ts +8 -0
- package/lib/validator/IValidationProblem.js +2 -0
- package/lib/validator/IValidationRule.d.ts +9 -0
- package/lib/validator/IValidationRule.js +2 -0
- package/lib/validator/IValidationSubrule.d.ts +4 -0
- package/lib/validator/IValidationSubrule.js +2 -0
- package/lib/validator/Rule.d.ts +12 -0
- package/lib/validator/Rule.js +30 -0
- package/lib/validator/Validator.d.ts +14 -0
- package/lib/validator/Validator.js +57 -0
- package/lib/validator/types/ArrayType.d.ts +14 -0
- package/lib/validator/types/ArrayType.js +58 -0
- package/lib/validator/types/BasicType.d.ts +18 -0
- package/lib/validator/types/BasicType.js +54 -0
- package/lib/validator/types/NumberType.d.ts +19 -0
- package/lib/validator/types/NumberType.js +66 -0
- package/lib/validator/types/ObjectType.d.ts +18 -0
- package/lib/validator/types/ObjectType.js +51 -0
- package/lib/validator/types/StringType.d.ts +19 -0
- package/lib/validator/types/StringType.js +63 -0
- package/package.json +26 -0
- package/src/Container.ts +237 -0
- package/src/DeviceManager.ts +124 -0
- package/src/IServiceStructure.ts +6 -0
- package/src/IStructureDevice.ts +5 -0
- package/src/ImportManager.ts +112 -0
- package/src/MainProcess.ts +18 -0
- package/src/Utility.ts +44 -0
- package/src/actions/Action.ts +12 -0
- package/src/actions/BasicAction.ts +54 -0
- package/src/actions/GlobalAction.ts +14 -0
- package/src/actions/IAction.ts +8 -0
- package/src/actions/ILocalAction.ts +8 -0
- package/src/errors/CoreError.ts +87 -0
- package/src/errors/ErrorManager.ts +93 -0
- package/src/index.ts +30 -0
- package/src/ports/BasicPort.ts +53 -0
- package/src/ports/ILocalPort.ts +12 -0
- package/src/ports/IPort.ts +12 -0
- package/src/ports/Port.ts +17 -0
- package/src/ports/ReturnPort.ts +19 -0
- package/src/ports/StandartPort.ts +13 -0
- package/src/service/Device.ts +225 -0
- package/src/service/DeviceConnect.ts +36 -0
- package/src/service/DevicePort.ts +46 -0
- package/src/service/IDeviceEvent.ts +5 -0
- package/src/test.ts +82 -0
- package/src/validator/IValidationProblem.ts +9 -0
- package/src/validator/IValidationRule.ts +10 -0
- package/src/validator/IValidationSubrule.ts +5 -0
- package/src/validator/Rule.ts +30 -0
- package/src/validator/Validator.ts +67 -0
- package/src/validator/types/ArrayType.ts +67 -0
- package/src/validator/types/BasicType.ts +61 -0
- package/src/validator/types/NumberType.ts +86 -0
- package/src/validator/types/ObjectType.ts +58 -0
- package/src/validator/types/StringType.ts +79 -0
- package/tsconfig.json +103 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright © 2022 Boris Bobylev. All rights reserved.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const CoreError_1 = __importDefault(require("./CoreError"));
|
|
11
|
+
/**
|
|
12
|
+
* Класс является точкой входа для инициализации исключений
|
|
13
|
+
*
|
|
14
|
+
* Было принято решение вместо кучи мелких однотипных файлов сделать один класс
|
|
15
|
+
* со стандартным функционалом
|
|
16
|
+
*/
|
|
17
|
+
class ErrorManager {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.registeredList = [];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Регистрирует тип ошибки компонента
|
|
23
|
+
*
|
|
24
|
+
* Перед тем как менеджер ошибок может создать ошибки, необходимо зарегистрировать ее тип.
|
|
25
|
+
*
|
|
26
|
+
* @param {string} name Название компонента
|
|
27
|
+
* @param {string} code Код ошибки
|
|
28
|
+
* @param {string} short Короткий код ошибки
|
|
29
|
+
* @param {string} description Описание ошибки
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
register(name, code, short, description, rules = {}) {
|
|
33
|
+
const reg1 = this.getRegistered(code);
|
|
34
|
+
const reg2 = this.getRegistered(short);
|
|
35
|
+
if (reg1 !== null || reg2 !== null)
|
|
36
|
+
throw this.make('EM_CODE_EXISTS', { code, short });
|
|
37
|
+
const nr = { name, code, short, description, rules };
|
|
38
|
+
this.registeredList.push(nr);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Создание ошибки
|
|
42
|
+
*
|
|
43
|
+
*
|
|
44
|
+
*
|
|
45
|
+
* @param {string} short
|
|
46
|
+
*/
|
|
47
|
+
make(short, additional = {}) {
|
|
48
|
+
const reg = this.getRegistered(short);
|
|
49
|
+
if (reg === null)
|
|
50
|
+
throw this.make('EM_CODE_NOT_FOUND');
|
|
51
|
+
const ne = new CoreError_1.default(reg.name, reg.description, reg.code, reg.short);
|
|
52
|
+
ne.vAdd = Object.keys(additional);
|
|
53
|
+
return Object.assign(ne, additional);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Преобразует обычную ошибку в ошибку VRack
|
|
57
|
+
*
|
|
58
|
+
* @param {Error} error Ошибка для преобразования
|
|
59
|
+
*/
|
|
60
|
+
convert(error) {
|
|
61
|
+
if (error.vError)
|
|
62
|
+
return error;
|
|
63
|
+
const ne = this.make('EM_ERROR_CONVERT');
|
|
64
|
+
ne.import(error);
|
|
65
|
+
return ne;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Возвращает тип ошибки или null
|
|
69
|
+
*
|
|
70
|
+
* @param {string} short Короткий код ошибки или код ошибки поиска
|
|
71
|
+
*/
|
|
72
|
+
getRegistered(short) {
|
|
73
|
+
for (const registered of this.registeredList) {
|
|
74
|
+
if (registered.code === short || registered.short === short)
|
|
75
|
+
return registered;
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const GlobalErrorManager = new ErrorManager();
|
|
81
|
+
GlobalErrorManager.register('ErrorManager', 'NcZIb9QvQRcq', 'EM_CODE_EXISTS', 'This code already exists');
|
|
82
|
+
GlobalErrorManager.register('ErrorManager', 'uLYv4mE1Yo50', 'EM_CODE_NOT_FOUND', 'No such error found');
|
|
83
|
+
GlobalErrorManager.register('ErrorManager', 'RIl3BUrxWOzP', 'EM_ERROR_CONVERT', 'Converted error');
|
|
84
|
+
exports.default = GlobalErrorManager;
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { default as ErrorManager } from './errors/ErrorManager';
|
|
2
|
+
export { default as CoreError } from './errors/CoreError';
|
|
3
|
+
export { default as Rule } from './validator/Rule';
|
|
4
|
+
export { default as Validator } from './validator/Validator';
|
|
5
|
+
export { default as IValidationProblem } from './validator/IValidationProblem';
|
|
6
|
+
export { default as IValidationRule } from './validator/IValidationRule';
|
|
7
|
+
export { default as IValidationSubrule } from './validator/IValidationSubrule';
|
|
8
|
+
export { default as ImportManager } from './ImportManager';
|
|
9
|
+
export { default as DeviceManager } from './DeviceManager';
|
|
10
|
+
export { default as Container } from './Container';
|
|
11
|
+
export { default as MainProcess } from './MainProcess';
|
|
12
|
+
export { default as Action } from './actions/Action';
|
|
13
|
+
export { default as Device } from './service/Device';
|
|
14
|
+
export { default as DeviceConnect } from './service/DeviceConnect';
|
|
15
|
+
export { default as DevicePort } from './service/DevicePort';
|
|
16
|
+
export { default as Port } from './ports/Port';
|
|
17
|
+
export * from './service/Device';
|
|
18
|
+
export * from './service/DeviceConnect';
|
|
19
|
+
export * from './service/DevicePort';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright © 2022 Boris Bobylev. All rights reserved.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.Port = exports.DevicePort = exports.DeviceConnect = exports.Device = exports.Action = exports.MainProcess = exports.Container = exports.DeviceManager = exports.ImportManager = exports.Validator = exports.Rule = exports.CoreError = exports.ErrorManager = void 0;
|
|
25
|
+
/* ---------------- VALIDATOR EXPORT ------------------- */
|
|
26
|
+
var ErrorManager_1 = require("./errors/ErrorManager");
|
|
27
|
+
Object.defineProperty(exports, "ErrorManager", { enumerable: true, get: function () { return __importDefault(ErrorManager_1).default; } });
|
|
28
|
+
var CoreError_1 = require("./errors/CoreError");
|
|
29
|
+
Object.defineProperty(exports, "CoreError", { enumerable: true, get: function () { return __importDefault(CoreError_1).default; } });
|
|
30
|
+
var Rule_1 = require("./validator/Rule");
|
|
31
|
+
Object.defineProperty(exports, "Rule", { enumerable: true, get: function () { return __importDefault(Rule_1).default; } });
|
|
32
|
+
var Validator_1 = require("./validator/Validator");
|
|
33
|
+
Object.defineProperty(exports, "Validator", { enumerable: true, get: function () { return __importDefault(Validator_1).default; } });
|
|
34
|
+
/* ---------------- BASE OF VRACK ------------------- */
|
|
35
|
+
var ImportManager_1 = require("./ImportManager");
|
|
36
|
+
Object.defineProperty(exports, "ImportManager", { enumerable: true, get: function () { return __importDefault(ImportManager_1).default; } });
|
|
37
|
+
var DeviceManager_1 = require("./DeviceManager");
|
|
38
|
+
Object.defineProperty(exports, "DeviceManager", { enumerable: true, get: function () { return __importDefault(DeviceManager_1).default; } });
|
|
39
|
+
var Container_1 = require("./Container");
|
|
40
|
+
Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return __importDefault(Container_1).default; } });
|
|
41
|
+
var MainProcess_1 = require("./MainProcess");
|
|
42
|
+
Object.defineProperty(exports, "MainProcess", { enumerable: true, get: function () { return __importDefault(MainProcess_1).default; } });
|
|
43
|
+
var Action_1 = require("./actions/Action");
|
|
44
|
+
Object.defineProperty(exports, "Action", { enumerable: true, get: function () { return __importDefault(Action_1).default; } });
|
|
45
|
+
var Device_1 = require("./service/Device");
|
|
46
|
+
Object.defineProperty(exports, "Device", { enumerable: true, get: function () { return __importDefault(Device_1).default; } });
|
|
47
|
+
var DeviceConnect_1 = require("./service/DeviceConnect");
|
|
48
|
+
Object.defineProperty(exports, "DeviceConnect", { enumerable: true, get: function () { return __importDefault(DeviceConnect_1).default; } });
|
|
49
|
+
var DevicePort_1 = require("./service/DevicePort");
|
|
50
|
+
Object.defineProperty(exports, "DevicePort", { enumerable: true, get: function () { return __importDefault(DevicePort_1).default; } });
|
|
51
|
+
var Port_1 = require("./ports/Port");
|
|
52
|
+
Object.defineProperty(exports, "Port", { enumerable: true, get: function () { return __importDefault(Port_1).default; } });
|
|
53
|
+
__exportStar(require("./service/Device"), exports);
|
|
54
|
+
__exportStar(require("./service/DeviceConnect"), exports);
|
|
55
|
+
__exportStar(require("./service/DevicePort"), exports);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import BasicType from "../validator/types/BasicType";
|
|
2
|
+
import ILocalPort from "./ILocalPort";
|
|
3
|
+
import IPort from "./IPort";
|
|
4
|
+
export default class BasicPort {
|
|
5
|
+
protected port: ILocalPort;
|
|
6
|
+
constructor();
|
|
7
|
+
dynamic(count: number): this;
|
|
8
|
+
requirement(req: BasicType): this;
|
|
9
|
+
description(des: string): this;
|
|
10
|
+
export(): IPort;
|
|
11
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright © 2022 Boris Bobylev. All rights reserved.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const BasicType_1 = __importDefault(require("../validator/types/BasicType"));
|
|
11
|
+
class BasicPort {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.port = {
|
|
14
|
+
type: 'unknown',
|
|
15
|
+
description: '',
|
|
16
|
+
required: false,
|
|
17
|
+
dynamic: false,
|
|
18
|
+
count: 0
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
dynamic(count) {
|
|
22
|
+
this.port.count = count;
|
|
23
|
+
this.port.dynamic = true;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
requirement(req) {
|
|
27
|
+
this.port.requirement = req;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
description(des) {
|
|
31
|
+
this.port.description = des;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
export() {
|
|
35
|
+
const nPort = {
|
|
36
|
+
type: this.port.type,
|
|
37
|
+
description: this.port.description,
|
|
38
|
+
required: this.port.required,
|
|
39
|
+
dynamic: this.port.dynamic,
|
|
40
|
+
count: this.port.count
|
|
41
|
+
};
|
|
42
|
+
if (this.port.requirement instanceof BasicType_1.default)
|
|
43
|
+
nPort.requirement = this.port.requirement.export();
|
|
44
|
+
if (this.port.return instanceof BasicType_1.default)
|
|
45
|
+
nPort.return = this.port.return.export();
|
|
46
|
+
return nPort;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.default = BasicPort;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright © 2022 Boris Bobylev. All rights reserved.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const ReturnPort_1 = __importDefault(require("./ReturnPort"));
|
|
11
|
+
const StandartPort_1 = __importDefault(require("./StandartPort"));
|
|
12
|
+
class Port {
|
|
13
|
+
static standart() {
|
|
14
|
+
return new StandartPort_1.default();
|
|
15
|
+
}
|
|
16
|
+
static return() {
|
|
17
|
+
return new ReturnPort_1.default();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = Port;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright © 2022 Boris Bobylev. All rights reserved.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const BasicPort_1 = __importDefault(require("./BasicPort"));
|
|
11
|
+
class ReturnPort extends BasicPort_1.default {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.port.type = 'return';
|
|
15
|
+
}
|
|
16
|
+
return(req) {
|
|
17
|
+
this.port.return = req;
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = ReturnPort;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright © 2022 Boris Bobylev. All rights reserved.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const BasicPort_1 = __importDefault(require("./BasicPort"));
|
|
11
|
+
class StandartPort extends BasicPort_1.default {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.port.type = 'standart';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = StandartPort;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import BasicType from "../validator/types/BasicType";
|
|
2
|
+
import Container from '../Container';
|
|
3
|
+
import BasicAction from "../actions/BasicAction";
|
|
4
|
+
import BasicPort from "../ports/BasicPort";
|
|
5
|
+
import DevicePort from "./DevicePort";
|
|
6
|
+
/**
|
|
7
|
+
* Интерфейс списка исходящих портов устройства
|
|
8
|
+
// */
|
|
9
|
+
export declare enum EDeviceMessageTypes {
|
|
10
|
+
terminal = "terminal",
|
|
11
|
+
info = "info",
|
|
12
|
+
error = "error",
|
|
13
|
+
event = "event",
|
|
14
|
+
action = "action",
|
|
15
|
+
alert = "alert"
|
|
16
|
+
}
|
|
17
|
+
interface IDevicePorts {
|
|
18
|
+
input: {
|
|
19
|
+
[key: string]: DevicePort;
|
|
20
|
+
};
|
|
21
|
+
output: {
|
|
22
|
+
[key: string]: DevicePort;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export default class Device {
|
|
26
|
+
/** Идентификатор устройства */
|
|
27
|
+
id: string;
|
|
28
|
+
type: string;
|
|
29
|
+
ports: IDevicePorts;
|
|
30
|
+
/** Экземпляр класса виртуальной стойки */
|
|
31
|
+
Container: Container;
|
|
32
|
+
/** Входящие (назначаемые сверху) параметры устройства */
|
|
33
|
+
options: {
|
|
34
|
+
[key: string]: any;
|
|
35
|
+
};
|
|
36
|
+
constructor(id: string, type: string, Container: Container);
|
|
37
|
+
/**
|
|
38
|
+
* Short device description
|
|
39
|
+
*
|
|
40
|
+
* @return {string} Device description
|
|
41
|
+
* */
|
|
42
|
+
description(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Shares данные устройства (обновляемые данные)
|
|
45
|
+
* используется с методом `this.render`
|
|
46
|
+
*
|
|
47
|
+
* @see render()
|
|
48
|
+
* */
|
|
49
|
+
shares: any;
|
|
50
|
+
/**
|
|
51
|
+
*
|
|
52
|
+
*/
|
|
53
|
+
storage: any;
|
|
54
|
+
/** Список Action-методов устройства */
|
|
55
|
+
actions(): {
|
|
56
|
+
[key: string]: BasicAction;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Определение списка параметров устройства
|
|
60
|
+
*
|
|
61
|
+
* @returns {Array<Rule>}
|
|
62
|
+
* */
|
|
63
|
+
checkOptions(): {
|
|
64
|
+
[key: string]: BasicType;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Prepare options
|
|
68
|
+
*
|
|
69
|
+
* this method call before validating options
|
|
70
|
+
*/
|
|
71
|
+
prepareOptions(): void;
|
|
72
|
+
inputs(): {
|
|
73
|
+
[key: string]: BasicPort;
|
|
74
|
+
};
|
|
75
|
+
outputs(): {
|
|
76
|
+
[key: string]: BasicPort;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Метод является входной точкой для начала инициализации устройства
|
|
80
|
+
*
|
|
81
|
+
* Устройство пройдет только следующие этапы создания устройства:
|
|
82
|
+
*
|
|
83
|
+
* - Создания класса
|
|
84
|
+
* - Назначение праметров устройства
|
|
85
|
+
*
|
|
86
|
+
* Необходимо использовать для назначения функций вызова динамических портов
|
|
87
|
+
* устройства.
|
|
88
|
+
*/
|
|
89
|
+
preProcess(): void;
|
|
90
|
+
/**
|
|
91
|
+
* Метод является входной точкой для начала работы устройства
|
|
92
|
+
*
|
|
93
|
+
* Устройство пройдет следующие этапы создания устройства:
|
|
94
|
+
*
|
|
95
|
+
* - Создания класса
|
|
96
|
+
* - Назначение праметров устройства
|
|
97
|
+
* - Создание портов
|
|
98
|
+
* - Назначение функций вызова
|
|
99
|
+
* - Создание соединений между устройствами
|
|
100
|
+
* - Линковка Shares устройства
|
|
101
|
+
*
|
|
102
|
+
* Необходимо использовать для осуществления начала основной работы устройства
|
|
103
|
+
* например, инициализация подключений, создание таймеров и тп.
|
|
104
|
+
*/
|
|
105
|
+
process(): void;
|
|
106
|
+
/**
|
|
107
|
+
* По аналогии с `process` но асинхронный, загрузчик будет ждать выполнения всех
|
|
108
|
+
* методов `processPromise` всех устройств.
|
|
109
|
+
*
|
|
110
|
+
* Используется, когда есть необходимость перед запуском стойки выполнить
|
|
111
|
+
* и дождаться выполнения асинхронного кода (инициализация некоторых файловых баз данных и тп)
|
|
112
|
+
*/
|
|
113
|
+
processPromise(): Promise<void>;
|
|
114
|
+
stop(): void;
|
|
115
|
+
stopPromise(): Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
|
|
118
|
+
* к постановке в очередь устройства на обновление данных `Shares`
|
|
119
|
+
*/
|
|
120
|
+
render(): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
|
|
123
|
+
* к сохранение в локальное файловое хранилище данных `Storage`
|
|
124
|
+
*/
|
|
125
|
+
save(): boolean;
|
|
126
|
+
/**
|
|
127
|
+
* Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
|
|
128
|
+
* к отправке сообщению об ошибке
|
|
129
|
+
*
|
|
130
|
+
* @param {string} data Сообщение об ошибке
|
|
131
|
+
* @param {any} trace Непосредственно объект ошибки, или объект который поможет разобратся в случившейся ситуации
|
|
132
|
+
*/
|
|
133
|
+
error(data: string, trace: any): boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
|
|
136
|
+
* к отправке информационного сообщения
|
|
137
|
+
*
|
|
138
|
+
* @param {string} data Сообщение об ошибке
|
|
139
|
+
* @param {any} trace Дополнительная информация
|
|
140
|
+
*/
|
|
141
|
+
notify(data: string, trace: any): boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
|
|
144
|
+
* к отправке оповещения
|
|
145
|
+
*
|
|
146
|
+
* @param {string} data Сообщение об ошибке
|
|
147
|
+
* @param {any} trace Дополнительная информация
|
|
148
|
+
*/
|
|
149
|
+
alert(data: string, trace: any): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
|
|
152
|
+
* к отправке отладочной информации
|
|
153
|
+
*
|
|
154
|
+
* @param {string} data Сообщение об ошибке
|
|
155
|
+
* @param {any} trace Дополнительная информация
|
|
156
|
+
*/
|
|
157
|
+
terminal(data: string, trace: any): boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
|
|
160
|
+
* к отправке сообщения о событии
|
|
161
|
+
*
|
|
162
|
+
* @param {string} data Сообщение об ошибке
|
|
163
|
+
* @param {any} trace Дополнительная информация
|
|
164
|
+
*/
|
|
165
|
+
protected event(type: string, data: string, trace: any): boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Сообщает стойке, о том, что устройство не может дальше работать
|
|
168
|
+
* и произошла критическая ошибка
|
|
169
|
+
*
|
|
170
|
+
* Требует создание ошибки устройства DeviceError
|
|
171
|
+
*
|
|
172
|
+
*/
|
|
173
|
+
terminate(error: Error, action: string): boolean;
|
|
174
|
+
}
|
|
175
|
+
export {};
|