Initial commit
This commit is contained in:
commit
2f9fbe3ff9
|
@ -0,0 +1,102 @@
|
||||||
|
dist/
|
||||||
|
|
||||||
|
node_modules/
|
||||||
|
.node_modules/
|
||||||
|
built/*
|
||||||
|
tests/cases/rwc/*
|
||||||
|
tests/cases/test262/*
|
||||||
|
tests/cases/perf/*
|
||||||
|
!tests/cases/webharness/compilerToString.js
|
||||||
|
test-args.txt
|
||||||
|
~*.docx
|
||||||
|
\#*\#
|
||||||
|
.\#*
|
||||||
|
tests/baselines/local/*
|
||||||
|
tests/baselines/local.old/*
|
||||||
|
tests/services/baselines/local/*
|
||||||
|
tests/baselines/prototyping/local/*
|
||||||
|
tests/baselines/rwc/*
|
||||||
|
tests/baselines/test262/*
|
||||||
|
tests/baselines/reference/projectOutput/*
|
||||||
|
tests/baselines/local/projectOutput/*
|
||||||
|
tests/baselines/reference/testresults.tap
|
||||||
|
tests/services/baselines/prototyping/local/*
|
||||||
|
tests/services/browser/typescriptServices.js
|
||||||
|
src/harness/*.js
|
||||||
|
src/compiler/diagnosticInformationMap.generated.ts
|
||||||
|
src/compiler/diagnosticMessages.generated.json
|
||||||
|
src/parser/diagnosticInformationMap.generated.ts
|
||||||
|
src/parser/diagnosticMessages.generated.json
|
||||||
|
rwc-report.html
|
||||||
|
*.swp
|
||||||
|
build.json
|
||||||
|
*.actual
|
||||||
|
tests/webTestServer.js
|
||||||
|
tests/webTestServer.js.map
|
||||||
|
tests/webhost/*.d.ts
|
||||||
|
tests/webhost/webtsc.js
|
||||||
|
tests/cases/**/*.js
|
||||||
|
!tests/cases/docker/*.js/
|
||||||
|
tests/cases/**/*.js.map
|
||||||
|
*.config
|
||||||
|
scripts/eslint/built/
|
||||||
|
scripts/debug.bat
|
||||||
|
scripts/run.bat
|
||||||
|
scripts/word2md.js
|
||||||
|
scripts/buildProtocol.js
|
||||||
|
scripts/ior.js
|
||||||
|
scripts/authors.js
|
||||||
|
scripts/configurePrerelease.js
|
||||||
|
scripts/configureLanguageServiceBuild.js
|
||||||
|
scripts/open-user-pr.js
|
||||||
|
scripts/open-cherry-pick-pr.js
|
||||||
|
scripts/processDiagnosticMessages.d.ts
|
||||||
|
scripts/processDiagnosticMessages.js
|
||||||
|
scripts/produceLKG.js
|
||||||
|
scripts/importDefinitelyTypedTests/importDefinitelyTypedTests.js
|
||||||
|
scripts/generateLocalizedDiagnosticMessages.js
|
||||||
|
scripts/request-pr-review.js
|
||||||
|
scripts/*.js.map
|
||||||
|
scripts/typings/
|
||||||
|
coverage/
|
||||||
|
internal/
|
||||||
|
**/.DS_Store
|
||||||
|
.settings
|
||||||
|
**/.vs
|
||||||
|
**/.vscode/*
|
||||||
|
!**/.vscode/tasks.json
|
||||||
|
!**/.vscode/settings.template.json
|
||||||
|
!**/.vscode/launch.template.json
|
||||||
|
!**/.vscode/extensions.json
|
||||||
|
!tests/cases/projects/projectOption/**/node_modules
|
||||||
|
!tests/cases/projects/NodeModulesSearch/**/*
|
||||||
|
!tests/baselines/reference/project/nodeModules*/**/*
|
||||||
|
.idea
|
||||||
|
yarn.lock
|
||||||
|
yarn-error.log
|
||||||
|
.parallelperf.*
|
||||||
|
tests/cases/user/*/package-lock.json
|
||||||
|
tests/cases/user/*/node_modules/
|
||||||
|
tests/cases/user/*/**/*.js
|
||||||
|
tests/cases/user/*/**/*.js.map
|
||||||
|
tests/cases/user/*/**/*.d.ts
|
||||||
|
!tests/cases/user/zone.js/
|
||||||
|
!tests/cases/user/bignumber.js/
|
||||||
|
!tests/cases/user/discord.js/
|
||||||
|
tests/baselines/reference/dt
|
||||||
|
.failed-tests
|
||||||
|
TEST-results.xml
|
||||||
|
package-lock.json
|
||||||
|
tests/cases/user/npm/npm
|
||||||
|
tests/cases/user/TypeScript-React-Starter/TypeScript-React-Starter
|
||||||
|
tests/cases/user/TypeScript-Node-Starter/TypeScript-Node-Starter
|
||||||
|
tests/cases/user/TypeScript-React-Native-Starter/TypeScript-React-Native-Starter
|
||||||
|
tests/cases/user/TypeScript-Vue-Starter/TypeScript-Vue-Starter
|
||||||
|
tests/cases/user/TypeScript-WeChat-Starter/TypeScript-WeChat-Starter
|
||||||
|
tests/cases/user/create-react-app/create-react-app
|
||||||
|
tests/cases/user/fp-ts/fp-ts
|
||||||
|
tests/cases/user/webpack/webpack
|
||||||
|
tests/cases/user/puppeteer/puppeteer
|
||||||
|
tests/cases/user/axios-src/axios-src
|
||||||
|
tests/cases/user/prettier/prettier
|
||||||
|
.eslintcache
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"type": "typescript",
|
||||||
|
"tsconfig": "tsconfig.json",
|
||||||
|
"problemMatcher": [
|
||||||
|
"$tsc"
|
||||||
|
],
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"label": "tsc: Erstellen – tsconfig.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "npm",
|
||||||
|
"script": "build",
|
||||||
|
"group": "build",
|
||||||
|
"problemMatcher": [],
|
||||||
|
"label": "npm: build",
|
||||||
|
"detail": "tsc -p ./"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"scripts": {
|
||||||
|
"build": "npm install && tsc -p ./"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@tsconfig/node16": "^1.0.2",
|
||||||
|
"@types/node": "^16.7.1",
|
||||||
|
"@types/ws": "^7.4.7",
|
||||||
|
"typescript": "^4.3.5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"ws": "^8.2.0"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,71 @@
|
||||||
|
import WebSocket from 'ws';
|
||||||
|
|
||||||
|
const wss = new WebSocket.Server({ port: 8081 });
|
||||||
|
const receivers: WebSocket[] = [];
|
||||||
|
let sender: WebSocket | null = null;
|
||||||
|
|
||||||
|
const paths = [] as string[];
|
||||||
|
|
||||||
|
wss.on('connection', ws => {
|
||||||
|
console.log('CONNECTION incoming');
|
||||||
|
ws.once('message', message => {
|
||||||
|
const str = message.toString();
|
||||||
|
switch (str) {
|
||||||
|
case 'SENDER':
|
||||||
|
setSender(ws);
|
||||||
|
break;
|
||||||
|
case 'RECEIVER':
|
||||||
|
addReceiver(ws)
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
paths.push(str);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('READY');
|
||||||
|
|
||||||
|
function addReceiver(ws: WebSocket) {
|
||||||
|
console.log('RECEIVER registered');
|
||||||
|
for (const path of paths) {
|
||||||
|
ws.send(path);
|
||||||
|
}
|
||||||
|
receivers.push(ws);
|
||||||
|
|
||||||
|
ws.onclose = () => {
|
||||||
|
// Remove receiver when connection closes
|
||||||
|
for (const [i, recv] of receivers.entries()) {
|
||||||
|
if (ws === recv) {
|
||||||
|
receivers.splice(i, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function setSender(ws: WebSocket) {
|
||||||
|
console.log('SENDER is being registered')
|
||||||
|
if (sender) {
|
||||||
|
console.log('Removing current sender...')
|
||||||
|
sender.close();
|
||||||
|
clearPaths();
|
||||||
|
}
|
||||||
|
|
||||||
|
sender = ws;
|
||||||
|
ws.on('message', msg => processMessage(msg));
|
||||||
|
}
|
||||||
|
|
||||||
|
function processMessage(message: WebSocket.Data) {
|
||||||
|
const path = message.toString();
|
||||||
|
console.log('PATH RECEIVED: ' + path);
|
||||||
|
paths.push(path);
|
||||||
|
|
||||||
|
console.log('SENDING to ' + receivers.length, 'clients');
|
||||||
|
receivers.forEach(r => r.send(path));
|
||||||
|
}
|
||||||
|
|
||||||
|
function clearPaths() {
|
||||||
|
paths.splice(0, paths.length);
|
||||||
|
receivers.forEach(r => r.send("CLEAR"));
|
||||||
|
console.log('Paths have been cleared');
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"extends": "@tsconfig/node16/tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"sourceMap": true,
|
||||||
|
"outDir": "dist",
|
||||||
|
"moduleResolution": "node"
|
||||||
|
},
|
||||||
|
"include": ["src/**/*"],
|
||||||
|
"exclude": ["node_modules", "**/*.spec.ts"]
|
||||||
|
}
|
Reference in New Issue