BREAKING CHANGE(switch to esm): update

This commit is contained in:
Philipp Kunz 2022-03-14 22:40:55 +01:00
parent 7f73664970
commit 966d953aff
17 changed files with 4579 additions and 13045 deletions

View File

@ -22,5 +22,6 @@
} }
} }
} }
] ],
"typescript.tsdk": "node_modules/typescript/lib"
} }

17451
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -4,9 +4,10 @@
"description": "easy and secure websocket communication", "description": "easy and secure websocket communication",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts", "typings": "dist_ts/index.d.ts",
"type": "module",
"scripts": { "scripts": {
"test": "(tstest test/)", "test": "(tstest test/)",
"build": "(tsbuild --web && tsbundle --from ./ts/index.ts --to dist_bundle/bundle.js)" "build": "(tsbuild --web --allowimplicitany --skiplibcheck && tsbundle --from ./ts/index.ts --to dist_bundle/bundle.js)"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@ -22,24 +23,24 @@
"@apiglobal/typedrequest-interfaces": "^1.0.15", "@apiglobal/typedrequest-interfaces": "^1.0.15",
"@pushrocks/isohash": "^1.0.2", "@pushrocks/isohash": "^1.0.2",
"@pushrocks/isounique": "^1.0.5", "@pushrocks/isounique": "^1.0.5",
"@pushrocks/lik": "^5.0.0", "@pushrocks/lik": "^5.0.4",
"@pushrocks/smartdelay": "^2.0.13", "@pushrocks/smartdelay": "^2.0.13",
"@pushrocks/smartenv": "^4.0.16", "@pushrocks/smartenv": "^4.0.16",
"@pushrocks/smartexpress": "^3.0.108", "@pushrocks/smartexpress": "^3.0.108",
"@pushrocks/smartjson": "^4.0.6", "@pushrocks/smartjson": "^4.0.6",
"@pushrocks/smartlog": "^2.0.44", "@pushrocks/smartlog": "^2.0.44",
"@pushrocks/smartpromise": "^3.1.6", "@pushrocks/smartpromise": "^3.1.7",
"@pushrocks/smartrx": "^2.0.19", "@pushrocks/smartrx": "^2.0.25",
"@pushrocks/smarttime": "^3.0.43", "@pushrocks/smarttime": "^3.0.45",
"socket.io": "^4.4.1", "socket.io": "^4.4.1",
"socket.io-client": "^4.4.1" "socket.io-client": "^4.4.1"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.29", "@gitzone/tsbuild": "^2.1.50",
"@gitzone/tsrun": "^1.2.18", "@gitzone/tsrun": "^1.2.31",
"@gitzone/tstest": "^1.0.60", "@gitzone/tstest": "^1.0.67",
"@pushrocks/tapbundle": "^3.2.15", "@pushrocks/tapbundle": "^5.0.2",
"@types/node": "^17.0.10", "@types/node": "^17.0.21",
"tslint": "^6.1.3", "tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0" "tslint-config-prettier": "^1.18.0"
}, },

View File

