Compare commits

...

36 Commits

Author SHA1 Message Date
4fc09af779 2.0.17 2023-03-29 16:07:54 +02:00
f73d973383 fix(core): update 2023-03-29 16:07:54 +02:00
d87a942ab3 2.0.16 2023-03-20 18:51:02 +01:00
60e8657467 fix(core): update 2023-03-20 18:51:02 +01:00
5215be946e 2.0.15 2023-02-07 12:32:48 +01:00
b9c67666fa fix(core): update 2023-02-07 12:32:48 +01:00
4b0fb073e6 2.0.14 2022-12-29 13:28:11 +01:00
fc458b6827 fix(core): update 2022-12-29 13:28:11 +01:00
f27b9f8143 2.0.13 2022-12-29 11:18:16 +01:00
38058aba57 fix(core): update 2022-12-29 11:18:15 +01:00
ba38dae64f 2.0.12 2022-12-28 19:51:09 +01:00
69e862a6cf fix(core): update 2022-12-28 19:51:09 +01:00
4562ac355b 2.0.11 2022-12-28 14:02:15 +01:00
b029dc191e fix(core): update 2022-12-28 14:02:14 +01:00
2640275d04 2.0.10 2022-12-28 13:52:17 +01:00
7bbcc91300 fix(core): update 2022-12-28 13:52:16 +01:00
da39d52975 2.0.9 2022-12-28 13:51:41 +01:00
307469312f fix(core): update 2022-12-28 13:51:40 +01:00
0f3ff2b611 2.0.8 2022-12-28 13:49:03 +01:00
bce82d49b6 fix(core): update 2022-12-28 13:49:03 +01:00
0b10913995 2.0.7 2022-08-01 15:00:07 +02:00
7048585702 fix(core): update 2022-08-01 15:00:06 +02:00
92697bad82 2.0.6 2022-03-25 00:30:31 +01:00
e1475a3342 fix(core): update 2022-03-25 00:30:31 +01:00
e3c58e7fc0 2.0.5 2022-03-24 23:29:04 +01:00
32d60fff0d fix(core): update 2022-03-24 23:29:03 +01:00
f33b64d625 2.0.4 2022-03-24 21:56:26 +01:00
6ee70ecafa 2.0.3 2022-03-24 20:26:03 +01:00
6f3700adc0 2.0.2 2022-03-24 20:17:04 +01:00
3648f12358 fix(core): update 2022-03-24 20:17:04 +01:00
c239eaa9d5 2.0.1 2022-03-24 12:52:29 +01:00
75bd7a9175 fix(core): update 2022-03-24 12:52:28 +01:00
be9b47e73b 2.0.0 2022-03-14 22:40:56 +01:00
966d953aff BREAKING CHANGE(switch to esm): update 2022-03-14 22:40:55 +01:00
7f73664970 1.2.22 2022-01-20 18:38:18 +01:00
71452a293f fix(core): update 2022-01-20 18:38:17 +01:00
21 changed files with 4426 additions and 27030 deletions

View File

@ -13,31 +13,24 @@ stages:
- metadata
before_script:
- npm install -g @shipzone/npmci
- pnpm install -g pnpm
- pnpm install -g @shipzone/npmci
- npmci npm prepare
# ====================
# security stage
# ====================
mirror:
stage: security
script:
- npmci git mirror
only:
- tags
tags:
- lossless
- docker
- notpriv
# ====================
# security stage
# ====================
auditProductionDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --production --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=prod --production
- npmci command npm config set registry https://registry.npmjs.org
- npmci command pnpm audit --audit-level=high --prod
tags:
- lossless
- docker
allow_failure: true
@ -45,11 +38,10 @@ auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=dev
- npmci command pnpm audit --audit-level=high --dev
tags:
- lossless
- docker
allow_failure: true
@ -60,7 +52,6 @@ auditDevDependencies:
testStable:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci npm test
@ -71,10 +62,9 @@ testStable:
testBuild:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command npm run build
- npmci npm build
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
@ -100,10 +90,9 @@ codequality:
only:
- tags
script:
- npmci command npm install -g tslint typescript
- npmci command npm install -g typescript
- npmci npm prepare
- npmci npm install
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
tags:
- lossless
- docker
@ -123,11 +112,9 @@ trigger:
pages:
stage: metadata
script:
- npmci node install lts
- npmci command npm install -g @gitzone/tsdoc
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command tsdoc
- npmci command npm run buildDocs
tags:
- lossless
- docker

