From 4899f44e4c964928abd9e652b7fb3a9bff6e39fb Mon Sep 17 00:00:00 2001 From: nvc8996 Date: Wed, 6 Oct 2021 01:15:19 +0300 Subject: [PATCH] compiled JS files -> dist, fixed compiling errors --- .gitignore | 3 + bin/server.ts | 94 ------------ config/testing.json | 2 +- {bin => dev/bin}/nvm.sh | 0 dev/bin/server.ts | 99 +++++++++++++ .../generatePassword.ts | 0 {src => dev/src}/app.ts | 4 +- {src => dev/src}/controllers/aliases.ts | 0 {src => dev/src}/controllers/pages.ts | 0 {src => dev/src}/controllers/pagesOrder.ts | 0 {src => dev/src}/controllers/transport.ts | 2 +- {src => dev/src}/controllers/users.ts | 0 {src => dev/src}/exceptions/httpException.ts | 0 {src => dev/src}/models/alias.ts | 0 {src => dev/src}/models/file.ts | 0 {src => dev/src}/models/page.ts | 0 {src => dev/src}/models/pageOrder.ts | 2 +- {src => dev/src}/models/user.ts | 0 {src => dev/src}/routes/aliases.ts | 2 +- {src => dev/src}/routes/api/index.ts | 0 {src => dev/src}/routes/api/links.ts | 0 {src => dev/src}/routes/api/pages.ts | 10 +- {src => dev/src}/routes/api/transport.ts | 0 {src => dev/src}/routes/auth.ts | 0 {src => dev/src}/routes/home.ts | 0 {src => dev/src}/routes/index.ts | 0 {src => dev/src}/routes/middlewares/locals.ts | 0 {src => dev/src}/routes/middlewares/pages.ts | 0 {src => dev/src}/routes/middlewares/token.ts | 0 {src => dev/src}/routes/pages.ts | 0 {src => dev/src}/utils/asyncMiddleware.ts | 0 {src => dev/src}/utils/crypto.ts | 0 {src => dev/src}/utils/database/index.ts | 2 +- {src => dev/src}/utils/database/initDb.ts | 0 {src => dev/src}/utils/objects.ts | 0 {src => dev/src}/utils/rcparser.ts | 2 +- {src => dev/src}/utils/translation.ts | 0 {src => dev/src}/utils/twig.ts | 2 +- {src => dev/src}/utils/urlify.ts | 0 {test => dev/test}/database.ts | 74 ++++++---- {test => dev/test}/express.ts | 0 {test => dev/test}/models/alias.ts | 2 +- {test => dev/test}/models/file.ts | 16 +- {test => dev/test}/models/page.ts | 2 +- {test => dev/test}/models/pageOrder.ts | 4 +- {test => dev/test}/rcparser.ts | 138 +++++++++--------- {test => dev/test}/rest/aliases.ts | 0 {test => dev/test}/rest/pages.ts | 11 +- {test => dev/test}/rest/test_file.json | 0 {test => dev/test}/rest/test_image.png | Bin {test => dev/test}/rest/transport.ts | 22 +-- {src/frontend => frontend}/.postcssrc | 0 {src/frontend => frontend}/js/app.js | 0 .../js/classes/codeStyler.js | 0 .../js/classes/editor.js | 0 .../js/modules/extensions.js | 0 {src/frontend => frontend}/js/modules/page.js | 0 .../js/modules/writing.js | 0 {src/frontend => frontend}/styles/carbon.pcss | 0 .../styles/components/aside.pcss | 0 .../styles/components/auth.pcss | 0 .../styles/components/header.pcss | 0 .../styles/components/landing.pcss | 0 .../styles/components/page.pcss | 0 .../styles/components/writing.pcss | 0 {src/frontend => frontend}/styles/diff.pcss | 0 {src/frontend => frontend}/styles/layout.pcss | 0 {src/frontend => frontend}/styles/main.pcss | 0 {src/frontend => frontend}/styles/vars.pcss | 0 {src/frontend => frontend}/svg/loader.svg | 0 {src/frontend => frontend}/svg/menu.svg | 0 {src/frontend => frontend}/svg/plus.svg | 0 package.json | 19 +-- tsconfig.json | 2 +- {src/views => views}/auth.twig | 0 {src/views => views}/components/aside.twig | 0 {src/views => views}/components/header.twig | 0 {src/views => views}/error.twig | 0 {src/views => views}/layout.twig | 0 .../pages/blocks/checklist.twig | 0 {src/views => views}/pages/blocks/code.twig | 0 .../pages/blocks/delimiter.twig | 0 {src/views => views}/pages/blocks/header.twig | 0 {src/views => views}/pages/blocks/image.twig | 0 .../pages/blocks/linkTool.twig | 0 {src/views => views}/pages/blocks/list.twig | 0 .../pages/blocks/paragraph.twig | 0 {src/views => views}/pages/blocks/raw.twig | 0 {src/views => views}/pages/blocks/table.twig | 0 .../views => views}/pages/blocks/warning.twig | 0 {src/views => views}/pages/form.twig | 0 {src/views => views}/pages/index.twig | 0 {src/views => views}/pages/page.twig | 0 93 files changed, 266 insertions(+), 248 deletions(-) delete mode 100644 bin/server.ts rename {bin => dev/bin}/nvm.sh (100%) create mode 100644 dev/bin/server.ts rename generatePassword.ts => dev/generatePassword.ts (100%) rename {src => dev/src}/app.ts (88%) rename {src => dev/src}/controllers/aliases.ts (100%) rename {src => dev/src}/controllers/pages.ts (100%) rename {src => dev/src}/controllers/pagesOrder.ts (100%) rename {src => dev/src}/controllers/transport.ts (99%) rename {src => dev/src}/controllers/users.ts (100%) rename {src => dev/src}/exceptions/httpException.ts (100%) rename {src => dev/src}/models/alias.ts (100%) rename {src => dev/src}/models/file.ts (100%) rename {src => dev/src}/models/page.ts (100%) rename {src => dev/src}/models/pageOrder.ts (99%) rename {src => dev/src}/models/user.ts (100%) rename {src => dev/src}/routes/aliases.ts (97%) rename {src => dev/src}/routes/api/index.ts (100%) rename {src => dev/src}/routes/api/links.ts (100%) rename {src => dev/src}/routes/api/pages.ts (96%) rename {src => dev/src}/routes/api/transport.ts (100%) rename {src => dev/src}/routes/auth.ts (100%) rename {src => dev/src}/routes/home.ts (100%) rename {src => dev/src}/routes/index.ts (100%) rename {src => dev/src}/routes/middlewares/locals.ts (100%) rename {src => dev/src}/routes/middlewares/pages.ts (100%) rename {src => dev/src}/routes/middlewares/token.ts (100%) rename {src => dev/src}/routes/pages.ts (100%) rename {src => dev/src}/utils/asyncMiddleware.ts (100%) rename {src => dev/src}/utils/crypto.ts (100%) rename {src => dev/src}/utils/database/index.ts (98%) rename {src => dev/src}/utils/database/initDb.ts (100%) rename {src => dev/src}/utils/objects.ts (100%) rename {src => dev/src}/utils/rcparser.ts (96%) rename {src => dev/src}/utils/translation.ts (100%) rename {src => dev/src}/utils/twig.ts (92%) rename {src => dev/src}/utils/urlify.ts (100%) rename {test => dev/test}/database.ts (54%) rename {test => dev/test}/express.ts (100%) rename {test => dev/test}/models/alias.ts (97%) rename {test => dev/test}/models/file.ts (92%) rename {test => dev/test}/models/page.ts (99%) rename {test => dev/test}/models/pageOrder.ts (96%) rename {test => dev/test}/rcparser.ts (75%) rename {test => dev/test}/rest/aliases.ts (100%) rename {test => dev/test}/rest/pages.ts (96%) rename {test => dev/test}/rest/test_file.json (100%) rename {test => dev/test}/rest/test_image.png (100%) rename {test => dev/test}/rest/transport.ts (91%) rename {src/frontend => frontend}/.postcssrc (100%) rename {src/frontend => frontend}/js/app.js (100%) rename {src/frontend => frontend}/js/classes/codeStyler.js (100%) rename {src/frontend => frontend}/js/classes/editor.js (100%) rename {src/frontend => frontend}/js/modules/extensions.js (100%) rename {src/frontend => frontend}/js/modules/page.js (100%) rename {src/frontend => frontend}/js/modules/writing.js (100%) rename {src/frontend => frontend}/styles/carbon.pcss (100%) rename {src/frontend => frontend}/styles/components/aside.pcss (100%) rename {src/frontend => frontend}/styles/components/auth.pcss (100%) rename {src/frontend => frontend}/styles/components/header.pcss (100%) rename {src/frontend => frontend}/styles/components/landing.pcss (100%) rename {src/frontend => frontend}/styles/components/page.pcss (100%) rename {src/frontend => frontend}/styles/components/writing.pcss (100%) rename {src/frontend => frontend}/styles/diff.pcss (100%) rename {src/frontend => frontend}/styles/layout.pcss (100%) rename {src/frontend => frontend}/styles/main.pcss (100%) rename {src/frontend => frontend}/styles/vars.pcss (100%) rename {src/frontend => frontend}/svg/loader.svg (100%) rename {src/frontend => frontend}/svg/menu.svg (100%) rename {src/frontend => frontend}/svg/plus.svg (100%) rename {src/views => views}/auth.twig (100%) rename {src/views => views}/components/aside.twig (100%) rename {src/views => views}/components/header.twig (100%) rename {src/views => views}/error.twig (100%) rename {src/views => views}/layout.twig (100%) rename {src/views => views}/pages/blocks/checklist.twig (100%) rename {src/views => views}/pages/blocks/code.twig (100%) rename {src/views => views}/pages/blocks/delimiter.twig (100%) rename {src/views => views}/pages/blocks/header.twig (100%) rename {src/views => views}/pages/blocks/image.twig (100%) rename {src/views => views}/pages/blocks/linkTool.twig (100%) rename {src/views => views}/pages/blocks/list.twig (100%) rename {src/views => views}/pages/blocks/paragraph.twig (100%) rename {src/views => views}/pages/blocks/raw.twig (100%) rename {src/views => views}/pages/blocks/table.twig (100%) rename {src/views => views}/pages/blocks/warning.twig (100%) rename {src/views => views}/pages/form.twig (100%) rename {src/views => views}/pages/index.twig (100%) rename {src/views => views}/pages/page.twig (100%) diff --git a/.gitignore b/.gitignore index d9bc62b..fcc7825 100644 --- a/.gitignore +++ b/.gitignore @@ -76,3 +76,6 @@ typings/ # Uploads /public/uploads /public/uploads_test + +# Compiled files +/dist/* \ No newline at end of file diff --git a/bin/server.ts b/bin/server.ts deleted file mode 100644 index 5071caa..0000000 --- a/bin/server.ts +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Module dependencies. - */ -import app from "../src/app"; -import http from "http"; -import config from "config"; -import Debug from "debug"; - -const debug = Debug.debug("codex.editor.docs:server"); - -/** - * Get port from environment and store in Express. - */ -const port = normalizePort(config.get("port") || '3000'); - -app.set('port', port); - -/** - * Create HTTP server. - */ -const server = http.createServer(app); - -/** - * Listen on provided port, on all network interfaces. - */ -server.listen(port); -server.on('error', onError); -server.on('listening', onListening); - -/** - * Normalize a port into a number, string, or false. - */ -function normalizePort(val: string): number | string | false { - const value = parseInt(val, 10); - - if (isNaN(value)) { - // named pipe - return val; - } - - if (value >= 0) { - // port number - return value; - } - - return false; -} - -/** - * Event listener for HTTP server "error" event. - */ -function onError(error: NodeJS.ErrnoException) { - if (error.syscall !== 'listen') { - throw error; - } - - const bind = typeof port === 'string' - ? 'Pipe ' + port - : 'Port ' + port; - - // handle specific listen errors with friendly messages - switch (error.code) { - case 'EACCES': - console.error(bind + ' requires elevated privileges'); - process.exit(1); - break; - case 'EADDRINUSE': - console.error(bind + ' is already in use'); - process.exit(1); - break; - default: - throw error; - } -} - -/** - * Event listener for HTTP server "listening" event. - */ -function onListening() { - const addr = server.address(); - - if (addr === null) { - debug('Address not found'); - process.exit(1); - } - - const bind = typeof addr === 'string' - ? 'pipe ' + addr - : 'port ' + addr.port; - - debug('Listening on ' + bind); -} - -export default {server, app}; \ No newline at end of file diff --git a/config/testing.json b/config/testing.json index 0c1ec88..96a5938 100644 --- a/config/testing.json +++ b/config/testing.json @@ -1,7 +1,7 @@ { "port": 3001, "database": ".testdb", - "rcFile": "./test/.codexdocsrc", + "rcFile": "./dev/test/.codexdocsrc", "uploads": "public/uploads_test", "secret": "iamasecretstring" } diff --git a/bin/nvm.sh b/dev/bin/nvm.sh similarity index 100% rename from bin/nvm.sh rename to dev/bin/nvm.sh diff --git a/dev/bin/server.ts b/dev/bin/server.ts new file mode 100644 index 0000000..ebdfc50 --- /dev/null +++ b/dev/bin/server.ts @@ -0,0 +1,99 @@ +/** + * Module dependencies. + */ +import app from '../src/app'; +import http from 'http'; +import config from 'config'; +import Debug from 'debug'; + +const debug = Debug.debug('codex.editor.docs:server'); + +/** + * Get port from environment and store in Express. + */ +const port = normalizePort(config.get('port') || '3000'); + +app.set('port', port); + +/** + * Create HTTP server. + */ +const server = http.createServer(app); + +/** + * Listen on provided port, on all network interfaces. + */ +server.listen(port); +server.on('error', onError); +server.on('listening', onListening); + +/** + * Normalize a port into a number, string, or false. + * @param val + */ +function normalizePort(val: string): number | string | false { + const value = parseInt(val, 10); + + if (isNaN(value)) { + // named pipe + return val; + } + + if (value >= 0) { + // port number + return value; + } + + return false; +} + +/** + * Event listener for HTTP server 'error' event. + * @param error + */ +function onError(error: NodeJS.ErrnoException): void { + if (error.syscall !== 'listen') { + throw error; + } + + const bind = typeof port === 'string' + ? 'Pipe ' + port + : 'Port ' + port; + + // handle specific listen errors with friendly messages + switch (error.code) { + case 'EACCES': + console.error(bind + ' requires elevated privileges'); + process.exit(1); + break; + case 'EADDRINUSE': + console.error(bind + ' is already in use'); + process.exit(1); + break; + default: + throw error; + } +} + +/** + * Event listener for HTTP server 'listening' event. + */ +function onListening(): void { + const addr = server.address(); + + if (addr === null) { + debug('Address not found'); + process.exit(1); + } + + const bind = typeof addr === 'string' + ? 'pipe ' + addr + : 'port ' + addr.port; + + debug('Listening on ' + bind); +} + +export default { + server, + app, +}; \ No newline at end of file diff --git a/generatePassword.ts b/dev/generatePassword.ts similarity index 100% rename from generatePassword.ts rename to dev/generatePassword.ts diff --git a/src/app.ts b/dev/src/app.ts similarity index 88% rename from src/app.ts rename to dev/src/app.ts index 3e42677..2a826cd 100644 --- a/src/app.ts +++ b/dev/src/app.ts @@ -12,7 +12,7 @@ const config = rcParser.getConfiguration(); app.locals.config = config; // view engine setup -app.set('views', path.join(__dirname, 'views')); +app.set('views', path.join(__dirname, '../../', 'views')); app.set('view engine', 'twig'); require('./utils/twig'); @@ -20,7 +20,7 @@ app.use(morgan('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(cookieParser()); -app.use(express.static(path.join(__dirname, '../public'))); +app.use(express.static(path.join(__dirname, '../../public'))); app.use('/', routes); diff --git a/src/controllers/aliases.ts b/dev/src/controllers/aliases.ts similarity index 100% rename from src/controllers/aliases.ts rename to dev/src/controllers/aliases.ts diff --git a/src/controllers/pages.ts b/dev/src/controllers/pages.ts similarity index 100% rename from src/controllers/pages.ts rename to dev/src/controllers/pages.ts diff --git a/src/controllers/pagesOrder.ts b/dev/src/controllers/pagesOrder.ts similarity index 100% rename from src/controllers/pagesOrder.ts rename to dev/src/controllers/pagesOrder.ts diff --git a/src/controllers/transport.ts b/dev/src/controllers/transport.ts similarity index 99% rename from src/controllers/transport.ts rename to dev/src/controllers/transport.ts index 150eca5..b8b773e 100644 --- a/src/controllers/transport.ts +++ b/dev/src/controllers/transport.ts @@ -77,7 +77,7 @@ class Transport { if (fetchedContentType === null) { fetchedMimeType = undefined; - }else{ + } else { fetchedMimeType = fetchedContentType; } diff --git a/src/controllers/users.ts b/dev/src/controllers/users.ts similarity index 100% rename from src/controllers/users.ts rename to dev/src/controllers/users.ts diff --git a/src/exceptions/httpException.ts b/dev/src/exceptions/httpException.ts similarity index 100% rename from src/exceptions/httpException.ts rename to dev/src/exceptions/httpException.ts diff --git a/src/models/alias.ts b/dev/src/models/alias.ts similarity index 100% rename from src/models/alias.ts rename to dev/src/models/alias.ts diff --git a/src/models/file.ts b/dev/src/models/file.ts similarity index 100% rename from src/models/file.ts rename to dev/src/models/file.ts diff --git a/src/models/page.ts b/dev/src/models/page.ts similarity index 100% rename from src/models/page.ts rename to dev/src/models/page.ts diff --git a/src/models/pageOrder.ts b/dev/src/models/pageOrder.ts similarity index 99% rename from src/models/pageOrder.ts rename to dev/src/models/pageOrder.ts index c137358..761fc6a 100644 --- a/src/models/pageOrder.ts +++ b/dev/src/models/pageOrder.ts @@ -103,7 +103,7 @@ class PageOrder { * * @param {string} pageId - page's id */ - public push(pageId: string): void { + public push(pageId: string | number): void { if (typeof pageId === 'string') { if (this.order === undefined) { this.order = []; diff --git a/src/models/user.ts b/dev/src/models/user.ts similarity index 100% rename from src/models/user.ts rename to dev/src/models/user.ts diff --git a/src/routes/aliases.ts b/dev/src/routes/aliases.ts similarity index 97% rename from src/routes/aliases.ts rename to dev/src/routes/aliases.ts index c983821..f5cc7ec 100644 --- a/src/routes/aliases.ts +++ b/dev/src/routes/aliases.ts @@ -42,7 +42,7 @@ router.get('*', verifyToken, async (req: Request, res: Response) => { } catch (err) { res.status(400).json({ success: false, - error: err.message, + error: err, }); } }); diff --git a/src/routes/api/index.ts b/dev/src/routes/api/index.ts similarity index 100% rename from src/routes/api/index.ts rename to dev/src/routes/api/index.ts diff --git a/src/routes/api/links.ts b/dev/src/routes/api/links.ts similarity index 100% rename from src/routes/api/links.ts rename to dev/src/routes/api/links.ts diff --git a/src/routes/api/pages.ts b/dev/src/routes/api/pages.ts similarity index 96% rename from src/routes/api/pages.ts rename to dev/src/routes/api/pages.ts index ba6b5fe..ba240b7 100644 --- a/src/routes/api/pages.ts +++ b/dev/src/routes/api/pages.ts @@ -23,7 +23,7 @@ router.get('/page/:id', async (req: Request, res: Response) => { } catch (err) { res.status(400).json({ success: false, - error: err.message, + error: (err as Error).message, }); } }); @@ -44,7 +44,7 @@ router.get('/pages', async (req: Request, res: Response) => { } catch (err) { res.status(400).json({ success: false, - error: err.message, + error: (err as Error).message, }); } }); @@ -77,7 +77,7 @@ router.put('/page', multer.none(), async (req: Request, res: Response) => { } catch (err) { res.status(400).json({ success: false, - error: err.message, + error: (err as Error).message, }); } }); @@ -134,7 +134,7 @@ router.post('/page/:id', multer.none(), async (req: Request, res: Response) => { } catch (err) { res.status(400).json({ success: false, - error: err.message, + error: (err as Error).message, }); } }); @@ -213,7 +213,7 @@ router.delete('/page/:id', async (req: Request, res: Response) => { } catch (err) { res.status(400).json({ success: false, - error: err.message, + error: (err as Error).message, }); } }); diff --git a/src/routes/api/transport.ts b/dev/src/routes/api/transport.ts similarity index 100% rename from src/routes/api/transport.ts rename to dev/src/routes/api/transport.ts diff --git a/src/routes/auth.ts b/dev/src/routes/auth.ts similarity index 100% rename from src/routes/auth.ts rename to dev/src/routes/auth.ts diff --git a/src/routes/home.ts b/dev/src/routes/home.ts similarity index 100% rename from src/routes/home.ts rename to dev/src/routes/home.ts diff --git a/src/routes/index.ts b/dev/src/routes/index.ts similarity index 100% rename from src/routes/index.ts rename to dev/src/routes/index.ts diff --git a/src/routes/middlewares/locals.ts b/dev/src/routes/middlewares/locals.ts similarity index 100% rename from src/routes/middlewares/locals.ts rename to dev/src/routes/middlewares/locals.ts diff --git a/src/routes/middlewares/pages.ts b/dev/src/routes/middlewares/pages.ts similarity index 100% rename from src/routes/middlewares/pages.ts rename to dev/src/routes/middlewares/pages.ts diff --git a/src/routes/middlewares/token.ts b/dev/src/routes/middlewares/token.ts similarity index 100% rename from src/routes/middlewares/token.ts rename to dev/src/routes/middlewares/token.ts diff --git a/src/routes/pages.ts b/dev/src/routes/pages.ts similarity index 100% rename from src/routes/pages.ts rename to dev/src/routes/pages.ts diff --git a/src/utils/asyncMiddleware.ts b/dev/src/utils/asyncMiddleware.ts similarity index 100% rename from src/utils/asyncMiddleware.ts rename to dev/src/utils/asyncMiddleware.ts diff --git a/src/utils/crypto.ts b/dev/src/utils/crypto.ts similarity index 100% rename from src/utils/crypto.ts rename to dev/src/utils/crypto.ts diff --git a/src/utils/database/index.ts b/dev/src/utils/database/index.ts similarity index 98% rename from src/utils/database/index.ts rename to dev/src/utils/database/index.ts index 518244e..19469be 100644 --- a/src/utils/database/index.ts +++ b/dev/src/utils/database/index.ts @@ -126,7 +126,7 @@ export class Database { * @param {Options} options - optional params * @returns {Promise} - number of updated rows or affected docs or Error object */ - public async update(query: DocType, update: DocType, options: Options = {}): Promise { + public async update(query: DocType, update: DocType, options: Options = {}): Promise> { return new Promise((resolve, reject) => this.db.update(query, update, options, (err, result, affectedDocs) => { if (err) { reject(err); diff --git a/src/utils/database/initDb.ts b/dev/src/utils/database/initDb.ts similarity index 100% rename from src/utils/database/initDb.ts rename to dev/src/utils/database/initDb.ts diff --git a/src/utils/objects.ts b/dev/src/utils/objects.ts similarity index 100% rename from src/utils/objects.ts rename to dev/src/utils/objects.ts diff --git a/src/utils/rcparser.ts b/dev/src/utils/rcparser.ts similarity index 96% rename from src/utils/rcparser.ts rename to dev/src/utils/rcparser.ts index 3e8d76f..85a274d 100644 --- a/src/utils/rcparser.ts +++ b/dev/src/utils/rcparser.ts @@ -2,7 +2,7 @@ import fs from 'fs'; import path from 'path'; import config from 'config'; -const rcPath = path.resolve(__dirname, '../../', config.get('rcFile') || './.codexdocsrc'); +const rcPath = path.resolve(__dirname, '../../../', config.get('rcFile') || './.codexdocsrc'); /** * @typedef {object} menu diff --git a/src/utils/translation.ts b/dev/src/utils/translation.ts similarity index 100% rename from src/utils/translation.ts rename to dev/src/utils/translation.ts diff --git a/src/utils/twig.ts b/dev/src/utils/twig.ts similarity index 92% rename from src/utils/twig.ts rename to dev/src/utils/twig.ts index 02d465a..1aa8e93 100644 --- a/src/utils/twig.ts +++ b/dev/src/utils/twig.ts @@ -16,7 +16,7 @@ export default (function () { * @returns {string} - svg code */ twig.extendFunction('svg', function (filename: string) { - return fs.readFileSync(`${__dirname}/../frontend/svg/${filename}.svg`, 'utf-8'); + return fs.readFileSync(`./frontend/svg/${filename}.svg`, 'utf-8'); }); /** diff --git a/src/utils/urlify.ts b/dev/src/utils/urlify.ts similarity index 100% rename from src/utils/urlify.ts rename to dev/src/utils/urlify.ts diff --git a/test/database.ts b/dev/test/database.ts similarity index 54% rename from test/database.ts rename to dev/test/database.ts index 81bac54..7ee2640 100644 --- a/test/database.ts +++ b/dev/test/database.ts @@ -8,14 +8,14 @@ import { Database } from '../src/utils/database'; interface Document { data?: any; _id?: string; - update?: boolean; + update?: boolean; no?: any; } describe('Database', () => { const pathToDB = `./${config.get('database')}/test.db`; let nedbInstance; - let db: Database; + let db: Database; before(() => { if (fs.existsSync(pathToDB)) { @@ -24,14 +24,14 @@ describe('Database', () => { }); it('Creating db instance', async () => { - nedbInstance = new Datastore({filename: pathToDB, autoload: true}); + nedbInstance = new Datastore({ filename: pathToDB, autoload: true }); db = new Database(nedbInstance); }); it('Inserting document', async () => { const data = 'Text data'; - const insertedDoc = await db.insert({data}) as Document; + const insertedDoc = await db.insert({ data }) as Document; expect(insertedDoc).to.be.a('object'); expect(insertedDoc.data).to.equal(data); @@ -40,18 +40,18 @@ describe('Database', () => { it('Finding document', async () => { const data = 'Text data'; - const insertedDoc = await db.insert({data}) as Document; + const insertedDoc = await db.insert({ data }) as Document; expect(insertedDoc).to.be.a('object'); expect(insertedDoc.data).to.equal(data); - const foundDoc = await db.findOne({_id: insertedDoc._id}) as Document; + const foundDoc = await db.findOne({ _id: insertedDoc._id }) as Document; expect(foundDoc).not.be.null; expect(foundDoc._id).to.equal(insertedDoc._id); expect(foundDoc.data).to.equal(data); - const projectedDoc = await db.findOne({_id: insertedDoc._id}, {data: 1, _id: 0}); + const projectedDoc = await db.findOne({ _id: insertedDoc._id }, { data: 1, _id: 0 }); expect(Object.keys(projectedDoc).length).to.equal(1); expect(Object.keys(projectedDoc).pop()).to.equal('data'); @@ -60,16 +60,16 @@ describe('Database', () => { it('Updating document', async () => { const data = 'Text data'; - const insertedDoc = await db.insert({data}) as Document; + const insertedDoc = await db.insert({ data }) as Document; expect(insertedDoc).to.be.a('object'); expect(insertedDoc.data).to.equal(data); const updatedData = 'Updated text data'; - await db.update({_id: insertedDoc._id}, {data: updatedData}); + await db.update({ _id: insertedDoc._id }, { data: updatedData }); - const updatedDoc = await db.findOne({_id: insertedDoc._id}) as Document; + const updatedDoc = await db.findOne({ _id: insertedDoc._id }) as Document; expect(updatedDoc).not.be.null; expect(updatedDoc.data).not.equal(data); @@ -77,28 +77,38 @@ describe('Database', () => { }); it('Updating documents with options', async () => { - const data = {update: true, data: 'Text data'}; + const data = { + update: true, + data: 'Text data', + }; await db.insert(data); await db.insert(data); - let numberOfUpdatedDocs = await db.update({update: true}, {$set: {data: 'First update'}}, {multi: true}); + let numberOfUpdatedDocs = await db.update({ update: true }, { $set: { data: 'First update' } }, { multi: true }); expect(numberOfUpdatedDocs).to.equal(2); - const affectedDocs = await db.update({update: true}, {$set: {data: 'Second update'}}, {multi: true, returnUpdatedDocs: true}) as Array; + const affectedDocs = await db.update( + { update: true }, + { $set: { data: 'Second update' } }, + { + multi: true, + returnUpdatedDocs: true, + } + ) as Array; expect(affectedDocs).to.be.a('array'); affectedDocs.forEach((doc: Document) => { expect(doc.data).to.equal('Second update'); }); - const upsertedDoc = await db.update({update: true, data: 'First update'}, {$set: {data: 'Third update'}}, {upsert: true}) as Document; + const upsertedDoc = await db.update({ update: true, data: 'First update' }, { $set: { data: 'Third update' } }, { upsert: true }) as Document; expect(upsertedDoc.update).to.be.true; expect(upsertedDoc.data).to.equal('Third update'); - numberOfUpdatedDocs = await db.update({data: 'Third update'}, {$set: {data: 'Fourth update'}}, {upsert: true}); + numberOfUpdatedDocs = await db.update({ data: 'Third update' }, { $set: { data: 'Fourth update' } }, { upsert: true }); expect(numberOfUpdatedDocs).to.equal(1); }); @@ -107,22 +117,22 @@ describe('Database', () => { const data1 = 'Text data 1'; const data2 = 'Text data 2'; - const insertedDoc1 = await db.insert({data: data1, flag: true, no: 1}) as Document; - const insertedDoc2 = await db.insert({data: data2, flag: true, no: 2}) as Document; + const insertedDoc1 = await db.insert({ data: data1, flag: true, no: 1 }) as Document; + const insertedDoc2 = await db.insert({ data: data2, flag: true, no: 2 }) as Document; - const foundDocs = await db.find({flag: true}) as Array; + const foundDocs = await db.find({ flag: true }) as Array; expect(foundDocs).to.be.a('array'); expect(foundDocs.length).to.equal(2); - foundDocs.sort(({no: a}, {no: b}) => a - b); + foundDocs.sort(({ no: a }, { no: b }) => a - b); expect(foundDocs[0]._id).to.equal(insertedDoc1._id); expect(foundDocs[0].data).to.equal(insertedDoc1.data); expect(foundDocs[1]._id).to.equal(insertedDoc2._id); expect(foundDocs[1].data).to.equal(insertedDoc2.data); - const projectedDocs = await db.find({flag: true}, {no: 1, _id: 0}) as Array; + const projectedDocs = await db.find({ flag: true }, { no: 1, _id: 0 }) as Array; expect(projectedDocs.length).to.equal(2); projectedDocs.forEach(data => { @@ -134,14 +144,14 @@ describe('Database', () => { it('Removing document', async () => { const data = 'Text data'; - const insertedDoc = await db.insert({data}) as Document; + const insertedDoc = await db.insert({ data }) as Document; expect(insertedDoc).to.be.a('object'); expect(insertedDoc.data).to.equal(data); - await db.remove({_id: insertedDoc._id}); + await db.remove({ _id: insertedDoc._id }); - const deletedDoc = await db.findOne({_id: insertedDoc._id}); + const deletedDoc = await db.findOne({ _id: insertedDoc._id }); expect(deletedDoc).to.be.null; }); @@ -150,31 +160,31 @@ describe('Database', () => { try { await db.insert({}); } catch (err) { - expect(err.message).to.equal('Cannot read property \'_id\' of undefined'); + expect((err as Error).message).to.equal('Cannot read property \'_id\' of undefined'); } try { - await db.find({size: {$invalidComparator: 1}}); + await db.find({ size: { $invalidComparator: 1 } }); } catch (err) { - expect(err.message).to.equal('Unknown comparison function $invalidComparator'); + expect((err as Error).message).to.equal('Unknown comparison function $invalidComparator'); } try { - await db.findOne({field: {$invalidComparator: 1}}); + await db.findOne({ field: { $invalidComparator: 1 } }); } catch (err) { - expect(err.message).to.equal('Unknown comparison function $invalidComparator'); + expect((err as Error).message).to.equal('Unknown comparison function $invalidComparator'); } try { - await db.update({field: {$undefinedComparator: 1}}); + await db.update({ field: { $undefinedComparator: 1 } }, {}); } catch (err) { - expect(err.message).to.equal('Unknown comparison function $undefinedComparator'); + expect((err as Error).message).to.equal('Unknown comparison function $undefinedComparator'); } try { - await db.remove({field: {$undefinedComparator: 1}}); + await db.remove({ field: { $undefinedComparator: 1 } }); } catch (err) { - expect(err.message).to.equal('Unknown comparison function $undefinedComparator'); + expect((err as Error).message).to.equal('Unknown comparison function $undefinedComparator'); } }); diff --git a/test/express.ts b/dev/test/express.ts similarity index 100% rename from test/express.ts rename to dev/test/express.ts diff --git a/test/models/alias.ts b/dev/test/models/alias.ts similarity index 97% rename from test/models/alias.ts rename to dev/test/models/alias.ts index d504694..1b9d3c2 100644 --- a/test/models/alias.ts +++ b/dev/test/models/alias.ts @@ -10,7 +10,7 @@ const aliases = database['aliases']; describe('Alias model', () => { after(() => { - const pathToDB = path.resolve(__dirname, '../../', config.get('database'), './aliases.db'); + const pathToDB = path.resolve(__dirname, '../../../', config.get('database'), './aliases.db'); if (fs.existsSync(pathToDB)) { fs.unlinkSync(pathToDB); diff --git a/test/models/file.ts b/dev/test/models/file.ts similarity index 92% rename from test/models/file.ts rename to dev/test/models/file.ts index b770be9..dfb0254 100644 --- a/test/models/file.ts +++ b/dev/test/models/file.ts @@ -10,7 +10,7 @@ const files = database['files']; describe('File model', () => { after(() => { - const pathToDB = path.resolve(__dirname, '../../', config.get('database'), './files.db'); + const pathToDB = path.resolve(__dirname, '../../../', config.get('database'), './files.db'); if (fs.existsSync(pathToDB)) { fs.unlinkSync(pathToDB); @@ -22,7 +22,7 @@ describe('File model', () => { expect(file.data).to.be.a('object'); - let {data} = file; + let { data } = file; expect(data._id).to.be.undefined; expect(data.name).to.be.undefined; @@ -103,7 +103,7 @@ describe('File model', () => { expect(savedFile.size).to.equal(initialData.size); expect(savedFile.mimetype).to.equal(initialData.mimetype); - const insertedFile = await files.findOne({_id: file._id}); + const insertedFile = await files.findOne({ _id: file._id }); expect(insertedFile._id).to.equal(file._id); expect(insertedFile.name).to.equal(file.name); @@ -126,7 +126,7 @@ describe('File model', () => { expect(file._id).to.equal(insertedFile._id); - const updatedFile = await files.findOne({_id: file._id}); + const updatedFile = await files.findOne({ _id: file._id }); expect(updatedFile._id).to.equal(savedFile._id); expect(updatedFile.name).to.equal(updateData.name); @@ -139,7 +139,7 @@ describe('File model', () => { expect(file._id).to.be.undefined; - const removedFile = await files.findOne({_id: updatedFile._id}); + const removedFile = await files.findOne({ _id: updatedFile._id }); expect(removedFile).to.be.null; }); @@ -160,7 +160,7 @@ describe('File model', () => { if (savedFile._id !== undefined){ const foundFile = await File.get(savedFile._id); - const {data} = foundFile; + const { data } = foundFile; expect(data._id).to.equal(savedFile._id); expect(data.name).to.equal(savedFile.name); @@ -189,7 +189,7 @@ describe('File model', () => { if (savedFile.filename !== undefined){ const foundFile = await File.getByFilename(savedFile.filename); - const {data} = foundFile; + const { data } = foundFile; expect(data._id).to.equal(savedFile._id); expect(data.name).to.equal(savedFile.name); @@ -222,7 +222,7 @@ describe('File model', () => { const savedFiles = await Promise.all(filesToSave.map(file => file.save())); - const foundFiles = await File.getAll({_id: {$in: savedFiles.map(file => file._id)}}); + const foundFiles = await File.getAll({ _id: { $in: savedFiles.map(file => file._id) } }); expect(foundFiles.length).to.equal(2); diff --git a/test/models/page.ts b/dev/test/models/page.ts similarity index 99% rename from test/models/page.ts rename to dev/test/models/page.ts index 6d3772f..be80e03 100644 --- a/test/models/page.ts +++ b/dev/test/models/page.ts @@ -21,7 +21,7 @@ describe('Page model', () => { }; after(() => { - const pathToDB = path.resolve(__dirname, '../../', config.get('database'), './pages.db'); + const pathToDB = path.resolve(__dirname, '../../../', config.get('database'), './pages.db'); if (fs.existsSync(pathToDB)) { fs.unlinkSync(pathToDB); diff --git a/test/models/pageOrder.ts b/dev/test/models/pageOrder.ts similarity index 96% rename from test/models/pageOrder.ts rename to dev/test/models/pageOrder.ts index c7ed7ef..e08494a 100644 --- a/test/models/pageOrder.ts +++ b/dev/test/models/pageOrder.ts @@ -9,7 +9,7 @@ const pagesOrder = database['pagesOrder']; describe('PageOrder model', () => { after(() => { - const pathToDB = path.resolve(__dirname, '../../', config.get('database'), './pagesOrder.db'); + const pathToDB = path.resolve(__dirname, '../../../', config.get('database'), './pagesOrder.db'); if (fs.existsSync(pathToDB)) { fs.unlinkSync(pathToDB); @@ -99,7 +99,7 @@ describe('PageOrder model', () => { await pageOrder.save(); pageOrder.push('3'); expect(pageOrder.data.order).to.be.an('array').that.is.not.empty; - if (pageOrder.data.order !== undefined){ + if (pageOrder.data.order !== undefined) { pageOrder.data.order.forEach((el) => { expect(el).to.be.an('string'); }); diff --git a/test/rcparser.ts b/dev/test/rcparser.ts similarity index 75% rename from test/rcparser.ts rename to dev/test/rcparser.ts index 5aa39e3..fe3b180 100644 --- a/test/rcparser.ts +++ b/dev/test/rcparser.ts @@ -40,10 +40,10 @@ describe('RC file parser test', () => { const normalConfig = { title: 'Documentation', menu: [ - {title: 'Option 1', uri: '/option1'}, - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} - ] + { title: 'Option 1', uri: '/option1' }, + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, + ], }; fs.writeFileSync(rcPath, JSON.stringify(normalConfig), 'utf8'); @@ -56,10 +56,10 @@ describe('RC file parser test', () => { it('Missed title', () => { const normalConfig = { menu: [ - {title: 'Option 1', uri: '/option1'}, - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} - ] + { title: 'Option 1', uri: '/option1' }, + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, + ], }; fs.writeFileSync(rcPath, JSON.stringify(normalConfig), 'utf8'); @@ -72,7 +72,7 @@ describe('RC file parser test', () => { it('Missed menu', () => { const normalConfig = { - title: 'Documentation' + title: 'Documentation', }; fs.writeFileSync(rcPath, JSON.stringify(normalConfig), 'utf8'); @@ -87,10 +87,10 @@ describe('RC file parser test', () => { const normalConfig = { title: 'Documentation', menu: { - 0: {title: 'Option 1', uri: '/option1'}, - 1: {title: 'Option 2', uri: '/option2'}, - 2: {title: 'Option 3', uri: '/option3'} - } + 0: { title: 'Option 1', uri: '/option1' }, + 1: { title: 'Option 2', uri: '/option2' }, + 2: { title: 'Option 3', uri: '/option3' }, + }, }; fs.writeFileSync(rcPath, JSON.stringify(normalConfig), 'utf8'); @@ -111,15 +111,15 @@ describe('RC file parser test', () => { title: 'Documentation', menu: [ 'Option 1', - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} - ] + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, + ], }; const expectedMenu = [ - {title: 'Option 1', uri: '/option-1'}, - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} + { title: 'Option 1', uri: '/option-1' }, + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, ]; fs.writeFileSync(rcPath, JSON.stringify(normalConfig), 'utf8'); @@ -134,25 +134,25 @@ describe('RC file parser test', () => { const normalConfig = { title: 'Documentation', menu: [ - [ {title: 'Option 1', uri: '/option1'} ], - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} - ] + [ { title: 'Option 1', uri: '/option1' } ], + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, + ], }; const expectedMenu = [ - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, ]; const spy = sinon.spy(console, 'log'); - + fs.writeFileSync(rcPath, JSON.stringify(normalConfig), 'utf8'); - + const parsedConfig = rcParser.getConfiguration(); - + expect(spy.calledOnce).to.be.true; expect(spy.calledWith('Menu option #1 in rc file must be a string or an object')).to.be.true; - + expect(parsedConfig.title).to.be.equal(normalConfig.title); expect(parsedConfig.menu).to.be.deep.equal(expectedMenu); spy.restore(); @@ -162,25 +162,25 @@ describe('RC file parser test', () => { const normalConfig = { title: 'Documentation', menu: [ - {uri: '/option1'}, - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} - ] + { uri: '/option1' }, + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, + ], }; const expectedMenu = [ - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, ]; const spy = sinon.spy(console, 'log'); - + fs.writeFileSync(rcPath, JSON.stringify(normalConfig), 'utf8'); - + const parsedConfig = rcParser.getConfiguration(); - + expect(spy.calledOnce).to.be.true; expect(spy.calledWith('Menu option #1 title must be a string.')).to.be.true; - + expect(parsedConfig.title).to.be.equal(normalConfig.title); expect(parsedConfig.menu).to.be.deep.equal(expectedMenu); spy.restore(); @@ -190,25 +190,25 @@ describe('RC file parser test', () => { const normalConfig = { title: 'Documentation', menu: [ - {title: [], uri: '/option1'}, - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} - ] + { title: [], uri: '/option1' }, + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, + ], }; const expectedMenu = [ - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, ]; const spy = sinon.spy(console, 'log'); - + fs.writeFileSync(rcPath, JSON.stringify(normalConfig), 'utf8'); - + const parsedConfig = rcParser.getConfiguration(); - + expect(spy.calledOnce).to.be.true; expect(spy.calledWith('Menu option #1 title must be a string.')).to.be.true; - + expect(parsedConfig.title).to.be.equal(normalConfig.title); expect(parsedConfig.menu).to.be.deep.equal(expectedMenu); spy.restore(); @@ -218,25 +218,25 @@ describe('RC file parser test', () => { const normalConfig = { title: 'Documentation', menu: [ - {title: 'Option 1'}, - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} - ] + { title: 'Option 1' }, + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, + ], }; const expectedMenu = [ - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, ]; const spy = sinon.spy(console, 'log'); - + fs.writeFileSync(rcPath, JSON.stringify(normalConfig), 'utf8'); - + const parsedConfig = rcParser.getConfiguration(); - + expect(spy.calledOnce).to.be.true; expect(spy.calledWith('Menu option #1 uri must be a string.')).to.be.true; - + expect(parsedConfig.title).to.be.equal(normalConfig.title); expect(parsedConfig.menu).to.be.deep.equal(expectedMenu); spy.restore(); @@ -246,25 +246,25 @@ describe('RC file parser test', () => { const normalConfig = { title: 'Documentation', menu: [ - {title: 'Option 1', uri: []}, - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} - ] + { title: 'Option 1', uri: [] }, + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, + ], }; const expectedMenu = [ - {title: 'Option 2', uri: '/option2'}, - {title: 'Option 3', uri: '/option3'} + { title: 'Option 2', uri: '/option2' }, + { title: 'Option 3', uri: '/option3' }, ]; const spy = sinon.spy(console, 'log'); - + fs.writeFileSync(rcPath, JSON.stringify(normalConfig), 'utf8'); - + const parsedConfig = rcParser.getConfiguration(); - + expect(spy.calledOnce).to.be.true; expect(spy.calledWith('Menu option #1 uri must be a string.')).to.be.true; - + expect(parsedConfig.title).to.be.equal(normalConfig.title); expect(parsedConfig.menu).to.be.deep.equal(expectedMenu); spy.restore(); diff --git a/test/rest/aliases.ts b/dev/test/rest/aliases.ts similarity index 100% rename from test/rest/aliases.ts rename to dev/test/rest/aliases.ts diff --git a/test/rest/pages.ts b/dev/test/rest/pages.ts similarity index 96% rename from test/rest/pages.ts rename to dev/test/rest/pages.ts index 36483ad..06bf583 100644 --- a/test/rest/pages.ts +++ b/dev/test/rest/pages.ts @@ -32,9 +32,9 @@ describe('Pages REST: ', () => { }); after(async () => { - const pathToPagesDB = path.resolve(__dirname, '../../', config.get('database'), './pages.db'); - const pathToPagesOrderDB = path.resolve(__dirname, '../../', config.get('database'), './pagesOrder.db'); - const pathToAliasesDB = path.resolve(__dirname, '../../', config.get('database'), './aliases.db'); + const pathToPagesDB = path.resolve(__dirname, '../../../', config.get('database'), './pages.db'); + const pathToPagesOrderDB = path.resolve(__dirname, '../../../', config.get('database'), './pagesOrder.db'); + const pathToAliasesDB = path.resolve(__dirname, '../../../', config.get('database'), './aliases.db'); if (fs.existsSync(pathToPagesDB)) { fs.unlinkSync(pathToPagesDB); @@ -94,15 +94,14 @@ describe('Pages REST: ', () => { it('Page data validation on create', async () => { const res = await agent .put('/api/page') - .send({someField: 'Some text'}); + .send({ someField: 'Some text' }); expect(res).to.have.status(400); expect(res).to.be.json; - const {success, error} = res.body; + const { success, error } = res.body; expect(success).to.be.false; - // expect(error).to.equal('Error: Some of required fields is missed'); expect(error).to.equal('validationError'); }); diff --git a/test/rest/test_file.json b/dev/test/rest/test_file.json similarity index 100% rename from test/rest/test_file.json rename to dev/test/rest/test_file.json diff --git a/test/rest/test_image.png b/dev/test/rest/test_image.png similarity index 100% rename from test/rest/test_image.png rename to dev/test/rest/test_image.png diff --git a/test/rest/transport.ts b/dev/test/rest/transport.ts similarity index 91% rename from test/rest/transport.ts rename to dev/test/rest/transport.ts index eeef7d5..1abacb4 100644 --- a/test/rest/transport.ts +++ b/dev/test/rest/transport.ts @@ -25,7 +25,7 @@ describe('Transport routes: ', () => { }); after(async () => { - const pathToDB = path.resolve(__dirname, '../../', config.get('database'), './files.db'); + const pathToDB = path.resolve(__dirname, '../../../', config.get('database'), './files.db'); if (fs.existsSync(pathToDB)) { fs.unlinkSync(pathToDB); @@ -38,7 +38,7 @@ describe('Transport routes: ', () => { it('Uploading an image', async () => { const name = 'test_image.png'; - const image = fs.readFileSync(path.resolve(`./test/rest/${name}`)); + const image = fs.readFileSync(path.resolve(`./dev/test/rest/${name}`)); const res = await agent .post('/api/transport/image') .attach('image', image, name); @@ -61,12 +61,12 @@ describe('Transport routes: ', () => { if (type !== undefined) { expect(file.mimetype).to.equal(type.mime); expect(file.size).to.equal(image.byteLength); - + expect(file.path).to.be.not.undefined; - if (file.path !== undefined){ + if (file.path !== undefined) { const getRes = await agent .get(file.path); - + expect(getRes).to.have.status(200); expect(getRes).to.have.header('content-type', type.mime); } @@ -75,7 +75,7 @@ describe('Transport routes: ', () => { it('Uploading an image with map option', async () => { const name = 'test_image.png'; - const image = fs.readFileSync(path.resolve(`./test/rest/${name}`)); + const image = fs.readFileSync(path.resolve(`./dev/test/rest/${name}`)); const res = await agent .post('/api/transport/image') .attach('image', image, name) @@ -96,7 +96,7 @@ describe('Transport routes: ', () => { it('Uploading a file', async () => { const name = 'test_file.json'; - const json = fs.readFileSync(path.resolve(`./test/rest/${name}`)); + const json = fs.readFileSync(path.resolve(`./dev/test/rest/${name}`)); const res = await agent .post('/api/transport/file') .attach('file', json, name); @@ -127,7 +127,7 @@ describe('Transport routes: ', () => { it('Uploading a file with map option', async () => { const name = 'test_file.json'; - const json = fs.readFileSync(path.resolve(`./test/rest/${name}`)); + const json = fs.readFileSync(path.resolve(`./dev/test/rest/${name}`)); const res = await agent .post('/api/transport/file') .attach('file', json, name) @@ -207,7 +207,7 @@ describe('Transport routes: ', () => { expect(body.success).to.equal(0); const name = 'test_file.json'; - const json = fs.readFileSync(path.resolve(`./test/rest/${name}`)); + const json = fs.readFileSync(path.resolve(`./dev/test/rest/${name}`)); res = await agent .post('/api/transport/file') .attach('file', json, name) @@ -230,7 +230,7 @@ describe('Transport routes: ', () => { expect(body.success).to.equal(0); let name = 'test_file.json'; - const json = fs.readFileSync(path.resolve(`./test/rest/${name}`)); + const json = fs.readFileSync(path.resolve(`./dev/test/rest/${name}`)); res = await agent .post('/api/transport/image') .attach('image', json, name); @@ -238,7 +238,7 @@ describe('Transport routes: ', () => { expect(res).to.have.status(400); name = 'test_image.png'; - const image = fs.readFileSync(path.resolve(`./test/rest/${name}`)); + const image = fs.readFileSync(path.resolve(`./dev/test/rest/${name}`)); res = await agent .post('/api/transport/image') .attach('image', image, name) diff --git a/src/frontend/.postcssrc b/frontend/.postcssrc similarity index 100% rename from src/frontend/.postcssrc rename to frontend/.postcssrc diff --git a/src/frontend/js/app.js b/frontend/js/app.js similarity index 100% rename from src/frontend/js/app.js rename to frontend/js/app.js diff --git a/src/frontend/js/classes/codeStyler.js b/frontend/js/classes/codeStyler.js similarity index 100% rename from src/frontend/js/classes/codeStyler.js rename to frontend/js/classes/codeStyler.js diff --git a/src/frontend/js/classes/editor.js b/frontend/js/classes/editor.js similarity index 100% rename from src/frontend/js/classes/editor.js rename to frontend/js/classes/editor.js diff --git a/src/frontend/js/modules/extensions.js b/frontend/js/modules/extensions.js similarity index 100% rename from src/frontend/js/modules/extensions.js rename to frontend/js/modules/extensions.js diff --git a/src/frontend/js/modules/page.js b/frontend/js/modules/page.js similarity index 100% rename from src/frontend/js/modules/page.js rename to frontend/js/modules/page.js diff --git a/src/frontend/js/modules/writing.js b/frontend/js/modules/writing.js similarity index 100% rename from src/frontend/js/modules/writing.js rename to frontend/js/modules/writing.js diff --git a/src/frontend/styles/carbon.pcss b/frontend/styles/carbon.pcss similarity index 100% rename from src/frontend/styles/carbon.pcss rename to frontend/styles/carbon.pcss diff --git a/src/frontend/styles/components/aside.pcss b/frontend/styles/components/aside.pcss similarity index 100% rename from src/frontend/styles/components/aside.pcss rename to frontend/styles/components/aside.pcss diff --git a/src/frontend/styles/components/auth.pcss b/frontend/styles/components/auth.pcss similarity index 100% rename from src/frontend/styles/components/auth.pcss rename to frontend/styles/components/auth.pcss diff --git a/src/frontend/styles/components/header.pcss b/frontend/styles/components/header.pcss similarity index 100% rename from src/frontend/styles/components/header.pcss rename to frontend/styles/components/header.pcss diff --git a/src/frontend/styles/components/landing.pcss b/frontend/styles/components/landing.pcss similarity index 100% rename from src/frontend/styles/components/landing.pcss rename to frontend/styles/components/landing.pcss diff --git a/src/frontend/styles/components/page.pcss b/frontend/styles/components/page.pcss similarity index 100% rename from src/frontend/styles/components/page.pcss rename to frontend/styles/components/page.pcss diff --git a/src/frontend/styles/components/writing.pcss b/frontend/styles/components/writing.pcss similarity index 100% rename from src/frontend/styles/components/writing.pcss rename to frontend/styles/components/writing.pcss diff --git a/src/frontend/styles/diff.pcss b/frontend/styles/diff.pcss similarity index 100% rename from src/frontend/styles/diff.pcss rename to frontend/styles/diff.pcss diff --git a/src/frontend/styles/layout.pcss b/frontend/styles/layout.pcss similarity index 100% rename from src/frontend/styles/layout.pcss rename to frontend/styles/layout.pcss diff --git a/src/frontend/styles/main.pcss b/frontend/styles/main.pcss similarity index 100% rename from src/frontend/styles/main.pcss rename to frontend/styles/main.pcss diff --git a/src/frontend/styles/vars.pcss b/frontend/styles/vars.pcss similarity index 100% rename from src/frontend/styles/vars.pcss rename to frontend/styles/vars.pcss diff --git a/src/frontend/svg/loader.svg b/frontend/svg/loader.svg similarity index 100% rename from src/frontend/svg/loader.svg rename to frontend/svg/loader.svg diff --git a/src/frontend/svg/menu.svg b/frontend/svg/menu.svg similarity index 100% rename from src/frontend/svg/menu.svg rename to frontend/svg/menu.svg diff --git a/src/frontend/svg/plus.svg b/frontend/svg/plus.svg similarity index 100% rename from src/frontend/svg/plus.svg rename to frontend/svg/plus.svg diff --git a/package.json b/package.json index 2a41800..70548e5 100644 --- a/package.json +++ b/package.json @@ -9,16 +9,17 @@ "> 1%" ], "scripts": { - "start": "cross-env NODE_ENV=production nodemon --config nodemon.json ./bin/server.js", - "start:ts": "cross-env NODE_ENV=production nodemon --config nodemon.json ./bin/server.ts", - "start:dev": "cross-env NODE_ENV=development nodemon --config nodemon.json ./bin/server.ts", - "test": "cross-env NODE_ENV=testing mocha --recursive ./test --exit", - "test:ts": "cross-env NODE_ENV=testing ts-mocha ./test/*.ts ./test/**/*.ts --exit", - "lint": "eslint --fix --cache --ext .ts ./src", - "build": "webpack ./src/frontend/js/app.js --o='./public/dist/[name].bundle.js' --output-library=Docs --output-public-path=/dist/ -p --mode=production", - "build:dev": "webpack ./src/frontend/js/app.js --o='./public/dist/[name].bundle.js' --output-library=Docs --output-public-path=/dist/ -p --mode=development --watch", + "start": "cross-env NODE_ENV=production nodemon --config nodemon.json ./dist/bin/server.js", + "start:ts": "cross-env NODE_ENV=production nodemon --config nodemon.json ./dev/bin/server.ts", + "start:dev": "cross-env NODE_ENV=development nodemon --config nodemon.json ./dev/bin/server.ts", + "test": "cross-env NODE_ENV=testing mocha --recursive ./dist/test --exit", + "test:ts": "cross-env NODE_ENV=testing ts-mocha ./dev/test/*.ts ./dev/test/**/*.ts --exit", + "lint": "eslint --fix --cache --ext .ts ./dev/src", + "build": "webpack ./frontend/js/app.js --o='./public/dist/[name].bundle.js' --output-library=Docs --output-public-path=/dist/ -p --mode=production", + "build:dev": "webpack ./frontend/js/app.js --o='./public/dist/[name].bundle.js' --output-library=Docs --output-public-path=/dist/ -p --mode=development --watch", "precommit": "yarn lint && yarn test:ts", - "generatePassword": "ts-node ./generatePassword.ts", + "generatePassword:ts": "ts-node ./dev/generatePassword.ts", + "generatePassword": "node ./dist/generatePassword.js", "editor-upgrade": "yarn add -D @editorjs/{editorjs,header,code,delimiter,list,link,image,table,inline-code,marker,warning,checklist,raw}@latest", "compile": "npx tsc" }, diff --git a/tsconfig.json b/tsconfig.json index d4d9998..68155e3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,7 @@ // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ // "sourceMap": true, /* Generates corresponding '.map' file. */ // "outFile": "./", /* Concatenate and emit output to single file. */ - // "outDir": "./", /* Redirect output structure to the directory. */ + "outDir": "./dist/", /* Redirect output structure to the directory. */ // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ // "composite": true, /* Enable project compilation */ // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ diff --git a/src/views/auth.twig b/views/auth.twig similarity index 100% rename from src/views/auth.twig rename to views/auth.twig diff --git a/src/views/components/aside.twig b/views/components/aside.twig similarity index 100% rename from src/views/components/aside.twig rename to views/components/aside.twig diff --git a/src/views/components/header.twig b/views/components/header.twig similarity index 100% rename from src/views/components/header.twig rename to views/components/header.twig diff --git a/src/views/error.twig b/views/error.twig similarity index 100% rename from src/views/error.twig rename to views/error.twig diff --git a/src/views/layout.twig b/views/layout.twig similarity index 100% rename from src/views/layout.twig rename to views/layout.twig diff --git a/src/views/pages/blocks/checklist.twig b/views/pages/blocks/checklist.twig similarity index 100% rename from src/views/pages/blocks/checklist.twig rename to views/pages/blocks/checklist.twig diff --git a/src/views/pages/blocks/code.twig b/views/pages/blocks/code.twig similarity index 100% rename from src/views/pages/blocks/code.twig rename to views/pages/blocks/code.twig diff --git a/src/views/pages/blocks/delimiter.twig b/views/pages/blocks/delimiter.twig similarity index 100% rename from src/views/pages/blocks/delimiter.twig rename to views/pages/blocks/delimiter.twig diff --git a/src/views/pages/blocks/header.twig b/views/pages/blocks/header.twig similarity index 100% rename from src/views/pages/blocks/header.twig rename to views/pages/blocks/header.twig diff --git a/src/views/pages/blocks/image.twig b/views/pages/blocks/image.twig similarity index 100% rename from src/views/pages/blocks/image.twig rename to views/pages/blocks/image.twig diff --git a/src/views/pages/blocks/linkTool.twig b/views/pages/blocks/linkTool.twig similarity index 100% rename from src/views/pages/blocks/linkTool.twig rename to views/pages/blocks/linkTool.twig diff --git a/src/views/pages/blocks/list.twig b/views/pages/blocks/list.twig similarity index 100% rename from src/views/pages/blocks/list.twig rename to views/pages/blocks/list.twig diff --git a/src/views/pages/blocks/paragraph.twig b/views/pages/blocks/paragraph.twig similarity index 100% rename from src/views/pages/blocks/paragraph.twig rename to views/pages/blocks/paragraph.twig diff --git a/src/views/pages/blocks/raw.twig b/views/pages/blocks/raw.twig similarity index 100% rename from src/views/pages/blocks/raw.twig rename to views/pages/blocks/raw.twig diff --git a/src/views/pages/blocks/table.twig b/views/pages/blocks/table.twig similarity index 100% rename from src/views/pages/blocks/table.twig rename to views/pages/blocks/table.twig diff --git a/src/views/pages/blocks/warning.twig b/views/pages/blocks/warning.twig similarity index 100% rename from src/views/pages/blocks/warning.twig rename to views/pages/blocks/warning.twig diff --git a/src/views/pages/form.twig b/views/pages/form.twig similarity index 100% rename from src/views/pages/form.twig rename to views/pages/form.twig diff --git a/src/views/pages/index.twig b/views/pages/index.twig similarity index 100% rename from src/views/pages/index.twig rename to views/pages/index.twig diff --git a/src/views/pages/page.twig b/views/pages/page.twig similarity index 100% rename from src/views/pages/page.twig rename to views/pages/page.twig