@ -1,10 +1,10 @@
// tslint:disable-next-line:no-implicit-dependencies // tslint:disable-next-line:no-implicit-dependencies
import { expect, tap } from '@pushrocks/tapbundle'; import { expect, expectAsync, tap } from '@pushrocks/tapbundle';
import * as isohash from '@pushrocks/isohash'; import * as isohash from '@pushrocks/isohash';
import * as smartexpress from '@pushrocks/smartexpress'; import * as smartexpress from '@pushrocks/smartexpress';
import smartsocket = require('../ts/index'); import * as smartsocket from '../ts/index.js';
let testSmartsocket: smartsocket.Smartsocket; let testSmartsocket: smartsocket.Smartsocket;
let testSmartsocketClient: smartsocket.SmartsocketClient; let testSmartsocketClient: smartsocket.SmartsocketClient;
@ -18,7 +18,7 @@ const testConfig = {
// class smartsocket // class smartsocket
tap.test('should create a new smartsocket', async () => { tap.test('should create a new smartsocket', async () => {
testSmartsocket = new smartsocket.Smartsocket({ alias: 'testserver', port: testConfig.port }); testSmartsocket = new smartsocket.Smartsocket({ alias: 'testserver', port: testConfig.port });
expect(testSmartsocket).be.instanceOf(smartsocket.Smartsocket); expect(testSmartsocket).toBeInstanceOf(smartsocket.Smartsocket);
}); });
tap.test('Should accept an smartExpressServer as server', async () => { tap.test('Should accept an smartExpressServer as server', async () => {
@ -80,7 +80,7 @@ tap.test('should be able to make a functionCall from client to server', async ()
const response: any = await testSmartsocketClient.serverCall('testFunction1', { const response: any = await testSmartsocketClient.serverCall('testFunction1', {
value1: randomString, value1: randomString,
}); });
expect(response.value1).to.equal(randomString); expect(response.value1).toEqual(randomString);
if (counter % 100 === 0) { if (counter % 100 === 0) {
console.log( console.log(
`processed 100 more messages in ${Date.now() - startTime}ms. ${ `processed 100 more messages in ${Date.now() - startTime}ms. ${

View File

@ -1,7 +1,7 @@
// tslint:disable-next-line:no-implicit-dependencies // tslint:disable-next-line:no-implicit-dependencies
import { expect, tap } from '@pushrocks/tapbundle'; import { expect, tap } from '@pushrocks/tapbundle';
import smartsocket = require('../ts/index'); import * as smartsocket from '../ts/index.js';
let testSmartsocket: smartsocket.Smartsocket; let testSmartsocket: smartsocket.Smartsocket;
let testSmartsocketClient: smartsocket.SmartsocketClient; let testSmartsocketClient: smartsocket.SmartsocketClient;
@ -79,7 +79,7 @@ tap.test('should be able to tag a connection from client', async (tools) => {
return true; return true;
}) })
.getTagById('awesome'); .getTagById('awesome');
expect(tagOnServerSide.payload).to.equal('yes'); expect(tagOnServerSide.payload).toEqual('yes');
}); });
tap.test('should be able to tag a connection from server', async (tools) => { tap.test('should be able to tag a connection from server', async (tools) => {
@ -92,7 +92,7 @@ tap.test('should be able to tag a connection from server', async (tools) => {
payload: 'absolutely', payload: 'absolutely',
}); });
const tagOnClientSide = await testSmartsocketClient.socketConnection.getTagById('awesome2'); const tagOnClientSide = await testSmartsocketClient.socketConnection.getTagById('awesome2');
expect(tagOnClientSide.payload).to.equal('absolutely'); expect(tagOnClientSide.payload).toEqual('absolutely');
}); });
tap.test('should be able to make a functionCall from client to server', async () => { tap.test('should be able to make a functionCall from client to server', async () => {
@ -100,7 +100,7 @@ tap.test('should be able to make a functionCall from client to server', async ()
value1: 'hello', value1: 'hello',
}); });
console.log(response); console.log(response);
expect(response.value1).to.equal('hello'); expect(response.value1).toEqual('hello');
}); });
tap.test('should be able to make a functionCall from server to client', async () => { tap.test('should be able to make a functionCall from server to client', async () => {
@ -114,14 +114,14 @@ tap.test('should be able to make a functionCall from server to client', async ()
}) })
); );
console.log(response); console.log(response);
expect(response.hi).to.equal('hi there from server'); expect(response.hi).toEqual('hi there from server');
}); });
tap.test('client should disconnect and reconnect', async (toolsArg) => { tap.test('client should disconnect and reconnect', async (toolsArg) => {
await testSmartsocketClient.disconnect(); await testSmartsocketClient.disconnect();
await testSmartsocketClient.connect(); await testSmartsocketClient.connect();
await toolsArg.delayFor(2000); await toolsArg.delayFor(2000);
expect(testSmartsocket.socketConnections.getArray().length).to.equal(1); expect(testSmartsocket.socketConnections.getArray().length).toEqual(1);
}); });
// class smartsocket // class smartsocket
@ -133,13 +133,13 @@ tap.test('should be able to switch to a new server', async (toolsArg) => {
}); });
tap.test('should be able to locate a connection tag after reconnect', async (tools) => { tap.test('should be able to locate a connection tag after reconnect', async (tools) => {
expect(testSmartsocket.socketConnections.getArray().length).to.equal(1); expect(testSmartsocket.socketConnections.getArray().length).toEqual(1);
const tagOnServerSide = await testSmartsocket.socketConnections const tagOnServerSide = await testSmartsocket.socketConnections
.findSync((socketConnection) => { .findSync((socketConnection) => {
return true; return true;
}) })
.getTagById('awesome'); .getTagById('awesome');
expect(tagOnServerSide.payload).to.equal('yes'); expect(tagOnServerSide.payload).toEqual('yes');
}); });
// terminate // terminate

