♻️(y-provider) replace y-webrtc-signaling by server-y-provider

We replace the y-webrtc-signaling app by
the server-y-provider server.
The server-y-provider server uses @hocuspocus to
do collaborative editing on docs.
This commit is contained in:
Anthony LC
2024-09-04 16:55:13 +02:00
committed by Anthony LC
parent 1139c0abea
commit 9c512fae69
8 changed files with 396 additions and 522 deletions

View File

@@ -0,0 +1,14 @@
module.exports = {
root: true,
extends: ['impress/next'],
parserOptions: {
tsconfigRootDir: __dirname,
project: ['./tsconfig.json'],
},
settings: {
next: {
rootDir: __dirname,
},
},
ignorePatterns: ['node_modules', '.eslintrc.js'],
};

View File

@@ -0,0 +1,5 @@
{
"watch": ["src"],
"ext": "ts",
"exec": "yarn build"
}

View File

@@ -0,0 +1,28 @@
{
"name": "server-y-provider",
"version": "1.2.1",
"description": "Y.js provider for docs",
"repository": "https://github.com/numerique-gouv/impress",
"license": "MIT",
"type": "module",
"scripts": {
"build": "tsc -p .",
"dev": "nodemon --config nodemon.json",
"start": "node ./dist/server.js",
"lint": "eslint . --ext .ts"
},
"engines": {
"node": ">=18"
},
"dependencies": {
"@hocuspocus/server": "2.13.5"
},
"devDependencies": {
"@types/node": "*",
"eslint-config-impress": "*",
"nodemon": "3.1.4",
"ts-jest": "29.2.5",
"ts-node": "10.9.2",
"typescript": "*"
}
}

View File

@@ -0,0 +1,18 @@
import { Server } from '@hocuspocus/server';
const port = Number(process.env.PORT || 4444);
const server = Server.configure({
name: 'docs-y-provider',
port: port,
timeout: 30000,
debounce: 2000,
maxDebounce: 30000,
quiet: true,
});
server.listen().catch((error) => {
console.error('Failed to start the server:', error);
});
console.log('Websocket server running on port :', port);

View File

@@ -0,0 +1,19 @@
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": false,
"outDir": "./dist",
},
"include": ["**/*.ts"],
"exclude": ["node_modules"]
}