Skip to content

Commit 708b337

Browse files
committed
refactor: update module paths for better organization
1 parent 713ed24 commit 708b337

21 files changed

+50
-25
lines changed

.eslintrc

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
{
22
"root": true,
3-
"extends": ["plugin:lit/recommended", "eslint:recommended", "plugin:jsdoc/recommended", "plugin:import/recommended", "plugin:promise/recommended"],
3+
"extends": [
4+
"plugin:lit/recommended",
5+
"eslint:recommended",
6+
"plugin:jsdoc/recommended",
7+
"plugin:import/recommended",
8+
"plugin:import/typescript",
9+
"plugin:promise/recommended"
10+
],
411
"parser": "@babel/eslint-parser",
512
"plugins": ["lit", "jsdoc", "import", "promise"],
613
"env": {
@@ -41,6 +48,7 @@
4148
"import/first": "warn",
4249
"import/newline-after-import":"warn",
4350
"import/no-empty-named-blocks": "warn",
51+
"import/no-unresolved": "off",
4452
"promise/always-return": "off",
4553
"promise/catch-or-return": "off"
4654
}

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
same "printed page" as the copyright notice for easier
187187
identification within third-party archives.
188188

189-
Copyright [2023] [Deyan "stambolievv" Stamboliev]
189+
Copyright [2024] [Deyan "stambolievv" Stamboliev]
190190

191191
Licensed under the Apache License, Version 2.0 (the "License");
192192
you may not use this file except in compliance with the License.

index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@
4646
<li role="menuitem"><a href="<%- APP_HOST_URL %>/cars">Всички автомобили</a></li>
4747
</ul>
4848
<ul role="menubar" class="user-navigation" hidden>
49-
<li role="menuitem"><a href="#" id="logout-button">Излез</a></li>
49+
<li role="menuitem"><a href="#" id="logout-button">Изход</a></li>
5050
</ul>
51-
<ul role="menubar" class="guest-navigation">
51+
<ul role="menubar" class="guest-navigation" hidden>
5252
<li role="menuitem"><a href="<%- APP_HOST_URL %>/user/login">Вход</a></li>
5353
<li role="menuitem"><a href="<%- APP_HOST_URL %>/user/register">Регистрация</a></li>
5454
</ul>

jsconfig.json

+8
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@
1313
"strict": true, // This enables all of the strict mode family options.
1414
"checkJs": true, // This is the equivalent of including // @ts-check at the top of all JavaScript files which are included in your project.
1515
"allowUnreachableCode": false, // This allows picking up dead code paths.
16+
17+
"baseUrl": ".",
18+
"paths": {
19+
"@db": ["./src/api/"],
20+
"@views": ["./src/views/"],
21+
"@templates": ["./src/templates/"],
22+
"@utilities": ["./src/utilities/"],
23+
}
1624
},
1725
"exclude": ["dist", "node_modules"] // This specifies which directories should be excluded from the project.
1826
}

src/api/api.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { getUserData, removeUserData } from './services/userService';
1+
import { getUserData, removeUserData } from '@db';
22

33
/**
44
* @description Performs a network request to a given path with specified options.

src/api/endpoints.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { makeQueryParam } from '../utilities';
1+
import { makeQueryParam } from '@utilities';
22

33
/**
44
* @description Represents the endpoints related to users database.

src/api/services/carService.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as api from '../api';
22
import { CAR_ENDPOINTS } from '../endpoints';
3-
import { getUserData } from './userService';
4-
import { memoization } from '../../utilities';
3+
import { getUserData } from '@db';
4+
import { memoization } from '@utilities';
55
import config from '../../config';
66

77
/**

src/api/services/repairService.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as api from '../api';
22
import { REPAIR_ENDPOINTS } from '../endpoints';
3-
import { getUserData } from './userService';
4-
import { memoization } from '../../utilities';
3+
import { getUserData } from '@db';
4+
import { memoization } from '@utilities';
55

66
/**
77
* @description Sorts the given objects based on their date properties. If the date properties are not available, it falls back to sorting based on createdAt properties.

src/api/services/userService.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as api from '../api';
22
import { USER_ENDPOINTS } from '../endpoints';
3-
import { memoization, updateNavigation } from '../../utilities';
3+
import { memoization, updateNavigation } from '@utilities';
44
import config from '../../config';
55

66
/**

src/app.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// @ts-nocheck
22
import page from 'page';
33
import { decorateContext } from './middleware/render';
4-
import { loginPage, onLogout, registerPage, carsCatalogPage, createCarPage, editCarPage, repairsCatalogPage, createRepairPage, detailsRepairPage, editRepairPage } from './views';
4+
import { loginPage, onLogout, registerPage, carsCatalogPage, createCarPage, editCarPage, repairsCatalogPage, createRepairPage, detailsRepairPage, editRepairPage } from '@views';
55

66
document.getElementById('logout-button')?.addEventListener('click', onLogout);
77

src/middleware/render.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { render } from 'lit';
2-
import { hasUserData } from '../api';
3-
import { updateNavigation } from '../utilities';
2+
import { hasUserData } from '@db';
3+
import { updateNavigation } from '@utilities';
44

55
const root = document.getElementById('site-content') || document.body;
66
const metaTag = /**@type {HTMLMetaElement | null}*/(document.querySelector('meta[name=viewport]'));

