Socket
Socket
Sign inDemoInstall

@syncot/error

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@syncot/error - npm Package Compare versions

Comparing version 0.0.2 to 0.0.3

37

lib/error.d.ts

@@ -7,9 +7,15 @@ export interface ErrorDetails {

}
export interface SyncOtError extends Error {
export interface CustomError extends Error {
cause?: Error;
[key: string]: any;
}
export declare function createSyncOtError(name: string, message: string, cause?: Error): SyncOtError;
export declare function createSyncOtError(message: string, cause?: Error): SyncOtError;
export declare function createSyncOtError(details?: ErrorDetails): SyncOtError;
/**
* Creates a new Error instance with the specified properties.
* Additionally, `cause.message` is automatically appended to the new error's `message`.
*/
export declare function createError(details?: ErrorDetails): CustomError;
/**
* A SyncOtError is a CustomError with the `name` matching the regex /^SyncOtError($| )/.
*/
export declare type SyncOtError = CustomError;
export declare function isSyncOtError(error: any): error is SyncOtError;

@@ -19,3 +25,3 @@ export interface TsonError extends Error {

}
export declare function createTsonError(message: string): TsonError;
export declare function createTsonError(message?: string): TsonError;
export declare function isTsonError(error: any): error is TsonError;

@@ -45,3 +51,3 @@ export interface InvalidEntityError extends Error {

}
export declare function createNoServiceError(message: string): NoServiceError;
export declare function createNoServiceError(message?: string): NoServiceError;
export declare function isNoServiceError(error: any): error is NoServiceError;

@@ -51,3 +57,3 @@ export interface DisconnectedError extends Error {

}
export declare function createDisconnectedError(message: string): DisconnectedError;
export declare function createDisconnectedError(message?: string): DisconnectedError;
export declare function isDisconnectedError(error: any): error is DisconnectedError;

@@ -57,3 +63,3 @@ export interface NotInitializedError extends Error {

}
export declare function createNotInitializedError(message: string): NotInitializedError;
export declare function createNotInitializedError(message?: string): NotInitializedError;
export declare function isNotInitializedError(error: any): error is NotInitializedError;

@@ -63,3 +69,3 @@ export interface AlreadyInitializedError extends Error {

}
export declare function createAlreadyInitializedError(message: string): AlreadyInitializedError;
export declare function createAlreadyInitializedError(message?: string): AlreadyInitializedError;
export declare function isAlreadyInitializedError(error: any): error is AlreadyInitializedError;

@@ -85,3 +91,3 @@ export interface UnexpectedSessionIdError extends Error {

}
export declare function createSessionError(message: string, cause?: Error): SessionError;
export declare function createSessionError(message?: string, cause?: Error): SessionError;
export declare function isSessionError(error: any): error is SessionError;

@@ -92,3 +98,3 @@ export interface PresenceError extends Error {

}
export declare function createPresenceError(message: string, cause?: Error): PresenceError;
export declare function createPresenceError(message?: string, cause?: Error): PresenceError;
export declare function isPresenceError(error: any): error is PresenceError;

@@ -99,3 +105,3 @@ export interface AuthError extends Error {

}
export declare function createAuthError(message: string, cause?: Error): AuthError;
export declare function createAuthError(message?: string, cause?: Error): AuthError;
export declare function isAuthError(error: any): error is AuthError;

@@ -105,8 +111,3 @@ export interface DuplicateIdError extends Error {

}
export declare function createDuplicateIdError(message: string): DuplicateIdError;
export declare function createDuplicateIdError(message?: string): DuplicateIdError;
export declare function isDuplicateIdError(error: any): error is DuplicateIdError;
export interface CanceledError extends Error {
name: 'SyncOtError Canceled';
}
export declare function createCanceledError(message: string): CanceledError;
export declare function isCanceledError(error: any): error is CanceledError;
import { strict as assert } from 'assert';
const assertString = (argumentName, argument) => assert.equal(typeof argument, 'string', `Argument "${argumentName}" must be a string.`);
export function createSyncOtError(one, two, three) {
let name = '';
let message = '';
let cause = null;
let info = null;
if (typeof one === 'string' &&
typeof two === 'string' &&
(three instanceof Error || three == null)) {
name = one;
message = two;
cause = three;
}
else if (typeof one === 'string' &&
(two instanceof Error || two == null)) {
message = one;
cause = two;
}
else if (one == null) {
// Using all default values.
}
else if (typeof one === 'object') {
if (typeof one.name === 'string') {
name = one.name;
}
else {
assert.ok(one.name == null, 'Argument "details.name" must be a string, null or undefined.');
}
if (typeof one.message === 'string') {
message = one.message;
}
else {
assert.ok(one.message == null, 'Argument "details.message" must be a string, null or undefined.');
}
if (one.cause instanceof Error) {
cause = one.cause;
}
else {
assert.ok(one.cause == null, 'Argument "details.cause" must be an Error, null or undefined.');
}
assert.ok(!('stack' in one), 'Argument "details.stack" must not be present.');
info = one;
}
else {
assert.fail('Invalid arguments.');
}
if (cause) {
message += ` => ${cause}`;
}
/**
* Creates a new Error instance with the specified properties.
* Additionally, `cause.message` is automatically appended to the new error's `message`.
*/
export function createError(details = {}) {
assert.ok(details != null && typeof details === 'object', 'Argument "details" must be an object.');
assert.ok(typeof details.name === 'string' || details.name === undefined, 'Argument "details.name" must be a string or undefined.');
assert.ok(typeof details.message === 'string' || details.message === undefined, 'Argument "details.message" must be a string or undefined.');
assert.ok(details.cause instanceof Error || details.cause === undefined, 'Argument "details.cause" must be an Error or undefined.');
assert.ok(!('stack' in details), 'Argument "details.stack" must not be present.');
const name = details.name;
const cause = details.cause;
const message = details.message
? cause
? `${details.message} => ${cause}`
: details.message
: cause
? `=> ${cause}`
: '';
const error = new Error(message);
Object.defineProperty(error, 'name', {
configurable: true,
value: name ? `SyncOtError ${name}` : 'SyncOtError',
writable: true,
});
if (cause) {
error.cause = cause;
if (name !== undefined) {
Object.defineProperty(error, 'name', {
configurable: true,
value: name,
writable: true,
});
}
if (info) {
for (const key in info) {
if (info.hasOwnProperty(key) &&
key !== 'name' &&
key !== 'message' &&
key !== 'cause') {
error[key] = info[key];
}
for (const key in details) {
if (details.hasOwnProperty(key) &&
key !== 'name' &&
key !== 'message') {
error[key] = details[key];
}

@@ -76,4 +42,6 @@ }

export function createTsonError(message) {
assertString('message', message);
return createSyncOtError('TSON', message);
return createError({
message,
name: 'SyncOtError TSON',
});
}

@@ -90,5 +58,5 @@ export function isTsonError(error) {

export function createInvalidEntityError(entityName, entity, key = null) {
assertString('name', entityName);
assert.ok(typeof entityName === 'string', 'Argument "entityName" must be a string.');
assert.ok(typeof key === 'string' || key === null, 'Argument "key" must be a string or null.');
return createSyncOtError({
return createError({
entity,

@@ -100,3 +68,3 @@ entityName,

: `Invalid "${entityName}.${key}".`,
name: 'InvalidEntity',
name: 'SyncOtError InvalidEntity',
});

@@ -108,6 +76,6 @@ }

export function createTypeNotFoundError(typeName) {
assertString('typeName', typeName);
return createSyncOtError({
assert.ok(typeof typeName === 'string', 'Argument "typeName" must be a string.');
return createError({
message: `Type "${typeName}" not found.`,
name: 'TypeNotFound',
name: 'SyncOtError TypeNotFound',
typeName,

@@ -120,4 +88,6 @@ });

export function createNoServiceError(message) {
assertString('message', message);
return createSyncOtError('NoService', message);
return createError({
message,
name: 'SyncOtError NoService',
});
}

@@ -128,4 +98,6 @@ export function isNoServiceError(error) {

export function createDisconnectedError(message) {
assertString('message', message);
return createSyncOtError('Disconnected', message);
return createError({
message,
name: 'SyncOtError Disconnected',
});
}

@@ -136,4 +108,6 @@ export function isDisconnectedError(error) {

export function createNotInitializedError(message) {
assertString('message', message);
return createSyncOtError('NotInitialized', message);
return createError({
message,
name: 'SyncOtError NotInitialized',
});
}

@@ -144,4 +118,6 @@ export function isNotInitializedError(error) {

export function createAlreadyInitializedError(message) {
assertString('message', message);
return createSyncOtError('AlreadyInitialized', message);
return createError({
message,
name: 'SyncOtError AlreadyInitialized',
});
}

@@ -152,5 +128,7 @@ export function isAlreadyInitializedError(error) {

}
export function createUnexpectedSessionIdError(message = 'Unexpected session id.') {
assertString('message', message);
return createSyncOtError('UnexpectedSessionId', message);
export function createUnexpectedSessionIdError(message) {
return createError({
message,
name: 'SyncOtError UnexpectedSessionId',
});
}

@@ -161,5 +139,7 @@ export function isUnexpectedSessionIdError(error) {

}
export function createUnexpectedVersionNumberError(message = 'Unexpected version number.') {
assertString('message', message);
return createSyncOtError('UnexpectedVersionNumber', message);
export function createUnexpectedVersionNumberError(message) {
return createError({
message,
name: 'SyncOtError UnexpectedVersionNumber',
});
}

@@ -170,5 +150,7 @@ export function isUnexpectedVersionNumberError(error) {

}
export function createUnexpectedSequenceNumberError(message = 'Unexpected sequence number.') {
assertString('message', message);
return createSyncOtError('UnexpectedSequenceNumber', message);
export function createUnexpectedSequenceNumberError(message) {
return createError({
message,
name: 'SyncOtError UnexpectedSequenceNumber',
});
}

@@ -180,4 +162,7 @@ export function isUnexpectedSequenceNumberError(error) {

export function createSessionError(message, cause) {
assertString('message', message);
return createSyncOtError('Session', message, cause);
return createError({
cause,
message,
name: 'SyncOtError Session',
});
}

@@ -188,4 +173,7 @@ export function isSessionError(error) {

export function createPresenceError(message, cause) {
assertString('message', message);
return createSyncOtError('Presence', message, cause);
return createError({
cause,
message,
name: 'SyncOtError Presence',
});
}

@@ -196,4 +184,7 @@ export function isPresenceError(error) {

export function createAuthError(message, cause) {
assertString('message', message);
return createSyncOtError('Auth', message, cause);
return createError({
cause,
message,
name: 'SyncOtError Auth',
});
}

@@ -204,4 +195,6 @@ export function isAuthError(error) {

export function createDuplicateIdError(message) {
assertString('message', message);
return createSyncOtError('DuplicateId', message);
return createError({
message,
name: 'SyncOtError DuplicateId',
});
}

@@ -211,8 +204,1 @@ export function isDuplicateIdError(error) {

}
export function createCanceledError(message) {
assertString('message', message);
return createSyncOtError('Canceled', message);
}
export function isCanceledError(error) {
return error instanceof Error && error.name === 'SyncOtError Canceled';
}
{
"name": "@syncot/error",
"version": "0.0.2",
"version": "0.0.3",
"description": "Helpers for managing errors.",

@@ -30,3 +30,3 @@ "keywords": [

},
"gitHead": "4744a1bc32df913a37b5be47a77c16ec308d219c"
"gitHead": "bd4d64ce07f354f6123f71b6f6ba0796bc5b198b"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc