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,11 @@ | ||
# Next | ||
- **[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) | ||
- **[Fix]** Fix OS detection | ||
# 0.1.1 (2018-10-18) | ||
@@ -2,0 +12,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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBMEc7QUFDMUcsNERBQW1DO0FBQ25DLGdEQUEyQjtBQUMzQiw4Q0FBc0I7QUF5QnRCLGtCQUF5QixTQUFpQjtJQUN4QyxPQUFPLG9CQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFGRCw0QkFFQztBQUVELG9CQUEyQixTQUFpQjtJQUMxQyxPQUFPLEtBQUssQ0FBQyxTQUFTLEVBQUUsa0JBQVcsRUFBRSxvQkFBYSxFQUFFLGNBQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUZELGdDQUVDO0FBRUQsc0JBQTZCLFNBQWlCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLFNBQVMsRUFBRSxvQkFBYSxFQUFFLHNCQUFlLEVBQUUsY0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNwRixDQUFDO0FBRkQsb0NBRUM7QUFFRCxlQUNFLFNBQWlCLEVBQ2pCLE1BQXdCLEVBQ3hCLFFBQTRCLEVBQzVCLGNBQXlDO0lBRXpDLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQzdCLE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSTtZQUNuQixTQUFTO1lBQ1QsVUFBVSxFQUFFLEtBQUs7WUFDakIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJO1lBQzdCLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUM7S0FDSDtJQUVELElBQUk7UUFDRixNQUFNLE1BQU0sR0FBWSxJQUFJLGFBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtZQUMvQixPQUFPLEVBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsQ0FBQztTQUMxQztRQUNELE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSTtZQUNuQixTQUFTO1lBQ1QsVUFBVSxFQUFFLEtBQUs7WUFDakIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2hCLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztTQUMxQixDQUFDO0tBQ0g7SUFBQyxPQUFPLEdBQUcsRUFBRTtRQUNaLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxpQkFBaUIsRUFBRTtZQUNsQyxPQUFPLEVBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0wsTUFBTSxHQUFHLENBQUM7U0FDWDtLQUNGO0FBQ0gsQ0FBQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21Qb3NpeFBhdGgsIGZyb21TeXNQYXRoLCBmcm9tV2luZG93c1BhdGgsIHRvUG9zaXhQYXRoLCB0b1N5c1BhdGgsIHRvV2luZG93c1BhdGggfSBmcm9tIFwiZnVyaVwiO1xuaW1wb3J0IGlzV2luZG93cyBmcm9tIFwiaXMtd2luZG93c1wiO1xuaW1wb3J0IHN5c1BhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB1cmwgZnJvbSBcInVybFwiO1xuXG5leHBvcnQgdHlwZSBNb2R1bGVUeXBlID0gXCJjanNcIiB8IFwiZXNtXCI7XG5cbmV4cG9ydCB0eXBlIFNjcmlwdFVybCA9IEZpbGVTY3JpcHRVcmwgfCBJbnRlcm5hbFNjcmlwdFVybDtcblxuLyoqXG4gKiBSZWd1bGFyIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVNjcmlwdFVybCB7XG4gIGlzUmVndWxhckZpbGU6IHRydWU7XG4gIHNjcmlwdFVybDogc3RyaW5nO1xuICBtb2R1bGVUeXBlOiBNb2R1bGVUeXBlO1xuICB1cmw6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVybmFsIG9yIG5vbi1maWxlIFVSTC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5hbFNjcmlwdFVybCB7XG4gIGlzUmVndWxhckZpbGU6IGZhbHNlO1xuICBzY3JpcHRVcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3lzKHNjcmlwdFVybDogc3RyaW5nKTogU2NyaXB0VXJsIHtcbiAgcmV0dXJuIGlzV2luZG93cyA/IHBhcnNlV2luZG93cyhzY3JpcHRVcmwpIDogcGFyc2VQb3NpeChzY3JpcHRVcmwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQb3NpeChzY3JpcHRVcmw6IHN0cmluZyk6IFNjcmlwdFVybCB7XG4gIHJldHVybiBwYXJzZShzY3JpcHRVcmwsIHRvUG9zaXhQYXRoLCBmcm9tUG9zaXhQYXRoLCBzeXNQYXRoLnBvc2l4LmlzQWJzb2x1dGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VXaW5kb3dzKHNjcmlwdFVybDogc3RyaW5nKTogU2NyaXB0VXJsIHtcbiAgcmV0dXJuIHBhcnNlKHNjcmlwdFVybCwgdG9XaW5kb3dzUGF0aCwgZnJvbVdpbmRvd3NQYXRoLCBzeXNQYXRoLndpbjMyLmlzQWJzb2x1dGUpO1xufVxuXG5mdW5jdGlvbiBwYXJzZShcbiAgc2NyaXB0VXJsOiBzdHJpbmcsXG4gIHRvUGF0aDogdHlwZW9mIHRvU3lzUGF0aCxcbiAgZnJvbVBhdGg6IHR5cGVvZiBmcm9tU3lzUGF0aCxcbiAgaXNBYnNvbHV0ZVBhdGg6IHR5cGVvZiBzeXNQYXRoLmlzQWJzb2x1dGUsXG4pOiBTY3JpcHRVcmwge1xuICBpZiAoaXNBYnNvbHV0ZVBhdGgoc2NyaXB0VXJsKSkge1xuICAgIHJldHVybiB7XG4gICAgICBpc1JlZ3VsYXJGaWxlOiB0cnVlLFxuICAgICAgc2NyaXB0VXJsLFxuICAgICAgbW9kdWxlVHlwZTogXCJjanNcIixcbiAgICAgIHVybDogZnJvbVBhdGgoc2NyaXB0VXJsKS5ocmVmLFxuICAgICAgcGF0aDogc2NyaXB0VXJsLFxuICAgIH07XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IHVybE9iajogdXJsLlVSTCA9IG5ldyB1cmwuVVJMKHNjcmlwdFVybCk7XG4gICAgaWYgKHVybE9iai5wcm90b2NvbCAhPT0gXCJmaWxlOlwiKSB7XG4gICAgICByZXR1cm4ge2lzUmVndWxhckZpbGU6IGZhbHNlLCBzY3JpcHRVcmx9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaXNSZWd1bGFyRmlsZTogdHJ1ZSxcbiAgICAgIHNjcmlwdFVybCxcbiAgICAgIG1vZHVsZVR5cGU6IFwiZXNtXCIsXG4gICAgICB1cmw6IHVybE9iai5ocmVmLFxuICAgICAgcGF0aDogdG9QYXRoKHVybE9iai5ocmVmKSxcbiAgICB9O1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoZXJyLmNvZGUgPT09IFwiRVJSX0lOVkFMSURfVVJMXCIpIHtcbiAgICAgIHJldHVybiB7aXNSZWd1bGFyRmlsZTogZmFsc2UsIHNjcmlwdFVybH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNkQ7QUFDN0QsNERBQW1DO0FBdUNuQyxrQkFBeUIsR0FBVztJQUNsQyxPQUFPLG9CQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUZELDRCQUVDO0FBRUQsb0JBQTJCLEdBQVc7SUFDcEMsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLGtCQUFXLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxzQkFBNkIsR0FBVztJQUN0QyxPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUUsb0JBQWEsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFGRCxvQ0FFQztBQUVELGVBQ0UsR0FBVyxFQUNYLE1BQXdCO0lBRXhCLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUM3QixPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDO0tBQ2xEO1NBQU07UUFDTCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQztLQUNoQztBQUNILENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b1Bvc2l4UGF0aCwgdG9TeXNQYXRoLCB0b1dpbmRvd3NQYXRoIH0gZnJvbSBcImZ1cmlcIjtcbmltcG9ydCBpc1dpbmRvd3MgZnJvbSBcImlzLXdpbmRvd3NcIjtcblxuZXhwb3J0IHR5cGUgUGFyc2VkU2NyaXB0VXJsID0gRmlsZVNjcmlwdFVybCB8IEludGVybmFsU2NyaXB0VXJsO1xuXG4vKipcbiAqIFJlZ3VsYXIgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlU2NyaXB0VXJsIHtcbiAgLyoqXG4gICAqIElucHV0IFVSTFxuICAgKi9cbiAgdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGlzIGlzIGEgbm9uLWludGVybmFsIGBmaWxlOi8vYCBVUkwgKGFsd2F5cyBgdHJ1ZWApLlxuICAgKi9cbiAgaXNGaWxlVXJsOiB0cnVlO1xuXG4gIC8qKlxuICAgKiBDb3JyZXNwb25kaW5nIGZpbGUgcGF0aC5cbiAgICovXG4gIHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBvciBub24tZmlsZSBVUkwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJuYWxTY3JpcHRVcmwge1xuICAvKipcbiAgICogSW5wdXQgVVJMXG4gICAqL1xuICB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogQm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoaXMgaXMgYSBub24taW50ZXJuYWwgYGZpbGU6Ly9gIFVSTCAoYWx3YXlzIGBmYWxzZWApLlxuICAgKi9cbiAgaXNGaWxlVXJsOiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3lzKHVybDogc3RyaW5nKTogUGFyc2VkU2NyaXB0VXJsIHtcbiAgcmV0dXJuIGlzV2luZG93cygpID8gcGFyc2VXaW5kb3dzKHVybCkgOiBwYXJzZVBvc2l4KHVybCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBvc2l4KHVybDogc3RyaW5nKTogUGFyc2VkU2NyaXB0VXJsIHtcbiAgcmV0dXJuIHBhcnNlKHVybCwgdG9Qb3NpeFBhdGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VXaW5kb3dzKHVybDogc3RyaW5nKTogUGFyc2VkU2NyaXB0VXJsIHtcbiAgcmV0dXJuIHBhcnNlKHVybCwgdG9XaW5kb3dzUGF0aCk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlKFxuICB1cmw6IHN0cmluZyxcbiAgdG9QYXRoOiB0eXBlb2YgdG9TeXNQYXRoLFxuKTogUGFyc2VkU2NyaXB0VXJsIHtcbiAgaWYgKHVybC5zdGFydHNXaXRoKFwiZmlsZTovL1wiKSkge1xuICAgIHJldHVybiB7dXJsLCBpc0ZpbGVVcmw6IHRydWUsIHBhdGg6IHRvUGF0aCh1cmwpfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge3VybCwgaXNGaWxlVXJsOiBmYWxzZX07XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= |
{ | ||
"name": "node-script-url", | ||
"version": "0.1.1", | ||
"description": "Parser for Node's V8 script URL values", | ||
"version": "0.1.2-build.21", | ||
"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": "bac1945b402e5bf029a32c5ee1f10d84073ce588" | ||
"gitHead": "6796bc4213809e2018666c8135da95af0d31872b" | ||
} |
@@ -8,3 +8,3 @@ # node-script-url | ||
Helpers for Node's script URLs. | ||
Parse Node script URLs. | ||
@@ -11,0 +11,0 @@ ## Installation |
10620
-19.78%189
-15.62%