diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 88889cf..30b07d8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,29 +12,25 @@ stages: - release - metadata +before_script: + - pnpm install -g pnpm + - pnpm install -g @shipzone/npmci + - npmci npm prepare + +# ==================== +# security stage +# ==================== # ==================== # security stage # ==================== -mirror: - stage: security - script: - - npmci git mirror - only: - - tags - tags: - - lossless - - docker - - notpriv - 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 @@ -42,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 @@ -57,7 +52,6 @@ auditDevDependencies: testStable: stage: test script: - - npmci npm prepare - npmci node install stable - npmci npm install - npmci npm test @@ -68,7 +62,6 @@ testStable: testBuild: stage: test script: - - npmci npm prepare - npmci node install stable - npmci npm install - npmci command npm run build @@ -97,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 @@ -120,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 diff --git a/.vscode/launch.json b/.vscode/launch.json index 112db52..26e9f92 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,28 +2,10 @@ "version": "0.2.0", "configurations": [ { - "name": "current file", - "type": "node", + "command": "npm test", + "name": "Run npm test", "request": "launch", - "args": [ - "${relativeFile}" - ], - "runtimeArgs": ["-r", "@gitzone/tsrun"], - "cwd": "${workspaceRoot}", - "protocol": "inspector", - "internalConsoleOptions": "openOnSessionStart" - }, - { - "name": "test.ts", - "type": "node", - "request": "launch", - "args": [ - "test/test.ts" - ], - "runtimeArgs": ["-r", "@gitzone/tsrun"], - "cwd": "${workspaceRoot}", - "protocol": "inspector", - "internalConsoleOptions": "openOnSessionStart" + "type": "node-terminal" } ] } diff --git a/package.json b/package.json index 7be9a00..be9e34d 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "license": "MIT", "scripts": { "test": "(tstest test/ --web)", - "build": "(tsbuild --web --allowimplicitany)" + "build": "(tsbuild --web --allowimplicitany)", + "buildDocs": "tsdoc" }, "devDependencies": { "@gitzone/tsbuild": "^2.1.63", @@ -44,4 +45,4 @@ "npmextra.json", "readme.md" ] -} +} \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index 2bd6a84..1429608 100644 --- a/test/test.ts +++ b/test/test.ts @@ -4,17 +4,18 @@ import * as typedrequestInterfaces from '@apiglobal/typedrequest-interfaces'; import * as typedsocket from '../ts/index.js'; -interface IRequest_Client_Server extends typedrequestInterfaces.implementsTR< - typedrequestInterfaces.ITypedRequest, - IRequest_Client_Server -> { +interface IRequest_Client_Server + extends typedrequestInterfaces.implementsTR< + typedrequestInterfaces.ITypedRequest, + IRequest_Client_Server + > { method: 'sayhi'; request: { greeting: string; }; response: { - answer: string - } + answer: string; + }; } let testTypedSocketServer: typedsocket.TypedSocket; @@ -23,45 +24,52 @@ let testTypedSocketClient: typedsocket.TypedSocket; const testTypedRouter = new typedrequest.TypedRouter(); tap.test('should add some handlers', async () => { - testTypedRouter.addTypedHandler(new typedrequest.TypedHandler('sayhi', async requestData => { - return { - answer: `ok, got it : ${requestData.greeting}` - } - })); -}) + testTypedRouter.addTypedHandler( + new typedrequest.TypedHandler('sayhi', async (requestData) => { + return { + answer: `ok, got it : ${requestData.greeting}`, + }; + }) + ); +}); tap.test('should create Server and Client', async (tools) => { testTypedSocketServer = await typedsocket.TypedSocket.createServer(testTypedRouter); - testTypedSocketClient = await typedsocket.TypedSocket.createClient(testTypedRouter, 'http://localhost:3000'); + testTypedSocketClient = await typedsocket.TypedSocket.createClient( + testTypedRouter, + 'http://localhost:3000' + ); console.log('test: waiting 5 seconds'); await tools.delayFor(5000); await testTypedSocketServer.stop(); // lets create another server testTypedSocketServer = await typedsocket.TypedSocket.createServer(testTypedRouter); - + // lets see if auto reconnect works console.log('test: waiting 21 seconds for reconnect'); await tools.delayFor(21000); }); tap.test('should process messages from both sides', async () => { - const myServerSideTypedRequest = testTypedSocketServer.createTypedRequest('sayhi'); - const myClientSideTypedRequest = testTypedSocketClient.createTypedRequest('sayhi'); + const myServerSideTypedRequest = + testTypedSocketServer.createTypedRequest('sayhi'); + const myClientSideTypedRequest = + testTypedSocketClient.createTypedRequest('sayhi'); const response = await myClientSideTypedRequest.fire({ - greeting: 'that is a greeting from the client' + greeting: 'that is a greeting from the client', }); console.log(response); const response2 = await myServerSideTypedRequest.fire({ - greeting: 'that is a greeting from the server' + greeting: 'that is a greeting from the server', }); console.log(response2); -}) +}); tap.test('should disconnect', async (tools) => { await testTypedSocketClient.stop(); await testTypedSocketServer.stop(); tools.delayFor(1000).then(() => process.exit(0)); -}) +}); tap.start(); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 00a1a0b..28812e3 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@apiglobal/typedsocket', - version: '2.0.7', + version: '2.0.8', description: 'a typedrequest extension supporting websockets' } diff --git a/ts/typedsocket.plugins.ts b/ts/typedsocket.plugins.ts index 2cd18d7..a09d75e 100644 --- a/ts/typedsocket.plugins.ts +++ b/ts/typedsocket.plugins.ts @@ -2,10 +2,7 @@ import * as typedrequest from '@apiglobal/typedrequest'; import * as typedrequestInterfaces from '@apiglobal/typedrequest-interfaces'; -export { - typedrequest, - typedrequestInterfaces, -} +export { typedrequest, typedrequestInterfaces }; // @pushrocks scope import * as isohash from '@pushrocks/isohash'; @@ -13,9 +10,4 @@ import * as smartjson from '@pushrocks/smartjson'; import * as smartsocket from '@pushrocks/smartsocket'; import * as smartstring from '@pushrocks/smartstring'; -export { - isohash, - smartjson, - smartsocket, - smartstring -} +export { isohash, smartjson, smartsocket, smartstring };