31 lines
611 B
JavaScript
Executable file
31 lines
611 B
JavaScript
Executable file
'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
|