Added custom logger package, switched to tsc in back building, added pnpm lifecycle scripts

This commit is contained in:
Dmitriy Shishkov 2021-09-05 13:43:31 +03:00
parent 2ef2f28d4c
commit dff81b8680
No known key found for this signature in database
GPG Key ID: 14358F96FCDD8060
13 changed files with 69 additions and 21 deletions

View File

@ -1,3 +1,4 @@
certs/ certs/
src/db/config.ts src/db/config.ts
.env .env
tsc-out/

View File

@ -2,18 +2,21 @@
"name": "@roomruler/back", "name": "@roomruler/back",
"version": "0.0.0", "version": "0.0.0",
"scripts": { "scripts": {
"build": "rollup --config rollup.config.js", "build": "tsc && rollup --config rollup.config.js",
"start": "node dist/index.js" "prestart": "pnpm run build",
"start": "node dist/index.js",
"dev": "rollup --config rollup.config.dev.js --watch"
}, },
"devDependencies": { "devDependencies": {
"@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-node-resolve": "^13.0.4",
"@rollup/plugin-typescript": "^8.2.5", "@rollup/plugin-run": "^2.1.0",
"@types/ws": "^7.4.7", "@types/ws": "^7.4.7",
"deepmerge": "^4.2.2",
"rollup": "^2.56.3", "rollup": "^2.56.3",
"tslib": "^2.3.1",
"typescript": "^4.4.2" "typescript": "^4.4.2"
}, },
"dependencies": { "dependencies": {
"@roomruler/logger": "workspace:^0.0.0",
"@roomruler/messages": "workspace:^0.0.0", "@roomruler/messages": "workspace:^0.0.0",
"pg": "^8.7.1", "pg": "^8.7.1",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",

View File

@ -0,0 +1,11 @@
import deepmerge from "deepmerge";
import run from "@rollup/plugin-run";
import defConfig from "./rollup.config";
export default deepmerge(defConfig, {
plugins: [run()],
watch: {
include: "src/**/*",
},
});

View File

@ -1,11 +1,10 @@
const typescript = require("@rollup/plugin-typescript"); import { nodeResolve } from "@rollup/plugin-node-resolve";
const { nodeResolve } = require("@rollup/plugin-node-resolve");
export default { export default {
input: "src/index.ts", input: "tsc-out/index.js",
output: { output: {
dir: "dist", dir: "dist",
format: "cjs", format: "cjs",
}, },
plugins: [typescript(), nodeResolve({ resolveOnly: [/^@roomruler\/.*$/] })], plugins: [nodeResolve({ resolveOnly: [/^@roomruler\/.*$/] })],
}; };

View File

@ -7,6 +7,7 @@ import {
isUpdateMessage, isUpdateMessage,
ListMessage, ListMessage,
} from "@roomruler/messages"; } from "@roomruler/messages";
import { logger as log } from "@roomruler/logger";
const main = async () => { const main = async () => {
const connection = await connect(); const connection = await connect();
@ -15,11 +16,11 @@ const main = async () => {
{ {
port: Number.parseInt(process.env.PORT || "") || 8081, port: Number.parseInt(process.env.PORT || "") || 8081,
}, },
() => console.log(`Started server on ${process.env.PORT || 8081}`) () => log(`Started server on ${process.env.PORT || 8081}`)
); );
wss.on("connection", async (wsc, req) => { wss.on("connection", async (wsc, req) => {
console.log("New user connected from " + req.socket.remoteAddress); log("New user connected from " + req.socket.remoteAddress);
wsc.send( wsc.send(
JSON.stringify( JSON.stringify(
composeMessage<ListMessage>("list", await getRoomList(connection)) composeMessage<ListMessage>("list", await getRoomList(connection))
@ -27,14 +28,15 @@ const main = async () => {
); );
wsc.on("message", async (data) => { wsc.on("message", async (data) => {
console.log("Got message from " + req.socket.remoteAddress); log("Got message from " + req.socket.remoteAddress);
try { try {
const message: unknown = JSON.parse(data.toString()); const message: unknown = JSON.parse(data.toString());
if (!isMessage(message)) throw new Error("Message corrupted"); if (!isMessage(message)) throw new Error("Message corrupted");
if (isUpdateMessage(message)) { if (isUpdateMessage(message)) {
console.log( log(
`Processing message of \"${message.type}\" type from ${req.socket.remoteAddress}` `\nProcessing message of \"${message.type}\" type from ${req.socket.remoteAddress}\n`,
message.args
); );
const { id, value } = message.args; const { id, value } = message.args;
@ -46,7 +48,7 @@ const main = async () => {
}); });
} }
} catch (err) { } catch (err) {
console.log("Error processing message", err); log("Error processing message", err);
} }
}); });
}); });

View File

@ -2,8 +2,8 @@
"extends": "../../tsconfig.json", "extends": "../../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"target": "es6", "target": "es6",
"module": "commonjs", "module": "esnext",
"outDir": "dist" "outDir": "tsc-out"
}, },
"include": ["src"], "include": ["src"],
"references": [{ "path": "../../packages/messages/tsconfig.json" }] "references": [{ "path": "../../packages/messages/tsconfig.json" }]

