All files service.js

100% Statements 8/8
100% Branches 0/0
100% Functions 3/3
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41                        3x     1x         1x   1x 1x 1x                   1x 1x          
import fs from 'fs'
import fsPromises from 'fs/promises'
 
import config from './config.js'
import {
  join,
  extname
} from 'path'
const {
  dir: {
    publicDirectory
  }
} = config
export class Service {
  createFileStream(filename) {
    return fs.createReadStream(filename)
  }
 
  async getFileInfo(file) {
    // file = home/index.html
    const fullFilePath = join(publicDirectory, file)
    // valida se existe, se não existe estoura erro!!
    await fsPromises.access(fullFilePath)
    const fileType = extname(fullFilePath)
    return {
      type: fileType,
      name: fullFilePath
    }
  }
 
  async getFileStream(file) {
    const {
      name,
      type
    } = await this.getFileInfo(file)
    return {
      stream: this.createFileStream(name),
      type
    }
  }
}