File

src/module/helper/helper.service.ts

Index

Methods

Methods

Static addFileName
addFileName(file_folder_path: string, file_name: string, default_ext: string)

Fájlnevet generál a megadott fájlnév alapján a megadott mappához. Ha a fájlnév létezik a megadott mappában, akkor számmal bővül a neve. Ha nem létezik, akkor változatlanul marad. Fájlnév csak ASCII karaktereket fog tartalmazni, de szóközt nem.

Parameters :
Name Type Optional Default value Description
file_folder_path string No

Mappa, ahova a fájlnevet hozzuk létre.

file_name string No

Fájl neve, amit vizsgálunk a megadott mappában.

default_ext string No ''

Fájl kiterjesztése, ha a fájlnévben nincs benne, pont megadása fontos (példa: .png, .img).

Returns : string | false

Ha üres sztring vagy nem létezik a mappa, vagy üres fájlnevet adunk meg, akkor FALSE, egyébként az új fájlnév

Static formatDate
formatDate(date)

A paraméterként megadott dátumot adja vissza yyyy.mm.dd. formátumban

Parameters :
Name Optional Description
date No

Formázandó dátum (dátumsztring vagy timestamp * 1000 (ms))

Returns : string
import { Injectable } from '@nestjs/common';
import * as fs from 'fs';
import * as path from 'path';

@Injectable()
export class HelperService {

    /**
     * Fájlnevet generál a megadott fájlnév alapján a megadott mappához.
     * Ha a fájlnév létezik a megadott mappában, akkor számmal bővül a neve. Ha nem létezik, akkor változatlanul marad.
     * Fájlnév csak ASCII karaktereket fog tartalmazni, de szóközt nem.
     * 
     * @param file_folder_path Mappa, ahova a fájlnevet hozzuk létre.
     * @param file_name Fájl neve, amit vizsgálunk a megadott mappában.
     * @param default_ext Fájl kiterjesztése, ha a fájlnévben nincs benne, pont megadása fontos (példa: .png, .img).
     * 
     * @returns Ha üres sztring vagy nem létezik a mappa, vagy üres fájlnevet adunk meg, akkor FALSE, egyébként az új fájlnév
     */
    static addFileName(file_folder_path: string, file_name: string, default_ext = ''){
        if(file_folder_path == '' || file_name == '' || !fs.existsSync(file_folder_path) || !fs.statSync(file_folder_path).isDirectory()){
            return false;
        }

        let extension = '';
        let name = '';

        extension = path.extname(file_name);
    
        if(extension === ''){
            name = file_name;
            extension = default_ext;
        }else{
            name = file_name.substring(0, file_name.indexOf(extension));
        }

        name = removeNotASCIIChars(name.replace(/\s+/g, ''));

        if(name == '') name = 'file';

        let ok = false;
        let i = 0;
        let new_name = name + extension;

        while(ok === false){
            if(fs.existsSync(path.resolve(file_folder_path, new_name))){
                new_name = `${name}_${i}${extension}`;
            }else{
                ok = true;
            }

            ++i;
        }

        return new_name;
    }

    /**
     * A paraméterként megadott dátumot adja vissza yyyy.mm.dd. formátumban
     * 
     * @param date Formázandó dátum (dátumsztring vagy timestamp * 1000 (ms))
     */
    static formatDate(date) {
        const d = new Date(date);
        let month = '' + (d.getMonth() + 1);
        let day = '' + d.getDate();
        let year = d.getFullYear();

        if (month.length < 2){
            month = '0' + month;
        }

        if (day.length < 2){ 
            day = '0' + day;
        }

        return [year, month, day].join('.') + '.';
    }

}

/**
 * 
 * Nem ASCII karakterek eltávolítása a megadott sztringből.
 * 
 * @param input Sztring, amiből a nem ASCII karaktereket eltávoltjuk.
 * 
 * @return Átalakított szöveg.
 */
function removeNotASCIIChars(input) {
    let output = "";

    for (let i = 0; i < input.length; i++) {
        if (input.charCodeAt(i) <= 127) {
            output += input.charAt(i);
        }
    }

    return output;
}

result-matching ""

    No results matching ""