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", "license": "GPLv3",
"private": true, "private": true,
"scripts": { "scripts": {
"preinstall": "npx -y only-allow pnpm",
"build": "cross-env NODE_ENV=production rspack build", "build": "cross-env NODE_ENV=production rspack build",
"dev": "cross-env NODE_ENV=development rspack", "dev": "cross-env NODE_ENV=development rspack",
"format": "prettier --write .", "format": "prettier --write .",

View File

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

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 { expect, test } from 'vitest';
import { squared } from '../src/index';
test('squared', () => { test('squared', () => {
expect(squared(2)).toBe(4); expect(4).toBe(4);
expect(squared(12)).toBe(144);
}); });

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/*"