Skip to content

Commit

Permalink
fix favicon problem
Browse files Browse the repository at this point in the history
  • Loading branch information
nikmel2803 committed Dec 28, 2022
1 parent c8a2b87 commit 6e2cb1b
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 27 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "codex.docs",
"license": "Apache-2.0",
"version": "v2.2.0-rc.13",
"version": "v2.2.0-rc.16",
"type": "module",
"bin": {
"codex.docs": "dist/backend/app.js"
Expand Down
35 changes: 18 additions & 17 deletions src/backend/build-static.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,24 @@ export default async function buildStatic(): Promise<void> {
return;
}

console.log('Copy public directory');
const publicDir = path.resolve(dirname, '../../public');

console.log(`Copy from ${publicDir} to ${distPath}`);

try {
await fse.copy(publicDir, distPath);
console.log('Public directory copied');
} catch (e) {
console.log('Error while copying public directory');
console.error(e);
}

const favicon = appConfig.favicon ? await downloadFavicon(appConfig.favicon, distPath, '') : {
destination: '/favicon.png',
type: 'image/png',
};


/**
* Renders single page
Expand All @@ -88,10 +106,6 @@ export default async function buildStatic(): Promise<void> {
const previousPage = await PagesFlatArray.getPageBefore(pageId);
const nextPage = await PagesFlatArray.getPageAfter(pageId);
const menu = createMenuTree(parentIdOfRootPages, allPages, pagesOrder, 2);
const favicon = appConfig.favicon ? await downloadFavicon(appConfig.favicon, distPath) : {
destination: '/favicon.png',
type: 'image/png',
};

const result = await renderTemplate('./views/pages/page.twig', {
page,
Expand Down Expand Up @@ -151,19 +165,6 @@ export default async function buildStatic(): Promise<void> {
}
console.log('Static files built');

console.log('Copy public directory');
const publicDir = path.resolve(dirname, '../../public');

console.log(`Copy from ${publicDir} to ${distPath}`);

try {
await fse.copy(publicDir, distPath);
console.log('Public directory copied');
} catch (e) {
console.log('Error while copying public directory');
console.error(e);
}

if (appConfig.uploads.driver === 'local') {
console.log('Copy uploads directory');
await fse.copy(path.resolve(cwd, appConfig.uploads.local.path), path.resolve(distPath, 'uploads'));
Expand Down
17 changes: 8 additions & 9 deletions src/backend/utils/downloadFavicon.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import path from 'path';
import fs from 'fs';
import fs from 'fs/promises';
import fetch, { RequestInit } from 'node-fetch';

/**
Expand Down Expand Up @@ -32,9 +32,10 @@ function checkIsUrl(str: string): boolean {
*
* @param destination - url or path of favicon
* @param faviconFolder - folder to save favicon
* @param subRoute - subroute from which the favicon will be served
* @returns { Promise<FaviconData> } - Promise with data about favicon
*/
export async function downloadFavicon(destination: string, faviconFolder: string): Promise<FaviconData> {
export async function downloadFavicon(destination: string, faviconFolder: string, subRoute = '/favicon'): Promise<FaviconData> {
// Check of destination is empty
if (!destination) {
throw Error('Favicon destination is empty');
Expand All @@ -48,8 +49,10 @@ export async function downloadFavicon(destination: string, faviconFolder: string

// Check if string is url
if (!checkIsUrl(destination)) {
await fs.copyFile(destination, path.join(faviconFolder, filename));

return {
destination: `/${filename}`,
destination: `${subRoute}/${filename}`,
type: `image/${format}`,
} as FaviconData;
}
Expand All @@ -72,14 +75,10 @@ export async function downloadFavicon(destination: string, faviconFolder: string
const filePath = path.join(faviconFolder, `favicon.${format}`);

// Save file
await fs.writeFile(filePath, fileData, (err) => {
if (err) {
console.log(err);
}
});
await fs.writeFile(filePath, fileData);

return {
destination: `/favicon/favicon.${format}`,
destination: `${subRoute}/favicon.${format}`,
type: `image/${format}`,
} as FaviconData;
}

0 comments on commit 6e2cb1b

Please sign in to comment.