View File

@ -1,7 +1,7 @@
// tslint:disable-next-line:no-implicit-dependencies // tslint:disable-next-line:no-implicit-dependencies
import { expect, tap } from '@pushrocks/tapbundle'; import { expect, tap } from '@pushrocks/tapbundle';
import smartsocket = require('../ts/index'); import * as smartsocket from '../ts/index.js';
let testSmartsocket: smartsocket.Smartsocket; let testSmartsocket: smartsocket.Smartsocket;
let testSmartsocketClient: smartsocket.SmartsocketClient; let testSmartsocketClient: smartsocket.SmartsocketClient;
@ -35,7 +35,7 @@ const testConfig = {
// class smartsocket // class smartsocket
tap.test('should create a new smartsocket', async () => { tap.test('should create a new smartsocket', async () => {
testSmartsocket = new smartsocket.Smartsocket({ alias: 'testserver2', port: testConfig.port }); testSmartsocket = new smartsocket.Smartsocket({ alias: 'testserver2', port: testConfig.port });
expect(testSmartsocket).be.instanceOf(smartsocket.Smartsocket); expect(testSmartsocket).toBeInstanceOf(smartsocket.Smartsocket);
}); });
// class SocketFunction // class SocketFunction
@ -82,7 +82,7 @@ tap.test('should be able to tag a connection from client', async (tools) => {
return true; return true;
}) })
.getTagById('awesome'); .getTagById('awesome');
expect(tagOnServerSide.payload).to.equal('yes'); expect(tagOnServerSide.payload).toEqual('yes');
}); });
tap.test('should be able to tag a connection from server', async (tools) => { tap.test('should be able to tag a connection from server', async (tools) => {
@ -95,7 +95,7 @@ tap.test('should be able to tag a connection from server', async (tools) => {
payload: 'absolutely', payload: 'absolutely',
}); });
const tagOnClientSide = await testSmartsocketClient.socketConnection.getTagById('awesome2'); const tagOnClientSide = await testSmartsocketClient.socketConnection.getTagById('awesome2');
expect(tagOnClientSide.payload).to.equal('absolutely'); expect(tagOnClientSide.payload).toEqual('absolutely');
}); });
tap.test('2 clients should connect in parallel', async () => { tap.test('2 clients should connect in parallel', async () => {
@ -107,7 +107,7 @@ tap.test('should be able to make a functionCall from client to server', async ()
value1: 'hello', value1: 'hello',
}); });
console.log(response); console.log(response);
expect(response.value1).to.equal('hello'); expect(response.value1).toEqual('hello');
}); });
tap.test('should be able to make a functionCall from server to client', async () => { tap.test('should be able to make a functionCall from server to client', async () => {
@ -121,7 +121,7 @@ tap.test('should be able to make a functionCall from server to client', async ()
}) })
); );
console.log(response); console.log(response);
expect(response.hi).to.equal('hi there from server'); expect(response.hi).toEqual('hi there from server');
}); });
tap.test('client should disconnect and reconnect', async (tools) => { tap.test('client should disconnect and reconnect', async (tools) => {
@ -136,7 +136,7 @@ tap.test('should be able to locate a connection tag after reconnect', async (too
return true; return true;
}) })
.getTagById('awesome'); .getTagById('awesome');
expect(tagOnServerSide.payload).to.equal('yes'); expect(tagOnServerSide.payload).toEqual('yes');
}); });
// terminate // terminate

