32 lines
611 B
JavaScript
32 lines
611 B
JavaScript
|
'use strict'
|
||
|
|
||
|
const path = require('path')
|
||
|
const { URL } = require('url')
|
||
|
|
||
|
/**
|
||
|
* Url object used for tracking files in `file-list.js`.
|
||
|
*/
|
||
|
class Url {
|
||
|
constructor (path, type, integrity) {
|
||
|
this.path = path
|
||
|
this.originalPath = path
|
||
|
this.type = type
|
||
|
this.integrity = integrity
|
||
|
this.isUrl = true
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Detect type from the file extension in the path part of the URL.
|
||
|
* @returns {string} detected file type or empty string
|
||
|
*/
|
||
|
detectType () {
|
||
|
return path.extname(new URL(this.path).pathname).slice(1)
|
||
|
}
|
||
|
|
||
|
toString () {
|
||
|
return this.path
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = Url
|