node-script-url
Advanced tools
Comparing version
@@ -1,10 +0,6 @@ | ||
import { fromPosixPath, fromSysPath, fromWindowsPath, toPosixPath, toSysPath, toWindowsPath } from "furi"; | ||
import { toPosixPath, toSysPath, toWindowsPath } from "furi"; | ||
import isWindows from "is-windows"; | ||
import sysPath from "path"; | ||
import url from "url"; | ||
export type ModuleType = "cjs" | "esm"; | ||
export type ParsedScriptUrl = FileScriptUrl | InternalScriptUrl; | ||
export type ScriptUrl = FileScriptUrl | InternalScriptUrl; | ||
/** | ||
@@ -14,6 +10,15 @@ * Regular file. | ||
export interface FileScriptUrl { | ||
isRegularFile: true; | ||
scriptUrl: string; | ||
moduleType: ModuleType; | ||
/** | ||
* Input URL | ||
*/ | ||
url: string; | ||
/** | ||
* Boolean indicating if this is a non-internal `file://` URL (always `true`). | ||
*/ | ||
isFileUrl: true; | ||
/** | ||
* Corresponding file path. | ||
*/ | ||
path: string; | ||
@@ -26,53 +31,34 @@ } | ||
export interface InternalScriptUrl { | ||
isRegularFile: false; | ||
scriptUrl: string; | ||
/** | ||
* Input URL | ||
*/ | ||
url: string; | ||
/** | ||
* Boolean indicating if this is a non-internal `file://` URL (always `false`). | ||
*/ | ||
isFileUrl: false; | ||
} | ||
export function parseSys(scriptUrl: string): ScriptUrl { | ||
return isWindows() ? parseWindows(scriptUrl) : parsePosix(scriptUrl); | ||
export function parseSys(url: string): ParsedScriptUrl { | ||
return isWindows() ? parseWindows(url) : parsePosix(url); | ||
} | ||
export function parsePosix(scriptUrl: string): ScriptUrl { | ||
return parse(scriptUrl, toPosixPath, fromPosixPath, sysPath.posix.isAbsolute); | ||
export function parsePosix(url: string): ParsedScriptUrl { | ||
return parse(url, toPosixPath); | ||
} | ||
export function parseWindows(scriptUrl: string): ScriptUrl { | ||
return parse(scriptUrl, toWindowsPath, fromWindowsPath, sysPath.win32.isAbsolute); | ||
export function parseWindows(url: string): ParsedScriptUrl { | ||
return parse(url, toWindowsPath); | ||
} | ||
function parse( | ||
scriptUrl: string, | ||
url: string, | ||
toPath: typeof toSysPath, | ||
fromPath: typeof fromSysPath, | ||
isAbsolutePath: typeof sysPath.isAbsolute, | ||
): ScriptUrl { | ||
if (isAbsolutePath(scriptUrl)) { | ||
return { | ||
isRegularFile: true, | ||
scriptUrl, | ||
moduleType: "cjs", | ||
url: fromPath(scriptUrl).href, | ||
path: scriptUrl, | ||
}; | ||
): ParsedScriptUrl { | ||
if (url.startsWith("file://")) { | ||
return {url, isFileUrl: true, path: toPath(url)}; | ||
} else { | ||
return {url, isFileUrl: false}; | ||
} | ||
try { | ||
const urlObj: url.URL = new url.URL(scriptUrl); | ||
if (urlObj.protocol !== "file:") { | ||
return {isRegularFile: false, scriptUrl}; | ||
} | ||
return { | ||
isRegularFile: true, | ||
scriptUrl, | ||
moduleType: "esm", | ||
url: urlObj.href, | ||
path: toPath(urlObj.href), | ||
}; | ||
} catch (err) { | ||
if (err.code === "ERR_INVALID_URL") { | ||
return {isRegularFile: false, scriptUrl}; | ||
} else { | ||
throw err; | ||
} | ||
} | ||
} |
@@ -0,1 +1,7 @@ | ||
# 0.2.0 (2018-11-27) | ||
- **[Breaking change]** Update lib for Node 11. The new result only has | ||
`url` (input), `isFileUrl` (boolean indicating a regular `file://` URL) and | ||
an eventual `path`. | ||
# 0.1.2 (2018-10-20) | ||
@@ -2,0 +8,0 @@ |
@@ -1,3 +0,2 @@ | ||
export declare type ModuleType = "cjs" | "esm"; | ||
export declare type ScriptUrl = FileScriptUrl | InternalScriptUrl; | ||
export declare type ParsedScriptUrl = FileScriptUrl | InternalScriptUrl; | ||
/** | ||
@@ -7,6 +6,13 @@ * Regular file. | ||
export interface FileScriptUrl { | ||
isRegularFile: true; | ||
scriptUrl: string; | ||
moduleType: ModuleType; | ||
/** | ||
* Input URL | ||
*/ | ||
url: string; | ||
/** | ||
* Boolean indicating if this is a non-internal `file://` URL (always `true`). | ||
*/ | ||
isFileUrl: true; | ||
/** | ||
* Corresponding file path. | ||
*/ | ||
path: string; | ||
@@ -18,7 +24,13 @@ } | ||
export interface InternalScriptUrl { | ||
isRegularFile: false; | ||
scriptUrl: string; | ||
/** | ||
* Input URL | ||
*/ | ||
url: string; | ||
/** | ||
* Boolean indicating if this is a non-internal `file://` URL (always `false`). | ||
*/ | ||
isFileUrl: false; | ||
} | ||
export declare function parseSys(scriptUrl: string): ScriptUrl; | ||
export declare function parsePosix(scriptUrl: string): ScriptUrl; | ||
export declare function parseWindows(scriptUrl: string): ScriptUrl; | ||
export declare function parseSys(url: string): ParsedScriptUrl; | ||
export declare function parsePosix(url: string): ParsedScriptUrl; | ||
export declare function parseWindows(url: string): ParsedScriptUrl; |
50
index.js
@@ -8,49 +8,23 @@ "use strict"; | ||
const is_windows_1 = __importDefault(require("is-windows")); | ||
const path_1 = __importDefault(require("path")); | ||
const url_1 = __importDefault(require("url")); | ||
function parseSys(scriptUrl) { | ||
return is_windows_1.default() ? parseWindows(scriptUrl) : parsePosix(scriptUrl); | ||
function parseSys(url) { | ||
return is_windows_1.default() ? parseWindows(url) : parsePosix(url); | ||
} | ||
exports.parseSys = parseSys; | ||
function parsePosix(scriptUrl) { | ||
return parse(scriptUrl, furi_1.toPosixPath, furi_1.fromPosixPath, path_1.default.posix.isAbsolute); | ||
function parsePosix(url) { | ||
return parse(url, furi_1.toPosixPath); | ||
} | ||
exports.parsePosix = parsePosix; | ||
function parseWindows(scriptUrl) { | ||
return parse(scriptUrl, furi_1.toWindowsPath, furi_1.fromWindowsPath, path_1.default.win32.isAbsolute); | ||
function parseWindows(url) { | ||
return parse(url, furi_1.toWindowsPath); | ||
} | ||
exports.parseWindows = parseWindows; | ||
function parse(scriptUrl, toPath, fromPath, isAbsolutePath) { | ||
if (isAbsolutePath(scriptUrl)) { | ||
return { | ||
isRegularFile: true, | ||
scriptUrl, | ||
moduleType: "cjs", | ||
url: fromPath(scriptUrl).href, | ||
path: scriptUrl, | ||
}; | ||
function parse(url, toPath) { | ||
if (url.startsWith("file://")) { | ||
return { url, isFileUrl: true, path: toPath(url) }; | ||
} | ||
try { | ||
const urlObj = new url_1.default.URL(scriptUrl); | ||
if (urlObj.protocol !== "file:") { | ||
return { isRegularFile: false, scriptUrl }; | ||
} | ||
return { | ||
isRegularFile: true, | ||
scriptUrl, | ||
moduleType: "esm", | ||
url: urlObj.href, | ||
path: toPath(urlObj.href), | ||
}; | ||
else { | ||
return { url, isFileUrl: false }; | ||
} | ||
catch (err) { | ||
if (err.code === "ERR_INVALID_URL") { | ||
return { isRegularFile: false, scriptUrl }; | ||
} | ||
else { | ||
throw err; | ||
} | ||
} | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBMEc7QUFDMUcsNERBQW1DO0FBQ25DLGdEQUEyQjtBQUMzQiw4Q0FBc0I7QUF5QnRCLGtCQUF5QixTQUFpQjtJQUN4QyxPQUFPLG9CQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUZELDRCQUVDO0FBRUQsb0JBQTJCLFNBQWlCO0lBQzFDLE9BQU8sS0FBSyxDQUFDLFNBQVMsRUFBRSxrQkFBVyxFQUFFLG9CQUFhLEVBQUUsY0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBRkQsZ0NBRUM7QUFFRCxzQkFBNkIsU0FBaUI7SUFDNUMsT0FBTyxLQUFLLENBQUMsU0FBUyxFQUFFLG9CQUFhLEVBQUUsc0JBQWUsRUFBRSxjQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3BGLENBQUM7QUFGRCxvQ0FFQztBQUVELGVBQ0UsU0FBaUIsRUFDakIsTUFBd0IsRUFDeEIsUUFBNEIsRUFDNUIsY0FBeUM7SUFFekMsSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDN0IsT0FBTztZQUNMLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFNBQVM7WUFDVCxVQUFVLEVBQUUsS0FBSztZQUNqQixHQUFHLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUk7WUFDN0IsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQztLQUNIO0lBRUQsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFZLElBQUksYUFBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQy9CLE9BQU8sRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxDQUFDO1NBQzFDO1FBQ0QsT0FBTztZQUNMLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFNBQVM7WUFDVCxVQUFVLEVBQUUsS0FBSztZQUNqQixHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDaEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQzFCLENBQUM7S0FDSDtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLGlCQUFpQixFQUFFO1lBQ2xDLE9BQU8sRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxDQUFDO1NBQzFDO2FBQU07WUFDTCxNQUFNLEdBQUcsQ0FBQztTQUNYO0tBQ0Y7QUFDSCxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbVBvc2l4UGF0aCwgZnJvbVN5c1BhdGgsIGZyb21XaW5kb3dzUGF0aCwgdG9Qb3NpeFBhdGgsIHRvU3lzUGF0aCwgdG9XaW5kb3dzUGF0aCB9IGZyb20gXCJmdXJpXCI7XG5pbXBvcnQgaXNXaW5kb3dzIGZyb20gXCJpcy13aW5kb3dzXCI7XG5pbXBvcnQgc3lzUGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHVybCBmcm9tIFwidXJsXCI7XG5cbmV4cG9ydCB0eXBlIE1vZHVsZVR5cGUgPSBcImNqc1wiIHwgXCJlc21cIjtcblxuZXhwb3J0IHR5cGUgU2NyaXB0VXJsID0gRmlsZVNjcmlwdFVybCB8IEludGVybmFsU2NyaXB0VXJsO1xuXG4vKipcbiAqIFJlZ3VsYXIgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlU2NyaXB0VXJsIHtcbiAgaXNSZWd1bGFyRmlsZTogdHJ1ZTtcbiAgc2NyaXB0VXJsOiBzdHJpbmc7XG4gIG1vZHVsZVR5cGU6IE1vZHVsZVR5cGU7XG4gIHVybDogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJuYWwgb3Igbm9uLWZpbGUgVVJMLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVybmFsU2NyaXB0VXJsIHtcbiAgaXNSZWd1bGFyRmlsZTogZmFsc2U7XG4gIHNjcmlwdFVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTeXMoc2NyaXB0VXJsOiBzdHJpbmcpOiBTY3JpcHRVcmwge1xuICByZXR1cm4gaXNXaW5kb3dzKCkgPyBwYXJzZVdpbmRvd3Moc2NyaXB0VXJsKSA6IHBhcnNlUG9zaXgoc2NyaXB0VXJsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUG9zaXgoc2NyaXB0VXJsOiBzdHJpbmcpOiBTY3JpcHRVcmwge1xuICByZXR1cm4gcGFyc2Uoc2NyaXB0VXJsLCB0b1Bvc2l4UGF0aCwgZnJvbVBvc2l4UGF0aCwgc3lzUGF0aC5wb3NpeC5pc0Fic29sdXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlV2luZG93cyhzY3JpcHRVcmw6IHN0cmluZyk6IFNjcmlwdFVybCB7XG4gIHJldHVybiBwYXJzZShzY3JpcHRVcmwsIHRvV2luZG93c1BhdGgsIGZyb21XaW5kb3dzUGF0aCwgc3lzUGF0aC53aW4zMi5pc0Fic29sdXRlKTtcbn1cblxuZnVuY3Rpb24gcGFyc2UoXG4gIHNjcmlwdFVybDogc3RyaW5nLFxuICB0b1BhdGg6IHR5cGVvZiB0b1N5c1BhdGgsXG4gIGZyb21QYXRoOiB0eXBlb2YgZnJvbVN5c1BhdGgsXG4gIGlzQWJzb2x1dGVQYXRoOiB0eXBlb2Ygc3lzUGF0aC5pc0Fic29sdXRlLFxuKTogU2NyaXB0VXJsIHtcbiAgaWYgKGlzQWJzb2x1dGVQYXRoKHNjcmlwdFVybCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNSZWd1bGFyRmlsZTogdHJ1ZSxcbiAgICAgIHNjcmlwdFVybCxcbiAgICAgIG1vZHVsZVR5cGU6IFwiY2pzXCIsXG4gICAgICB1cmw6IGZyb21QYXRoKHNjcmlwdFVybCkuaHJlZixcbiAgICAgIHBhdGg6IHNjcmlwdFVybCxcbiAgICB9O1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB1cmxPYmo6IHVybC5VUkwgPSBuZXcgdXJsLlVSTChzY3JpcHRVcmwpO1xuICAgIGlmICh1cmxPYmoucHJvdG9jb2wgIT09IFwiZmlsZTpcIikge1xuICAgICAgcmV0dXJuIHtpc1JlZ3VsYXJGaWxlOiBmYWxzZSwgc2NyaXB0VXJsfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzUmVndWxhckZpbGU6IHRydWUsXG4gICAgICBzY3JpcHRVcmwsXG4gICAgICBtb2R1bGVUeXBlOiBcImVzbVwiLFxuICAgICAgdXJsOiB1cmxPYmouaHJlZixcbiAgICAgIHBhdGg6IHRvUGF0aCh1cmxPYmouaHJlZiksXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKGVyci5jb2RlID09PSBcIkVSUl9JTlZBTElEX1VSTFwiKSB7XG4gICAgICByZXR1cm4ge2lzUmVndWxhckZpbGU6IGZhbHNlLCBzY3JpcHRVcmx9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNkQ7QUFDN0QsNERBQW1DO0FBdUNuQyxrQkFBeUIsR0FBVztJQUNsQyxPQUFPLG9CQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUZELDRCQUVDO0FBRUQsb0JBQTJCLEdBQVc7SUFDcEMsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLGtCQUFXLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxzQkFBNkIsR0FBVztJQUN0QyxPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUUsb0JBQWEsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFGRCxvQ0FFQztBQUVELGVBQ0UsR0FBVyxFQUNYLE1BQXdCO0lBRXhCLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUM3QixPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDO0tBQ2xEO1NBQU07UUFDTCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQztLQUNoQztBQUNILENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b1Bvc2l4UGF0aCwgdG9TeXNQYXRoLCB0b1dpbmRvd3NQYXRoIH0gZnJvbSBcImZ1cmlcIjtcbmltcG9ydCBpc1dpbmRvd3MgZnJvbSBcImlzLXdpbmRvd3NcIjtcblxuZXhwb3J0IHR5cGUgUGFyc2VkU2NyaXB0VXJsID0gRmlsZVNjcmlwdFVybCB8IEludGVybmFsU2NyaXB0VXJsO1xuXG4vKipcbiAqIFJlZ3VsYXIgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlU2NyaXB0VXJsIHtcbiAgLyoqXG4gICAqIElucHV0IFVSTFxuICAgKi9cbiAgdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGlzIGlzIGEgbm9uLWludGVybmFsIGBmaWxlOi8vYCBVUkwgKGFsd2F5cyBgdHJ1ZWApLlxuICAgKi9cbiAgaXNGaWxlVXJsOiB0cnVlO1xuXG4gIC8qKlxuICAgKiBDb3JyZXNwb25kaW5nIGZpbGUgcGF0aC5cbiAgICovXG4gIHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBvciBub24tZmlsZSBVUkwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJuYWxTY3JpcHRVcmwge1xuICAvKipcbiAgICogSW5wdXQgVVJMXG4gICAqL1xuICB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogQm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoaXMgaXMgYSBub24taW50ZXJuYWwgYGZpbGU6Ly9gIFVSTCAoYWx3YXlzIGBmYWxzZWApLlxuICAgKi9cbiAgaXNGaWxlVXJsOiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3lzKHVybDogc3RyaW5nKTogUGFyc2VkU2NyaXB0VXJsIHtcbiAgcmV0dXJuIGlzV2luZG93cygpID8gcGFyc2VXaW5kb3dzKHVybCkgOiBwYXJzZVBvc2l4KHVybCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBvc2l4KHVybDogc3RyaW5nKTogUGFyc2VkU2NyaXB0VXJsIHtcbiAgcmV0dXJuIHBhcnNlKHVybCwgdG9Qb3NpeFBhdGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VXaW5kb3dzKHVybDogc3RyaW5nKTogUGFyc2VkU2NyaXB0VXJsIHtcbiAgcmV0dXJuIHBhcnNlKHVybCwgdG9XaW5kb3dzUGF0aCk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlKFxuICB1cmw6IHN0cmluZyxcbiAgdG9QYXRoOiB0eXBlb2YgdG9TeXNQYXRoLFxuKTogUGFyc2VkU2NyaXB0VXJsIHtcbiAgaWYgKHVybC5zdGFydHNXaXRoKFwiZmlsZTovL1wiKSkge1xuICAgIHJldHVybiB7dXJsLCBpc0ZpbGVVcmw6IHRydWUsIHBhdGg6IHRvUGF0aCh1cmwpfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge3VybCwgaXNGaWxlVXJsOiBmYWxzZX07XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= |
{ | ||
"name": "node-script-url", | ||
"version": "0.1.2", | ||
"description": "Parser for Node's V8 script URL values", | ||
"version": "0.2.0", | ||
"description": "Parse Node script URLs", | ||
"private": false, | ||
@@ -20,2 +20,5 @@ "main": "index", | ||
}, | ||
"engines": { | ||
"node": ">=10.12.0" | ||
}, | ||
"author": "Charles Samborski <demurgos@demurgos.net> (https://demurgos.net)", | ||
@@ -56,3 +59,3 @@ "license": "MIT", | ||
}, | ||
"gitHead": "ea0d43c5bcd1058c815b587af98f0b3827bcee23" | ||
"gitHead": "bbe9cf2e0a7a20b0c2a937a7ef97549f66b567a3" | ||
} |
@@ -8,3 +8,3 @@ # node-script-url | ||
Helpers for Node's script URLs. | ||
Parse Node script URLs. | ||
@@ -11,0 +11,0 @@ ## Installation |
10625
-20.13%189
-15.62%