View File

@ -1,7 +1,7 @@
// export main classes // export main classes
export * from './smartsocket.classes.smartsocket'; export * from './smartsocket.classes.smartsocket.js';
export * from './smartsocket.classes.smartsocketclient'; export * from './smartsocket.classes.smartsocketclient.js';
// export further classes and objects // export further classes and objects
export * from './smartsocket.classes.socketfunction'; export * from './smartsocket.classes.socketfunction.js';
export * from './smartsocket.classes.socketconnection'; export * from './smartsocket.classes.socketconnection.js';

View File

@ -1,2 +1,2 @@
export * from './connection'; export * from './connection.js';
export * from './tag'; export * from './tag.js';

View File

@ -1,17 +1,17 @@
import * as plugins from './smartsocket.plugins'; import * as plugins from './smartsocket.plugins.js';
import * as pluginsTyped from './smartsocket.pluginstyped'; import * as pluginsTyped from './smartsocket.pluginstyped.js';
// classes // classes
import { SocketConnection } from './smartsocket.classes.socketconnection'; import { SocketConnection } from './smartsocket.classes.socketconnection.js';
import { import {
ISocketFunctionCallDataRequest, ISocketFunctionCallDataRequest,
SocketFunction, SocketFunction,
ISocketFunctionCallDataResponse, ISocketFunctionCallDataResponse,
} from './smartsocket.classes.socketfunction'; } from './smartsocket.classes.socketfunction.js';
import { SocketRequest } from './smartsocket.classes.socketrequest'; import { SocketRequest } from './smartsocket.classes.socketrequest.js';
import { SocketServer } from './smartsocket.classes.socketserver'; import { SocketServer } from './smartsocket.classes.socketserver.js';
import { logger } from './smartsocket.logging'; import { logger } from './smartsocket.logging.js';
export interface ISmartsocketConstructorOptions { export interface ISmartsocketConstructorOptions {
alias: string; alias: string;

View File

@ -1,14 +1,14 @@
import * as plugins from './smartsocket.plugins'; import * as plugins from './smartsocket.plugins.js';
import * as pluginsTyped from './smartsocket.pluginstyped'; import * as pluginsTyped from './smartsocket.pluginstyped.js';
import * as interfaces from './interfaces'; import * as interfaces from './interfaces/index.js';
import { SocketConnection } from './smartsocket.classes.socketconnection'; import { SocketConnection } from './smartsocket.classes.socketconnection.js';
import { import {
ISocketFunctionCallDataRequest, ISocketFunctionCallDataRequest,
SocketFunction, SocketFunction,
} from './smartsocket.classes.socketfunction'; } from './smartsocket.classes.socketfunction.js';
import { ISocketRequestDataObject, SocketRequest } from './smartsocket.classes.socketrequest'; import { ISocketRequestDataObject, SocketRequest } from './smartsocket.classes.socketrequest.js';
import { logger } from './smartsocket.logging'; import { logger } from './smartsocket.logging.js';
/** /**
* interface for class SmartsocketClient * interface for class SmartsocketClient

View File

@ -1,15 +1,15 @@
import * as plugins from './smartsocket.plugins'; import * as plugins from './smartsocket.plugins.js';
import * as pluginsTyped from './smartsocket.pluginstyped'; import * as pluginsTyped from './smartsocket.pluginstyped.js';
import * as interfaces from './interfaces'; import * as interfaces from './interfaces/index.js';
// import classes // import classes
import { Smartsocket } from './smartsocket.classes.smartsocket'; import { Smartsocket } from './smartsocket.classes.smartsocket.js';
import { SocketFunction } from './smartsocket.classes.socketfunction'; import { SocketFunction } from './smartsocket.classes.socketfunction.js';
import { SocketRequest, ISocketRequestDataObject } from './smartsocket.classes.socketrequest'; import { SocketRequest, ISocketRequestDataObject } from './smartsocket.classes.socketrequest.js';
// socket.io // socket.io
import { SmartsocketClient } from './smartsocket.classes.smartsocketclient'; import { SmartsocketClient } from './smartsocket.classes.smartsocketclient.js';
import { logger } from './smartsocket.logging'; import { logger } from './smartsocket.logging.js';
// export interfaces // export interfaces

View File

@ -1,9 +1,9 @@
import * as plugins from './smartsocket.plugins'; import * as plugins from './smartsocket.plugins.js';
// import classes // import classes
import { SocketConnection } from './smartsocket.classes.socketconnection'; import { SocketConnection } from './smartsocket.classes.socketconnection.js';
import { Smartsocket } from './smartsocket.classes.smartsocket'; import { Smartsocket } from './smartsocket.classes.smartsocket.js';
import { SmartsocketClient } from './smartsocket.classes.smartsocketclient'; import { SmartsocketClient } from './smartsocket.classes.smartsocketclient.js';
// export interfaces // export interfaces

View File

@ -1,17 +1,17 @@
import * as plugins from './smartsocket.plugins'; import * as plugins from './smartsocket.plugins.js';
// import interfaces // import interfaces
import { import {
SocketFunction, SocketFunction,
ISocketFunctionCallDataRequest, ISocketFunctionCallDataRequest,
ISocketFunctionCallDataResponse, ISocketFunctionCallDataResponse,
} from './smartsocket.classes.socketfunction'; } from './smartsocket.classes.socketfunction.js';
// import classes // import classes
import { SocketConnection } from './smartsocket.classes.socketconnection'; import { SocketConnection } from './smartsocket.classes.socketconnection.js';
import { logger } from './smartsocket.logging'; import { logger } from './smartsocket.logging.js';
import { Smartsocket } from './smartsocket.classes.smartsocket'; import { Smartsocket } from './smartsocket.classes.smartsocket.js';
import { SmartsocketClient } from './smartsocket.classes.smartsocketclient'; import { SmartsocketClient } from './smartsocket.classes.smartsocketclient.js';
// export interfaces // export interfaces
export type TSocketRequestStatus = 'new' | 'pending' | 'finished'; export type TSocketRequestStatus = 'new' | 'pending' | 'finished';

View File

@ -1,9 +1,9 @@
import * as plugins from './smartsocket.plugins'; import * as plugins from './smartsocket.plugins.js';
import * as pluginsTyped from './smartsocket.pluginstyped'; import * as pluginsTyped from './smartsocket.pluginstyped.js';
// used in case no other server is supplied // used in case no other server is supplied
import { Smartsocket } from './smartsocket.classes.smartsocket'; import { Smartsocket } from './smartsocket.classes.smartsocket.js';
import { logger } from './smartsocket.logging'; import { logger } from './smartsocket.logging.js';
/** /**
* class socketServer * class socketServer

View File

@ -1,3 +1,3 @@
import * as plugins from './smartsocket.plugins'; import * as plugins from './smartsocket.plugins.js';
export const logger = new plugins.smartlog.ConsoleLog(); export const logger = new plugins.smartlog.ConsoleLog();

View File

@ -1,6 +1,6 @@
// node native // node native
import type http from 'http'; import type * as http from 'http';
import type https from 'https'; import type * as https from 'https';
export { http, https }; export { http, https };

7
tsconfig.json Normal file
View File

@ -0,0 +1,7 @@
{
"compilerOptions": {
"module": "ES2020",
"moduleResolution": "node12",
"esModuleInterop": true
}
}