This commit is contained in:
王一之 2024-11-08 16:24:02 +08:00
parent f383d89b70
commit de14b1e1f0
8 changed files with 952 additions and 13 deletions

View File

@ -6,6 +6,7 @@
"license": "GPLv3",
"private": true,
"scripts": {
"preinstall": "npx -y only-allow pnpm",
"build": "cross-env NODE_ENV=production rspack build",
"dev": "cross-env NODE_ENV=development rspack",
"format": "prettier --write .",

View File

@ -22,6 +22,9 @@
"lint": "eslint .",
"test": "vitest run"
},
"dependencies": {
"eventemitter3": "~5.0.1"
},
"devDependencies": {
"@eslint/js": "^9.12.0",
"@rslib/core": "^0.0.16",

View File

View File

@ -1 +1,3 @@
export const squared = (n: number): number => n * n;

View File

@ -0,0 +1,37 @@
import EventEmitter from 'eventemitter3';
export class Server {
private EE: EventEmitter;
constructor() {
this.EE = new EventEmitter();
}
onConnect(callback: (con: Connect) => void) {
this.EE.on('connect', callback);
}
}
export interface Connect {
postMessage: (message: unknown) => void;
onMessage: (callback: (message: unknown) => void) => void;
}
export class ChromeServer {
private EE: EventEmitter;
constructor() {
chrome.runtime.onConnect.addListener((port) => {
this.EE.emit('connect', {
postMessage: (message: unknown) => port.postMessage(message),
onMessage: (callback: (message: unknown) => void) =>
port.onMessage.addListener(callback),
});
});
}
onConnect(callback: (con: Connect) => void) {
this.EE.on('connect', callback);
}
}

View File

@ -1,7 +1,5 @@
import { expect, test } from 'vitest';
import { squared } from '../src/index';
test('squared', () => {
expect(squared(2)).toBe(4);
expect(squared(12)).toBe(144);
expect(4).toBe(4);
});

912
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

2
pnpm-workspace.yaml Normal file
View File

@ -0,0 +1,2 @@
packages:
- "packages/*"