src/templates/car/catalog.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import page from 'page';
22
import { html } from 'lit';
3-
import { makeQueryParam } from '../../utilities';
3+
import { makeQueryParam } from '@utilities';
44
import config from '../../config';
55

66
/**

src/templates/car/create.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import page from 'page';
21
import { html } from 'lit';
32

43
/**

src/templates/car/edit.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import page from 'page';
21
import { html } from 'lit';
32

43
/**

src/templates/repair/catalog.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import page from 'page';
22
import { html } from 'lit';
3-
import { makeQueryParam, formatDateToLocale } from '../../utilities';
3+
import { makeQueryParam, formatDateToLocale } from '@utilities';
44
import config from '../../config';
55

66
/**

src/templates/repair/create.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import page from 'page';
21
import { html } from 'lit';
3-
import { getDay } from '../../utilities';
2+
import { getDay } from '@utilities';
43

54
/**
65
* @typedef {object} RepairCreatePageProps

src/templates/repair/details.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import page from 'page';
22
import { html } from 'lit';
3-
import { formatDateToLocale } from '../../utilities';
3+
import { formatDateToLocale } from '@utilities';
44

55
/**
66
* @typedef {object} RepairDetailsPageProps

src/templates/repair/edit.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import page from 'page';
22
import { html } from 'lit';
3-
import { getDay } from '../../utilities';
3+
import { getDay } from '@utilities';
44

55
/**
66
* @typedef {object} RepairEditPageProps

src/utilities/Notice.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { generateUUID, createElement } from './index';
1+
import { generateUUID, createElement } from '@utilities';
22

33
const MASK_COLOR = 'rgba(0 0 0 / 0.5)';
44
const TOAST_AUTO_CLOSE_DEFAULT_DURATION = 3;

src/utilities/updateNavigation.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { hasUserData } from '../api';
1+
import { hasUserData } from '@db';
22

33
const userNavigation = /**@type {NodeListOf<Element>}*/(document.querySelectorAll('.user-navigation'));
44
const guestNavigation = /**@type {NodeListOf<Element>}*/(document.querySelectorAll('.guest-navigation'));

vite.config.js

+13-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { viteStaticCopy } from 'vite-plugin-static-copy';
33
import viteBanner from 'vite-plugin-banner';
44
import { createHtmlPlugin } from 'vite-plugin-html';
55
import pkg from './package.json';
6+
import { fileURLToPath, URL } from 'node:url'
67

78
const banner = `
89
/**
@@ -39,6 +40,9 @@ export default defineConfig({
3940
},
4041
rollupOptions: {
4142
output: {
43+
manualChunks: (id) => {
44+
if (id.includes('node_modules')) return 'vendor';
45+
},
4246
dir: outputFolder,
4347
chunkFileNames: '[name].js',
4448
entryFileNames: '[name].js',
@@ -64,5 +68,13 @@ export default defineConfig({
6468
return code;
6569
},
6670
}
67-
]
71+
],
72+
resolve: {
73+
alias: {
74+
'@db': fileURLToPath(new URL('./src/api/', import.meta.url)),
75+
'@views': fileURLToPath(new URL('./src/views/', import.meta.url)),
76+
'@templates': fileURLToPath(new URL('./src/templates/', import.meta.url)),
77+
'@utilities': fileURLToPath(new URL('./src/utilities/', import.meta.url)),
78+
},
79+
}
6880
});

0 commit comments

Comments
 (0)