Browse Source

chore: remove un-used exports and dependencies

Nicolas Meienberger 1 year ago
parent
commit
d62558f41d

+ 5 - 2
.github/workflows/ci.yml

@@ -128,5 +128,8 @@ jobs:
       - name: Build client
         run: npm run build:next
 
-      - name: Run linter
-        run: npm run lint
+      - name: Run tsc
+        run: pnpm run tsc
+
+      - name: Run packages tsc
+        run: pnpm -r run tsc

+ 3 - 8
package.json

@@ -3,6 +3,7 @@
   "version": "1.6.0",
   "description": "A homeserver for everyone",
   "scripts": {
+    "knip": "knip",
     "prepare": "mkdir -p state && echo \"{}\" > state/system-info.json && echo \"random-seed\" > state/seed",
     "copy:migrations": "mkdir -p dist/migrations && cp -r ./src/server/migrations dist",
     "test": "dotenv -e .env.test -- jest --colors",
@@ -66,7 +67,6 @@
     "lodash.merge": "^4.6.2",
     "next": "13.4.7",
     "next-intl": "^2.15.1",
-    "node-cron": "^3.0.1",
     "pg": "^8.11.1",
     "qrcode.react": "^3.1.0",
     "react": "18.2.0",
@@ -87,7 +87,6 @@
     "tslib": "^2.5.3",
     "uuid": "^9.0.0",
     "validator": "^13.7.0",
-    "web-push": "^3.6.3",
     "winston": "^3.9.0",
     "zod": "^3.21.4",
     "zustand": "^4.3.8"
@@ -109,7 +108,6 @@
     "@types/jest": "^29.5.2",
     "@types/lodash.merge": "^4.6.7",
     "@types/node": "20.3.2",
-    "@types/node-cron": "^3.0.8",
     "@types/pg": "^8.10.2",
     "@types/react": "18.2.14",
     "@types/react-dom": "18.2.6",
@@ -118,14 +116,11 @@
     "@types/testing-library__jest-dom": "^5.14.6",
     "@types/uuid": "^9.0.2",
     "@types/validator": "^13.7.17",
-    "@types/web-push": "^3.3.2",
     "@typescript-eslint/eslint-plugin": "^5.60.1",
     "@typescript-eslint/parser": "^5.60.1",
     "@vitejs/plugin-react": "^4.0.1",
     "@vitest/coverage-v8": "^0.32.2",
-    "concurrently": "^8.2.0",
     "dotenv-cli": "^7.2.1",
-    "drizzle-kit": "^0.19.2",
     "esbuild": "^0.16.17",
     "eslint": "8.43.0",
     "eslint-config-airbnb": "^19.0.4",
@@ -143,6 +138,7 @@
     "eslint-plugin-testing-library": "^5.11.0",
     "jest": "^29.5.0",
     "jest-environment-jsdom": "^29.5.0",
+    "knip": "^2.19.4",
     "memfs": "^4.2.0",
     "msw": "^1.2.2",
     "next-router-mock": "^0.9.7",
@@ -155,8 +151,7 @@
     "typescript": "5.1.5",
     "vite-tsconfig-paths": "^4.2.0",
     "vitest": "^0.32.2",
-    "wait-for-expect": "^3.0.2",
-    "whatwg-fetch": "^3.6.2"
+    "wait-for-expect": "^3.0.2"
   },
   "msw": {
     "workerDirectory": "public"

+ 1 - 2
packages/cli/package.json

@@ -30,8 +30,8 @@
   "devDependencies": {
     "@faker-js/faker": "^8.0.2",
     "@types/cli-progress": "^3.11.0",
-    "@types/inquirer": "^9.0.3",
     "@types/node": "20.3.2",
+    "@types/web-push": "^3.3.2",
     "dotenv-cli": "^7.2.1",
     "esbuild": "^0.16.17",
     "eslint-config-prettier": "^8.8.0",
@@ -52,7 +52,6 @@
     "cli-spinners": "^2.9.0",
     "commander": "^11.0.0",
     "dotenv": "^16.3.1",
-    "inquirer": "^9.2.8",
     "log-update": "^5.0.1",
     "semver": "^7.5.3",
     "systeminformation": "^5.18.7",

+ 0 - 2
packages/cli/src/utils/environment/environment.ts

@@ -30,6 +30,4 @@ const environmentSchema = z
     };
   });
 
-export type Environment = z.infer<typeof environmentSchema>;
-
 export const getEnv = () => environmentSchema.parse(process.env);

File diff suppressed because it is too large
+ 134 - 401
pnpm-lock.yaml


+ 0 - 4
src/client/types/layout-helpers.d.ts

@@ -1,4 +0,0 @@
-export type ContainerProps<T> = {
-  loading?: boolean;
-  error?: string;
-} & T;

+ 2 - 2
src/server/db/schema.ts

@@ -1,8 +1,8 @@
 import { InferModel } from 'drizzle-orm';
 import { pgTable, pgEnum, integer, varchar, timestamp, serial, boolean, text, jsonb } from 'drizzle-orm/pg-core';
 
