45 lines
844 B
JavaScript
45 lines
844 B
JavaScript
var path = require('path')
|
|
var url = require('url')
|
|
var resolve = require('resolve')
|
|
|
|
module.exports = mapEntry
|
|
function mapEntry (file) {
|
|
file = file.toString()
|
|
if (file === '.') {
|
|
file = entry()
|
|
}
|
|
|
|
var parts
|
|
// absolute path with letter drive, eg C:/
|
|
if (/^[A-Z]:[/\\]+/.test(file)) {
|
|
parts = file.split(/:(?:(?=[^/\\]))/)
|
|
} else {
|
|
parts = file.split(':')
|
|
}
|
|
|
|
var pathFrom, pathUrl
|
|
|
|
if (parts.length > 1 && parts[1].length > 0) {
|
|
pathFrom = parts[0]
|
|
pathUrl = parts[1]
|
|
|
|
if (pathFrom === '.') {
|
|
pathFrom = entry()
|
|
}
|
|
} else {
|
|
pathFrom = file
|
|
pathUrl = url.parse(path.basename(pathFrom)).pathname
|
|
}
|
|
|
|
return {
|
|
url: pathUrl,
|
|
from: pathFrom
|
|
}
|
|
}
|
|
|
|
function entry () {
|
|
var cwd = process.cwd()
|
|
var file = resolve.sync('.', { basedir: cwd })
|
|
return file || 'index.js'
|
|
}
|