♻️(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:
14
src/frontend/servers/y-provider/.eslintrc.cjs
Normal file
14
src/frontend/servers/y-provider/.eslintrc.cjs
Normal 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'],
|
||||
};
|
||||
5
src/frontend/servers/y-provider/nodemon.json
Normal file
5
src/frontend/servers/y-provider/nodemon.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"watch": ["src"],
|
||||
"ext": "ts",
|
||||
"exec": "yarn build"
|
||||
}
|
||||
28
src/frontend/servers/y-provider/package.json
Normal file
28
src/frontend/servers/y-provider/package.json
Normal 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": "*"
|
||||
}
|
||||
}
|
||||
18
src/frontend/servers/y-provider/src/server.ts
Normal file
18
src/frontend/servers/y-provider/src/server.ts
Normal 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);
|
||||
19
src/frontend/servers/y-provider/tsconfig.json
Normal file
19
src/frontend/servers/y-provider/tsconfig.json
Normal 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"]
|
||||
}
|
||||
Reference in New Issue
Block a user