26869
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,14 @@
{
"name": "@pushrocks/smartsocket",
"version": "1.2.21",
"version": "2.0.17",
"description": "easy and secure websocket communication",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",
"type": "module",
"scripts": {
"test": "(tstest test/)",
"build": "(tsbuild --web && tsbundle --from ./ts/index.ts --to dist_bundle/bundle.js)"
"build": "(tsbuild --web --allowimplicitany && tsbundle --from ./ts/index.ts --to dist_bundle/bundle.js)",
"buildDocs": "tsdoc"
},
"repository": {
"type": "git",
@ -19,29 +21,29 @@
},
"homepage": "https://gitlab.com/pushrocks/smartsocket#README",
"dependencies": {
"@apiglobal/typedrequest-interfaces": "^1.0.15",
"@pushrocks/isohash": "^1.0.2",
"@apiglobal/typedrequest-interfaces": "^2.0.1",
"@pushrocks/isohash": "^2.0.0",
"@pushrocks/isounique": "^1.0.5",
"@pushrocks/lik": "^5.0.0",
"@pushrocks/lik": "^6.0.2",
"@pushrocks/smartdelay": "^2.0.13",
"@pushrocks/smartenv": "^4.0.16",
"@pushrocks/smartexpress": "^3.0.108",
"@pushrocks/smartjson": "^4.0.6",
"@pushrocks/smartlog": "^2.0.44",
"@pushrocks/smartpromise": "^3.1.6",
"@pushrocks/smartrx": "^2.0.19",
"@pushrocks/smarttime": "^3.0.43",
"socket.io": "^4.4.1",
"socket.io-client": "^4.4.1"
"@pushrocks/smartenv": "^5.0.5",
"@pushrocks/smartexpress": "^4.0.34",
"@pushrocks/smartjson": "^5.0.1",
"@pushrocks/smartlog": "^3.0.1",
"@pushrocks/smartpromise": "^3.1.7",
"@pushrocks/smartrx": "^3.0.0",
"@pushrocks/smarttime": "^4.0.1",
"engine.io": "6.3.1",
"socket.io": "4.5.4",
"socket.io-client": "4.5.4"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.1.29",
"@gitzone/tsrun": "^1.2.18",
"@gitzone/tstest": "^1.0.60",
"@pushrocks/tapbundle": "^3.2.15",
"@types/node": "^17.0.10",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0"
"@gitzone/tsbuild": "^2.1.63",
"@gitzone/tsbundle": "^2.0.7",
"@gitzone/tsrun": "^1.2.37",
"@gitzone/tstest": "^1.0.72",
"@pushrocks/tapbundle": "^5.0.4",
"@types/node": "^18.15.11"
},
"private": false,
"files": [

4265
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,6 @@ Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](htt
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@pushrocks/smartsocket)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/smartsocket)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/smartsocket)](https://lossless.cloud)
Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud)
## Usage
@ -116,7 +115,6 @@ We are always happy for code contributions. If you are not the code contributing
For further information read the linked docs at the top of this readme.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
## Legal
> MIT licensed | **©** [Task Venture Capital GmbH](https://task.vc)
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
[![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com)

View File

@ -1,10 +1,10 @@
// 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 smartexpress from '@pushrocks/smartexpress';
import smartsocket = require('../ts/index');
import * as smartsocket from '../ts/index.js';
let testSmartsocket: smartsocket.Smartsocket;
let testSmartsocketClient: smartsocket.SmartsocketClient;
@ -18,7 +18,7 @@ const testConfig = {
// class smartsocket
tap.test('should create a new smartsocket', async () => {
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 () => {
@ -33,7 +33,6 @@ tap.test('Should accept an smartExpressServer as server', async () => {
await myseServer.start();
});
// class SocketFunction
tap.test('should register a new Function', async () => {
testSocketFunction1 = new smartsocket.SocketFunction({
@ -80,7 +79,7 @@ tap.test('should be able to make a functionCall from client to server', async ()
const response: any = await testSmartsocketClient.serverCall('testFunction1', {
value1: randomString,
});
expect(response.value1).to.equal(randomString);
expect(response.value1).toEqual(randomString);
if (counter % 100 === 0) {
console.log(
`processed 100 more messages in ${Date.now() - startTime}ms. ${

View File

@ -1,7 +1,7 @@
// tslint:disable-next-line:no-implicit-dependencies
import { expect, tap } from '@pushrocks/tapbundle';
import smartsocket = require('../ts/index');
import * as smartsocket from '../ts/index.js';
let testSmartsocket: smartsocket.Smartsocket;
let testSmartsocketClient: smartsocket.SmartsocketClient;
@ -79,7 +79,7 @@ tap.test('should be able to tag a connection from client', async (tools) => {
return true;
})
.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) => {
@ -92,7 +92,7 @@ tap.test('should be able to tag a connection from server', async (tools) => {
payload: 'absolutely',
});
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 () => {
@ -100,7 +100,7 @@ tap.test('should be able to make a functionCall from client to server', async ()
value1: 'hello',
});
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 () => {
@ -114,14 +114,14 @@ tap.test('should be able to make a functionCall from server to client', async ()
})
);
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) => {
await testSmartsocketClient.disconnect();
await testSmartsocketClient.connect();
await toolsArg.delayFor(2000);
expect(testSmartsocket.socketConnections.getArray().length).to.equal(1);
expect(testSmartsocket.socketConnections.getArray().length).toEqual(1);
});
// class smartsocket
@ -133,19 +133,20 @@ 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) => {
expect(testSmartsocket.socketConnections.getArray().length).to.equal(1);
expect(testSmartsocket.socketConnections.getArray().length).toEqual(1);
const tagOnServerSide = await testSmartsocket.socketConnections
.findSync((socketConnection) => {
return true;
})
.getTagById('awesome');
expect(tagOnServerSide.payload).to.equal('yes');
expect(tagOnServerSide.payload).toEqual('yes');
});
// terminate
tap.test('should close the server', async () => {
tap.test('should close the server', async (tools) => {
await testSmartsocketClient.stop();
await testSmartsocket.stop();
tools.delayFor(1000).then(() => process.exit(0));
});
tap.start();

View File

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

8
ts/00_commitinfo_data.ts Normal file
View File

@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
*/
export const commitinfo = {
name: '@pushrocks/smartsocket',
version: '2.0.17',
description: 'easy and secure websocket communication'
}

View File

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

View File

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

View File

@ -1,17 +1,17 @@
import * as plugins from './smartsocket.plugins';
import * as pluginsTyped from './smartsocket.pluginstyped';
import * as plugins from './smartsocket.plugins.js';
import * as pluginsTyped from './smartsocket.pluginstyped.js';
// classes
import { SocketConnection } from './smartsocket.classes.socketconnection';
import { SocketConnection } from './smartsocket.classes.socketconnection.js';
import {
ISocketFunctionCallDataRequest,
SocketFunction,
ISocketFunctionCallDataResponse,
} from './smartsocket.classes.socketfunction';
import { SocketRequest } from './smartsocket.classes.socketrequest';
import { SocketServer } from './smartsocket.classes.socketserver';
} from './smartsocket.classes.socketfunction.js';
import { SocketRequest } from './smartsocket.classes.socketrequest.js';
import { SocketServer } from './smartsocket.classes.socketserver.js';
import { logger } from './smartsocket.logging';
import { logger } from './smartsocket.logging.js';
export interface ISmartsocketConstructorOptions {
alias: string;
@ -30,6 +30,8 @@ export class Smartsocket {
public socketFunctions = new plugins.lik.ObjectMap<SocketFunction<any>>();
public socketRequests = new plugins.lik.ObjectMap<SocketRequest<any>>();
public eventSubject = plugins.smartrx.rxjs.Subject;
private socketServer = new SocketServer(this);
constructor(optionsArg: ISmartsocketConstructorOptions) {
@ -37,7 +39,6 @@ export class Smartsocket {
this.alias = plugins.isounique.uni(this.options.alias);
}
// tslint:disable-next-line:member-ordering
public async setExternalServer(serverType: 'smartexpress', serverArg: any) {
await this.socketServer.setExternalServer(serverType, serverArg);
}
@ -46,8 +47,14 @@ export class Smartsocket {
* starts smartsocket
*/
public async start() {
const socketIoModule = this.smartenv.getSafeNodeModule('socket.io');
this.io = socketIoModule(await this.socketServer.getServerForSocketIo());
const socketIoModule = await this.smartenv.getSafeNodeModule('socket.io');
this.io = new socketIoModule.Server(await this.socketServer.getServerForSocketIo(), {
cors: {
allowedHeaders: '*',
methods: '*',
origin: '*',
}
});
await this.socketServer.start();
this.io.on('connection', (socketArg) => {
this._handleSocketConnection(socketArg);
@ -61,7 +68,10 @@ export class Smartsocket {
await plugins.smartdelay.delayFor(1000);
this.socketConnections.forEach((socketObjectArg: SocketConnection) => {
if (socketObjectArg) {
logger.log('info', `disconnecting socket with >>alias ${socketObjectArg.alias} due to server stop...`);
logger.log(
'info',
`disconnecting socket with >>alias ${socketObjectArg.alias} due to server stop...`
);
socketObjectArg.disconnect();
}
});

View File

@ -1,14 +1,14 @@
import * as plugins from './smartsocket.plugins';
import * as pluginsTyped from './smartsocket.pluginstyped';
import * as interfaces from './interfaces';
import * as plugins from './smartsocket.plugins.js';
import * as pluginsTyped from './smartsocket.pluginstyped.js';
import * as interfaces from './interfaces/index.js';
import { SocketConnection } from './smartsocket.classes.socketconnection';
import { SocketConnection } from './smartsocket.classes.socketconnection.js';
import {
ISocketFunctionCallDataRequest,
SocketFunction,
} from './smartsocket.classes.socketfunction';
import { ISocketRequestDataObject, SocketRequest } from './smartsocket.classes.socketrequest';
import { logger } from './smartsocket.logging';
} from './smartsocket.classes.socketfunction.js';
import { ISocketRequestDataObject, SocketRequest } from './smartsocket.classes.socketrequest.js';
import { logger } from './smartsocket.logging.js';
/**
* interface for class SmartsocketClient
@ -95,9 +95,12 @@ export class SmartsocketClient {
nodeModuleName: 'socket.io-client',
webUrlArg: 'https://cdn.jsdelivr.net/npm/socket.io-client@4/dist/socket.io.js',
getFunction: () => {
return (globalThis as any).io;
const socketIoBrowserModule = (globalThis as any).io;
// console.log('loaded socket.io for browser');
return socketIoBrowserModule;
},
});
// console.log(socketIoClient);
logger.log('info', 'trying to connect...');
const socketUrl = `${this.serverUrl}:${this.serverPort}`;
this.socketConnection = new SocketConnection({
@ -107,7 +110,8 @@ export class SmartsocketClient {
smartsocketHost: this,
socket: await socketIoClient
.connect(socketUrl, {
multiplex: false,
multiplex: true,
rememberUpgrade: true,
autoConnect: false,
reconnectionAttempts: 0,
rejectUnauthorized: socketUrl.startsWith('https://localhost') ? false : true,
@ -212,8 +216,10 @@ export class SmartsocketClient {
if (this.autoReconnect && useAutoReconnectSetting && this.eventStatus !== 'connecting') {
this.updateStatus('connecting');
await this.tryDebouncedReconnect();
console.log('debounced reconnect!');
await plugins.smartdelay.delayForRandom(10000, 20000);
this.disconnectRunning = false;
await this.connect();
} else {
this.disconnectRunning = false;
}
@ -227,15 +233,6 @@ export class SmartsocketClient {
await this.disconnect();
}
/**
* try a reconnection
*/
public async tryDebouncedReconnect() {
console.log('debounced reconnect!');
await plugins.smartdelay.delayForRandom(10000, 20000);
await this.connect();
}
/**
* dispatches a server call
* @param functionNameArg

View File

@ -1,15 +1,15 @@
import * as plugins from './smartsocket.plugins';
import * as pluginsTyped from './smartsocket.pluginstyped';
import * as interfaces from './interfaces';
import * as plugins from './smartsocket.plugins.js';
import * as pluginsTyped from './smartsocket.pluginstyped.js';
import * as interfaces from './interfaces/index.js';
// import classes
import { Smartsocket } from './smartsocket.classes.smartsocket';
import { SocketFunction } from './smartsocket.classes.socketfunction';
import { SocketRequest, ISocketRequestDataObject } from './smartsocket.classes.socketrequest';
import { Smartsocket } from './smartsocket.classes.smartsocket.js';
import { SocketFunction } from './smartsocket.classes.socketfunction.js';
import { SocketRequest, ISocketRequestDataObject } from './smartsocket.classes.socketrequest.js';
// socket.io
import { SmartsocketClient } from './smartsocket.classes.smartsocketclient';
import { logger } from './smartsocket.logging';
import { SmartsocketClient } from './smartsocket.classes.smartsocketclient.js';
import { logger } from './smartsocket.logging.js';
// export interfaces
@ -161,11 +161,10 @@ export class SocketConnection {
this.socket.on('function', (dataArg: ISocketRequestDataObject<any>) => {
// check if requested function is available to the socket's scope
// logger.log('info', 'function request received');
const referencedFunction: SocketFunction<any> = this.smartsocketRef.socketFunctions.findSync(
(socketFunctionArg) => {
const referencedFunction: SocketFunction<any> =
this.smartsocketRef.socketFunctions.findSync((socketFunctionArg) => {
return socketFunctionArg.name === dataArg.funcCallData.funcName;
}
);
});
if (referencedFunction) {
// logger.log('ok', 'function in access scope');
const localSocketRequest = new SocketRequest(this.smartsocketRef, {
@ -197,7 +196,10 @@ export class SocketConnection {
this.remoteTagStoreObservable.next(tagStoreArg);
});
logger.log('info', `now listening to function requests for ${this.alias} on side ${this.side}`);
logger.log(
'info',
`now listening to function requests for ${this.alias} on side ${this.side}`
);
done.resolve(this);
} else {
const errMessage = 'socket needs to be authenticated first';

View File

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

View File

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

View File

@ -1,9 +1,9 @@
import * as plugins from './smartsocket.plugins';
import * as pluginsTyped from './smartsocket.pluginstyped';
import * as plugins from './smartsocket.plugins.js';
import * as pluginsTyped from './smartsocket.pluginstyped.js';
// used in case no other server is supplied
import { Smartsocket } from './smartsocket.classes.smartsocket';
import { logger } from './smartsocket.logging';
import { Smartsocket } from './smartsocket.classes.smartsocket.js';
import { logger } from './smartsocket.logging.js';
/**
* class socketServer
@ -13,7 +13,7 @@ export class SocketServer {
private smartsocket: Smartsocket;
private httpServerDeferred: plugins.smartpromise.Deferred<any>;
private httpServer: pluginsTyped.http.Server | pluginsTyped.https.Server;
/**
* wether httpServer is standalone
*/
@ -47,7 +47,7 @@ export class SocketServer {
if (this.httpServer) {
return this.httpServer;
} else {
const httpModule = this.smartsocket.smartenv.getSafeNodeModule('http');
const httpModule = await this.smartsocket.smartenv.getSafeNodeModule('http');
this.httpServer = new httpModule.Server();
this.standaloneServer = true;
return this.httpServer;

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();

View File

@ -1,6 +1,6 @@
// node native
import type http from 'http';
import type https from 'https';
import type * as http from 'http';
import type * as https from 'https';
export { http, https };
@ -10,10 +10,13 @@ import type * as smartexpress from '@pushrocks/smartexpress';
export { smartexpress };
// third party scope
import type socketIo from 'socket.io';
import type { Socket as ServerSocket, Server as ServerServer } from 'socket.io';
import type { Socket as ClientSocket, connect as ClientIo } from 'socket.io-client';
export { socketIo };
export namespace socketIo {
export type Socket = ServerSocket;
export type Server = ServerServer;
}
export namespace socketIoClient {
export type Socket = ClientSocket;
export type connect = typeof ClientIo;

10
tsconfig.json Normal file
View File

@ -0,0 +1,10 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"useDefineForClassFields": false,
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "nodenext",
"esModuleInterop": true
}
}

View File

@ -1,17 +0,0 @@
{
"extends": ["tslint:latest", "tslint-config-prettier"],
"rules": {
"semicolon": [true, "always"],
"no-console": false,
"ordered-imports": false,
"object-literal-sort-keys": false,
"member-ordering": {
"options":{
"order": [
"static-method"
]
}
}
},
"defaultSeverity": "warning"
}