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/
src/db/config.ts
.env
.env
tsc-out/

View File

@ -2,18 +2,21 @@
"name": "@roomruler/back",
"version": "0.0.0",
"scripts": {
"build": "rollup --config rollup.config.js",
"start": "node dist/index.js"
"build": "tsc && rollup --config rollup.config.js",
"prestart": "pnpm run build",
"start": "node dist/index.js",
"dev": "rollup --config rollup.config.dev.js --watch"
},
"devDependencies": {
"@rollup/plugin-node-resolve": "^13.0.4",
"@rollup/plugin-typescript": "^8.2.5",
"@rollup/plugin-run": "^2.1.0",
"@types/ws": "^7.4.7",
"deepmerge": "^4.2.2",
"rollup": "^2.56.3",
"tslib": "^2.3.1",
"typescript": "^4.4.2"
},
"dependencies": {
"@roomruler/logger": "workspace:^0.0.0",
"@roomruler/messages": "workspace:^0.0.0",
"pg": "^8.7.1",
"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");
const { nodeResolve } = require("@rollup/plugin-node-resolve");
import { nodeResolve } from "@rollup/plugin-node-resolve";
export default {
input: "src/index.ts",
input: "tsc-out/index.js",
output: {
dir: "dist",
format: "cjs",
},
plugins: [typescript(), nodeResolve({ resolveOnly: [/^@roomruler\/.*$/] })],
plugins: [nodeResolve({ resolveOnly: [/^@roomruler\/.*$/] })],
};

View File

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

View File

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

View File

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

View File

@ -3,8 +3,11 @@
"version": "1.0.0",
"description": "Web application for distribution of free classrooms",
"scripts": {
"start": "pnpm start -r",
"build": "pnpm run build -r",
"dev": "pnpm run dev -r",
"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",
"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",
"type": "module",
"scripts": {
"build": "tsc --build"
"build": "tsc --build",
"postinstall": "pnpm run build"
},
"devDependencies": {
"typescript": "^4.4.2"

View File

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