Skip to content

Commit

Permalink
Merge pull request #1 from NothingSpecialDev/cicd
Browse files Browse the repository at this point in the history
Cicd
  • Loading branch information
garredow committed Apr 20, 2024
2 parents aedc909 + d07e183 commit 11c858f
Show file tree
Hide file tree
Showing 13 changed files with 9,754 additions and 1,448 deletions.
10,700 changes: 9,342 additions & 1,358 deletions package-lock.json

Large diffs are not rendered by default.

14 changes: 13 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"lint:fix": "eslint . --fix",
"test": "vitest",
"test:watch": "vitest --watch",
"test:ci": "vitest --coverage"
"test:ci": "vitest --coverage",
"commit": "git-cz"
},
"files": [
"build",
Expand Down Expand Up @@ -62,14 +63,20 @@
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-typescript": "^11.1.6",
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@types/node": "^20.12.7",
"@typescript-eslint/eslint-plugin": "^7.6.0",
"@vitest/coverage-v8": "^1.5.0",
"@vitest/ui": "^1.5.0",
"commitizen": "^4.3.0",
"cz-conventional-changelog": "^3.3.0",
"eslint": "^8.57.0",
"prettier": "^3.2.5",
"rimraf": "^5.0.5",
"rollup": "^4.14.1",
"semantic-release": "^23.0.8",
"tslib": "^2.6.2",
"typescript": "^5.3.3",
"vite": "^5.2.8",
Expand All @@ -78,5 +85,10 @@
"dependencies": {
"@babel/runtime": "^7.24.4",
"zod": "^3.22.4"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
}
23 changes: 23 additions & 0 deletions release.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Semantic Release config

/**
* @type {import('semantic-release').GlobalConfig}
*/
export default {
dryRun: true, // TODO: Delete this after testing setup
branches: ['cicd'],
plugins: [
'@semantic-release/commit-analyzer',
'@semantic-release/release-notes-generator',
'@semantic-release/changelog',
'@semantic-release/npm',
[
'@semantic-release/github',
{
successComment: false,
failComment: false
}
],
'@semantic-release/git'
]
};
1 change: 1 addition & 0 deletions src/enums/MessageType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,6 @@ export enum MessageType {
// Misc

NewLog = 'new-log',
NetworkRequestUpdate = 'network-request-update',
Error = 'error'
}
10 changes: 10 additions & 0 deletions src/internal/types/ExtendedXMLHttpRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { NetworkRequest } from '../../types';

export type ExtendedXMLHttpRequest = XMLHttpRequest & {
kaiware: {
requestId: string;
url: string;
method: NetworkRequest['method'];
headers?: NetworkRequest['headers'];
};
};
7 changes: 7 additions & 0 deletions src/internal/utils/generateUUID.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export function generateUUID() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
const r = (Math.random() * 16) | 0,
v = c === 'x' ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
}
25 changes: 25 additions & 0 deletions src/internal/utils/saveDataToNetworkRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { NetworkRequest } from '../../types';
import { ExtendedXMLHttpRequest } from '../types/ExtendedXMLHttpRequest';
import { generateUUID } from './generateUUID';

export function saveDataToNetworkRequest(
xhr: ExtendedXMLHttpRequest,
data: Partial<NetworkRequest>
) {
if (!xhr.kaiware) {
xhr.kaiware = {
requestId: generateUUID(),
url: '',
method: 'get',
headers: []
};
}

xhr.kaiware = {
...xhr.kaiware,
...data,
headers: xhr.kaiware.headers
? [...xhr.kaiware.headers, ...(data.headers || [])]
: data.headers
};
}
46 changes: 26 additions & 20 deletions src/lib/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,37 @@ import { MessageType } from '../enums';
import { Config, MessageWithId, rawMessageSchema } from '../types';

export class Connection {
private socket: WebSocket | null = null;
private config: Config;
private socket: WebSocket | null = null;
private cleanConsole: Console;

constructor(config: Config) {
constructor(config: Config, cleanConsole: Console) {
this.config = config;
this.cleanConsole = cleanConsole;
}

connect() {
if (this.socket) {
console.log('Connection already established');
this.cleanConsole.log('Connection already established');
return;
}

return new Promise<void>((resolve) => {
return new Promise<void>((resolve, reject) => {
this.socket = new WebSocket(`ws://${this.config.address}:${this.config.port}`);
let isConnectionEstablished = false;

this.socket.onopen = () => {
console.log('WebSocket connection established');
this.cleanConsole.log('WebSocket connection established');
isConnectionEstablished = true;
resolve();
};

this.socket.onmessage = (event) => {
console.log('Message received: ', JSON.parse(event.data));
this.cleanConsole.log('Message received: ', JSON.parse(event.data));

const validateMessage = rawMessageSchema.safeParse(event.data);
if (!validateMessage.success) {
console.log(
this.cleanConsole.log(
JSON.stringify(formatValidationError(validateMessage.error.issues))
);
return;
Expand Down Expand Up @@ -58,36 +62,44 @@ export class Connection {
this.handleGetStorage(message);
break;
default:
console.log('Unknown message type received');
this.cleanConsole.log(`Unknown message type received: ${message.type}`);
break;
}
};

this.socket.onclose = () => {
console.log('WebSocket connection closed');
this.cleanConsole.log('WebSocket connection closed');
this.socket = null;

if (!isConnectionEstablished) {
reject();
}
};

this.socket.onerror = (error) => {
console.log('WebSocket error: ', error);
this.cleanConsole.log('WebSocket error: ', error);

if (!isConnectionEstablished) {
reject();
}
};
});
}

close() {
if (!this.socket) {
console.log('No active connection');
this.cleanConsole.log('No active connection');
return;
}

this.socket.close();
}

sendMessage(message: MessageWithId) {
console.log('Sending message: ', message);
this.cleanConsole.log('Sending message: ', message);

if (!this.socket) {
console.log('No active connection');
this.cleanConsole.log('No active connection');
return;
}

Expand Down Expand Up @@ -139,10 +151,7 @@ export class Connection {
private handleGetElementStyles(
message: MessageWithId & { type: MessageType.GetElementStyles }
) {
console.log('Getting styles for element at index: ', message.data.index);

const element = document.querySelectorAll('*')[message.data.index];
console.log('Element: ', element);

const rawStyles = window.getComputedStyle(element);
const styles: Record<string, string> = Object.entries(rawStyles).reduce(
Expand Down Expand Up @@ -179,10 +188,7 @@ export class Connection {
}

private handleGetElementData(message: MessageWithId & { type: MessageType.GetElementData }) {
console.log('Getting data for element at index: ', message.data.index);

const element = document.querySelectorAll('*')[message.data.index];
console.log('Element: ', element);
// const element = document.querySelectorAll('*')[message.data.index];

// TODO: Get data for element

Expand Down
1 change: 0 additions & 1 deletion src/lib/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
export * from './connection';
export * from './kaiware';
export * from './logger';
Loading

0 comments on commit 11c858f

Please sign in to comment.