-export const updateStatusEnum = pgEnum('update_status_enum', ['SUCCESS', 'FAILED']);
-export const appStatusEnum = pgEnum('app_status_enum', ['running', 'stopped', 'starting', 'stopping', 'updating', 'missing', 'installing', 'uninstalling']);
+const updateStatusEnum = pgEnum('update_status_enum', ['SUCCESS', 'FAILED']);
+const appStatusEnum = pgEnum('app_status_enum', ['running', 'stopped', 'starting', 'stopping', 'updating', 'missing', 'installing', 'uninstalling']);
 
 const APP_STATUS = appStatusEnum.enumValues;
 export type AppStatus = (typeof APP_STATUS)[number];

+ 1 - 34
src/server/services/apps/apps.helpers.test.ts

@@ -4,7 +4,7 @@ import { faker } from '@faker-js/faker';
 import { TestDatabase, clearDatabase, closeDatabase, createDatabase } from '@/server/tests/test-utils';
 import { appInfoSchema } from '@runtipi/shared';
 import { setConfig } from '../../core/TipiConfig';
-import { checkAppRequirements, checkEnvFile, getAppInfo, getAvailableApps, getUpdateInfo } from './apps.helpers';
+import { checkAppRequirements, getAppInfo, getAvailableApps, getUpdateInfo } from './apps.helpers';
 import { createAppConfig, insertApp } from '../../tests/apps.factory';
 
 let db: TestDatabase;
@@ -49,39 +49,6 @@ describe('Test: checkAppRequirements()', () => {
   });
 });
 
-describe('Test: checkEnvFile()', () => {
-  it('Should not throw if all required fields are present', async () => {
-    // arrange
-    const appConfig = createAppConfig();
-    const app = await insertApp({}, appConfig, db);
-
-    // act
-    await checkEnvFile(app.id);
-  });
-
-  it('Should throw if a required field is missing', async () => {
-    // arrange
-    const fieldName = faker.lorem.word().toUpperCase();
-    const appConfig = createAppConfig({ form_fields: [{ env_variable: fieldName, type: 'text', label: 'test', required: true }] });
-    const app = await insertApp({}, appConfig, db);
-    const newAppEnv = 'APP_PORT=test\n';
-    fs.writeFileSync(`/app/storage/app-data/${app.id}/app.env`, newAppEnv);
-
-    // act & assert
-    await expect(checkEnvFile(app.id)).rejects.toThrowError('New info needed. App config needs to be updated');
-  });
-
-  it('Should throw if config.json is incorrect', async () => {
-    // arrange
-    const appConfig = createAppConfig();
-    const app = await insertApp({}, appConfig, db);
-    fs.writeFileSync(`/runtipi/apps/${app.id}/config.json`, 'invalid json');
-
-    // act & assert
-    await expect(checkEnvFile(app.id)).rejects.toThrowError(`App ${app.id} has invalid config.json file`);
-  });
-});
-
 describe('Test: appInfoSchema', () => {
   it('should default form_field type to text if it is wrong', async () => {
     // arrange

+ 2 - 2
src/server/services/system/system.service.test.ts

@@ -86,7 +86,7 @@ describe('Test: getVersion', () => {
     const body = faker.lorem.words(10);
     server.use(
       rest.get('https://api.github.com/repos/meienberger/runtipi/releases/latest', (_, res, ctx) => {
-        return res(ctx.json({ name: `v${faker.string.numeric(1)}.${faker.string.numeric(1)}.${faker.string.numeric()}`, body }));
+        return res(ctx.json({ tag_name: `v${faker.string.numeric(1)}.${faker.string.numeric(1)}.${faker.string.numeric()}`, body }));
       }),
     );
 
@@ -118,7 +118,7 @@ describe('Test: getVersion', () => {
     // Arrange
     server.use(
       rest.get('https://api.github.com/repos/meienberger/runtipi/releases/latest', (_, res, ctx) => {
-        return res(ctx.json({ name: `v${faker.string.numeric(1)}.${faker.string.numeric(1)}.${faker.string.numeric()}` }));
+        return res(ctx.json({ tag_name: `v${faker.string.numeric(1)}.${faker.string.numeric(1)}.${faker.string.numeric()}` }));
       }),
     );
 

+ 0 - 24
src/server/utils/env-generation.ts

@@ -1,24 +0,0 @@
-import fs from 'fs-extra';
-
-/**
- * This function reads the env file for the app with the provided id and returns a Map containing the key-value pairs of the environment variables.
- * It reads the app.env file, splits it into individual environment variables, and stores them in a Map, with the environment variable name as the key and its value as the value.
- *
- * @param {string} id - App ID
- */
-export const getAppEnvMap = async (id: string) => {
-  try {
-    const envFile = await fs.promises.readFile(`/app/storage/app-data/${id}/app.env`);
-    const envVars = envFile.toString().split('\n');
-    const envVarsMap = new Map<string, string>();
-
-    envVars.forEach((envVar) => {
-      const [key, value] = envVar.split('=');
-      if (key && value) envVarsMap.set(key, value);
-    });
-
-    return envVarsMap;
-  } catch (e) {
-    return new Map<string, string>();
-  }
-};

Some files were not shown because too many files changed in this diff