View File

@ -3,11 +3,13 @@
"version": "0.0.0", "version": "0.0.0",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"start": "vite", "start": "serve -s dist",
"prestart": "pnpm run build",
"build": "vite build" "build": "vite build"
}, },
"devDependencies": { "devDependencies": {
"@types/react-dom": "^17.0.9", "@types/react-dom": "^17.0.9",
"serve": "^12.0.0",
"typescript": "^4.4.2", "typescript": "^4.4.2",
"vite": "^2.5.3", "vite": "^2.5.3",
"vite-plugin-svgr": "^0.4.0" "vite-plugin-svgr": "^0.4.0"

View File

@ -3,8 +3,11 @@
"version": "1.0.0", "version": "1.0.0",
"description": "Web application for distribution of free classrooms", "description": "Web application for distribution of free classrooms",
"scripts": { "scripts": {
"start": "pnpm start -r",
"build": "pnpm run build -r",
"dev": "pnpm run dev -r",
"preinstall": "npx -y only-allow pnpm", "preinstall": "npx -y only-allow pnpm",
"clean": "rm -rf node_modules apps/back/node_modules apps/front/node_modules packages/messages/node_modules apps/back/dist apps/front/dist packages/messages/dist pnpm-lock.yaml" "clean": "rm -rf node_modules apps/back/node_modules apps/front/node_modules packages/messages/node_modules packages/logger/node_modules apps/back/dist apps/front/dist packages/messages/dist packages/logger/dist pnpm-lock.yaml"
}, },
"author": "dm1sh", "author": "dm1sh",
"license": "MIT", "license": "MIT",

View File

@ -0,0 +1,15 @@
{
"name": "@roomruler/logger",
"main": "dist/src/index.js",
"version": "0.0.0",
"types": "dist/src/index.d.ts",
"type": "module",
"scripts": {
"postinstall": "pnpm run build",
"build": "tsc --build"
},
"devDependencies": {
"typescript": "^4.4.2"
},
"private": "true"
}

View File

@ -0,0 +1,2 @@
export const logger = (...args: unknown[]) =>
console.log(new Date().toISOString() + ":", ...args);

View File

@ -0,0 +1,10 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"module": "es6",
"target": "es6",
"outDir": "dist",
"composite": true
},
"include": ["src"],
}

View File

@ -5,7 +5,8 @@
"types": "dist/src/index.d.ts", "types": "dist/src/index.d.ts",
"type": "module", "type": "module",
"scripts": { "scripts": {
"build": "tsc --build" "build": "tsc --build",
"postinstall": "pnpm run build"
}, },
"devDependencies": { "devDependencies": {
"typescript": "^4.4.2" "typescript": "^4.4.2"

View File

@ -6,7 +6,6 @@
"noLib": false, "noLib": false,
"emitDecoratorMetadata": true, "emitDecoratorMetadata": true,
"experimentalDecorators": true, "experimentalDecorators": true,
"sourceMap": true,
"strict": true, "strict": true,
"moduleResolution": "node", "moduleResolution": "node",
"resolveJsonModule": true, "resolveJsonModule": true,