@iotize/tap
Version:
IoTize Device client for Javascript
74 lines • 6.39 kB
JavaScript
import { CodeError } from '@iotize/common/error';
import { FirmwareState } from '@iotize/tap/service/impl/firmware';
/**
* TODO move to TapConfiguratorError
*/
export class ConfigKeyNotSupportedByFirmwareVersion extends Error {
constructor(configKey, firmwareVersion, constraint) {
super(`Configuration key "${configKey}" is not available for you firmware version (${firmwareVersion}). \
${constraint.minApiVersion
? `Minimal firmware version: ${constraint.minApiVersion}.`
: ''}\
${constraint.maxApiVersion
? `Maximal firmware version: ${constraint.maxApiVersion}.`
: ''}`);
this.configKey = configKey;
this.firmwareVersion = firmwareVersion;
this.constraint = constraint;
}
}
export class TapConfiguratorError extends CodeError {
constructor(code, msg, cause) {
super(msg, code);
this.cause = cause;
}
static internalError(msg, cause) {
return new TapConfiguratorError(TapConfiguratorError.Code.InternalError, msg, cause);
}
static unexpectedFirmwareState(state) {
return new TapConfiguratorError(TapConfiguratorError.Code.UnexpectedFirmwareState, `Firmware state is not in expected mode. It should be ${FirmwareState.NORMAL} or ${FirmwareState.LEGACY} but found ${state}`);
}
static invalidConfiguration(message) {
return new TapConfiguratorError(TapConfiguratorError.Code.InvalidSchema, message);
}
}
(function (TapConfiguratorError) {
let Code;
(function (Code) {
Code["UnexpectedFirmwareState"] = "TapConfiguratorErrorUnexpectedFirmwareState";
Code["InvalidSchema"] = "TapConfiguratorErrorIvalidSchema";
Code["InternalError"] = "TapConfiguratorErrorInternalError";
})(Code = TapConfiguratorError.Code || (TapConfiguratorError.Code = {}));
class InvalidSchemaError extends TapConfiguratorError {
constructor(validate) {
super(Code.InvalidSchema, `\
Invalid Tap configuration file:
${InvalidSchemaError.ajvErrorsToString(validate.errors)}`);
this.validate = validate;
this.errors = this.validate.errors || [];
}
static ajvErrorsToString(errors) {
// console.log('errors', JSON.stringify(errors, undefined, 4));
return errors
? errors
.map((error) => {
let message;
const instancePath = error.instancePath || error.dataPath;
switch (error.keyword) {
case 'additionalProperties':
const params = error.params;
message = `${instancePath} should not have additional property "${params
.additionalProperty}"`;
break;
default:
message = `${instancePath} ${error.message} (keyword: ${error.keyword})`;
}
return `\t- ${message}`;
})
.join('\n')
: 'Unknown errors';
}
}
TapConfiguratorError.InvalidSchemaError = InvalidSchemaError;
})(TapConfiguratorError || (TapConfiguratorError = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vY29uZmlndXJhdG9yL3NyYy9saWIvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHbEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0NBQXVDLFNBQVEsS0FBSztJQUMvRCxZQUNrQixTQUFpQixFQUNqQixlQUF1QixFQUN2QixVQUdmO1FBRUQsS0FBSyxDQUFDLHNCQUFzQixTQUFTLGdEQUFnRCxlQUFlO0VBRXRHLFVBQVUsQ0FBQyxhQUFhO1lBQ3RCLENBQUMsQ0FBQyw2QkFBNkIsVUFBVSxDQUFDLGFBQWEsR0FBRztZQUMxRCxDQUFDLENBQUMsRUFDTjtFQUVFLFVBQVUsQ0FBQyxhQUFhO1lBQ3RCLENBQUMsQ0FBQyw2QkFBNkIsVUFBVSxDQUFDLGFBQWEsR0FBRztZQUMxRCxDQUFDLENBQUMsRUFDTixFQUFFLENBQUMsQ0FBQztRQWpCZ0IsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixvQkFBZSxHQUFmLGVBQWUsQ0FBUTtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUd6QjtJQWFILENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxTQUFvQztJQUM1RSxZQUNFLElBQStCLEVBQy9CLEdBQVcsRUFDSixLQUFhO1FBRXBCLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFGVixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBR3RCLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQzdDLE9BQU8sSUFBSSxvQkFBb0IsQ0FDN0Isb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFDdkMsR0FBRyxFQUNILEtBQUssQ0FDTixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFvQjtRQUNqRCxPQUFPLElBQUksb0JBQW9CLENBQzdCLG9CQUFvQixDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFDakQsd0RBQXdELGFBQWEsQ0FBQyxNQUFNLE9BQU8sYUFBYSxDQUFDLE1BQU0sY0FBYyxLQUFLLEVBQUUsQ0FDN0gsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBZTtRQUN6QyxPQUFPLElBQUksb0JBQW9CLENBQzdCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQ3ZDLE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsV0FBaUIsb0JBQW9CO0lBQ25DLElBQVksSUFJWDtJQUpELFdBQVksSUFBSTtRQUNkLCtFQUF1RSxDQUFBO1FBQ3ZFLDBEQUFrRCxDQUFBO1FBQ2xELDJEQUFtRCxDQUFBO0lBQ3JELENBQUMsRUFKVyxJQUFJLEdBQUoseUJBQUksS0FBSix5QkFBSSxRQUlmO0lBRUQsTUFBYSxrQkFBbUIsU0FBUSxvQkFBb0I7UUFHMUQsWUFBbUIsUUFBMEI7WUFDM0MsS0FBSyxDQUNILElBQUksQ0FBQyxhQUFhLEVBQ2xCOztFQUVOLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUNsRCxDQUFDO1lBTmUsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7WUFPM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDM0MsQ0FBQztRQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FDN0IsTUFHUTtZQUVSLCtEQUErRDtZQUMvRCxPQUFPLE1BQU07Z0JBQ1gsQ0FBQyxDQUFDLE1BQU07cUJBQ0gsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2IsSUFBSSxPQUFlLENBQUM7b0JBQ3BCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQztvQkFDMUQsUUFBUSxLQUFLLENBQUMsT0FBTyxFQUFFO3dCQUNyQixLQUFLLHNCQUFzQjs0QkFDekIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQzs0QkFDNUIsT0FBTyxHQUFHLEdBQUcsWUFBWSx5Q0FDdEIsTUFBeUM7aUNBQ3ZDLGtCQUNMLEdBQUcsQ0FBQzs0QkFDSixNQUFNO3dCQUNSOzRCQUNFLE9BQU8sR0FBRyxHQUFHLFlBQVksSUFBSSxLQUFLLENBQUMsT0FBTyxjQUFjLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQztxQkFDNUU7b0JBQ0QsT0FBTyxPQUFPLE9BQU8sRUFBRSxDQUFDO2dCQUMxQixDQUFDLENBQUM7cUJBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDZixDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFDdkIsQ0FBQztLQUNGO0lBekNZLHVDQUFrQixxQkF5QzlCLENBQUE7QUFDSCxDQUFDLEVBakRnQixvQkFBb0IsS0FBcEIsb0JBQW9CLFFBaURwQyJ9