remark-lint-are-links-valid-alive
Advanced tools
Comparing version 0.0.0 to 0.1.0
93
index.js
@@ -1,1 +0,92 @@ | ||
"use strict"; | ||
'use strict'; | ||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } | ||
var brokenLinkChecker = _interopDefault(require('broken-link-checker')); | ||
// Basic logics for all packages. | ||
var url = require('url'); | ||
var rule = require('unified-lint-rule'); | ||
var visit = require('unist-util-visit'); | ||
var defaults = require('object.defaults'); | ||
var findLinks = function findLinks(ast) { | ||
var links = []; | ||
visit(ast, 'link', function (node) { | ||
var link = url.parse(node.url); | ||
if (link.host !== null) { | ||
// links without `host` are just `#hashes` | ||
links.push({ node: node, link: link }); | ||
} | ||
}); | ||
return links; | ||
}; | ||
var getSettings = function getSettings(options) { | ||
var defaultSettings = { | ||
// These settings allow duplicate links validation: | ||
allowDuplicates: false, | ||
whiteListDomains: [] | ||
}; | ||
var settings = options || {}; | ||
defaults(settings, defaultSettings); | ||
return settings; | ||
}; | ||
var createRule = function createRule(name, callback) { | ||
return rule('remark-lint:are-links-valid:' + name, callback); | ||
}; | ||
var index = { | ||
findLinks: findLinks, | ||
getSettings: getSettings, | ||
createRule: createRule | ||
}; | ||
var index$1 = Object.freeze({ | ||
default: index | ||
}); | ||
var main = ( index$1 && index ) || index$1; | ||
function handleLinkDuplicateError(file, link, reason) { | ||
var message = 'Link ' + link.link.href + ' is not responding: ' + reason; | ||
var node = link.node; | ||
file.info(message, node); | ||
} | ||
function areLinksAlive(ast, file, options, done) { | ||
var links = main.findLinks(ast); | ||
var settings = main.getSettings(options); | ||
var urlChecker = new brokenLinkChecker.UrlChecker(options, { | ||
link: function link(result, data) { | ||
if (result.broken) { | ||
handleLinkDuplicateError(file, data, result.brokenReason); | ||
} | ||
}, | ||
end: function end() { | ||
return done(); | ||
} | ||
}); | ||
if (links.length > 0) { | ||
links.map(function (link) { | ||
urlChecker.enqueue(link.link.href, null, link); | ||
}); | ||
} else { | ||
// There are no links to handle: | ||
done(); | ||
} | ||
} | ||
var src = main.createRule('alive', areLinksAlive); | ||
module.exports = src; |
{ | ||
"name": "remark-lint-are-links-valid-alive", | ||
"version": "0.0.0", | ||
"description": "Checks if links are unique", | ||
"version": "0.1.0", | ||
"description": "Checks if links are still alive", | ||
"main": "index.js", | ||
"scripts": { | ||
"build": "../../node_modules/.bin/babel src.js -o index.js" | ||
"build": "../../node_modules/.bin/rollup -c ../../rollup.config.js -i src.js -o index.js" | ||
}, | ||
@@ -25,3 +25,6 @@ "repository": { | ||
}, | ||
"homepage": "https://github.com/wemake-services/remark-lint-are-links-valid#readme" | ||
"homepage": "https://github.com/wemake-services/remark-lint-are-links-valid#readme", | ||
"dependencies": { | ||
"broken-link-checker": "^0.7.6" | ||
} | ||
} |
Trivial Package
Supply chain riskPackages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency.
Found 1 instance in 1 package
22915
4
98
0
1
+ Addedbroken-link-checker@^0.7.6
+ Added@types/node@20.14.9(transitive)
+ Addedabbrev@1.1.1(transitive)
+ Addedansi-regex@0.2.12.1.1(transitive)
+ Addedansi-styles@1.1.02.2.1(transitive)
+ Addedbhttp@1.2.8(transitive)
+ Addedbluebird@2.11.0(transitive)
+ Addedbroken-link-checker@0.7.8(transitive)
+ Addedbuffer-from@1.1.2(transitive)
+ Addedcaller-path@0.1.0(transitive)
+ Addedcallsites@0.2.0(transitive)
+ Addedcalmcard@0.1.1(transitive)
+ Addedcamelcase@1.2.1(transitive)
+ Addedchalk@0.5.11.1.3(transitive)
+ Addedchar-spinner@1.0.1(transitive)
+ Addedcli-table@0.3.11(transitive)
+ Addedcolors@1.0.3(transitive)
+ Addedcombined-stream2@1.1.2(transitive)
+ Addedconcat-stream@1.6.2(transitive)
+ Addedcondense-whitespace@1.0.0(transitive)
+ Addedcore-util-is@1.0.3(transitive)
+ Addeddebug@2.6.9(transitive)
+ Addeddefault-user-agent@1.0.0(transitive)
+ Addeddev-null@0.1.1(transitive)
+ Addedduplexer@0.1.2(transitive)
+ Addedeol@0.2.0(transitive)
+ Addederrno@0.1.8(transitive)
+ Addederrors@0.2.0(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedextend@2.0.23.0.2(transitive)
+ Addedform-data2@1.0.4(transitive)
+ Addedform-fix-array@1.0.0(transitive)
+ Addedhas-ansi@0.1.02.0.0(transitive)
+ Addedhas-symbols@1.0.3(transitive)
+ Addedhas-tostringtag@1.0.2(transitive)
+ Addedhttp-equiv-refresh@1.0.0(transitive)
+ Addedhumanize-duration@3.32.1(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedis-browser@2.1.0(transitive)
+ Addedis-object@1.0.2(transitive)
+ Addedis-stream@1.1.0(transitive)
+ Addedis-string@1.0.7(transitive)
+ Addedisarray@0.0.11.0.0(transitive)
+ Addedisbot@2.5.7(transitive)
+ Addedlimited-request-queue@2.0.0(transitive)
+ Addedlink-types@1.1.0(transitive)
+ Addedlodash.clonedeep@4.5.0(transitive)
+ Addedlodash.merge@4.6.2(transitive)
+ Addedlru-cache@4.1.5(transitive)
+ Addedmaybe-callback@2.1.0(transitive)
+ Addedmime@1.6.0(transitive)
+ Addedminimist@1.2.8(transitive)
+ Addedms@2.0.0(transitive)
+ Addednopt@3.0.6(transitive)
+ Addednopter@0.3.0(transitive)
+ Addedobject-assign@2.1.14.1.1(transitive)
+ Addedos-name@1.0.3(transitive)
+ Addedos-tmpdir@1.0.2(transitive)
+ Addedosx-release@1.1.0(transitive)
+ Addedparse-domain@0.2.2(transitive)
+ Addedparse5@3.0.3(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedprr@1.0.1(transitive)
+ Addedpseudomap@1.0.2(transitive)
+ Addedpsl@1.9.0(transitive)
+ Addedpunycode@2.3.1(transitive)
+ Addedreadable-stream@1.0.342.3.8(transitive)
+ Addedrobot-directives@0.3.0(transitive)
+ Addedrobots-txt-guard@0.1.1(transitive)
+ Addedrobots-txt-parse@0.0.4(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedsemver@5.7.2(transitive)
+ Addedsplit@0.3.3(transitive)
+ Addedsplitargs@0.0.7(transitive)
+ Addedstream-combiner@0.2.2(transitive)
+ Addedstream-length@1.0.2(transitive)
+ Addedstring_decoder@0.10.311.1.1(transitive)
+ Addedstrip-ansi@0.3.03.0.1(transitive)
+ Addedsupports-color@0.2.02.0.0(transitive)
+ Addedthrough@2.3.8(transitive)
+ Addedthrough2@0.5.1(transitive)
+ Addedthrough2-sink@1.0.0(transitive)
+ Addedthrough2-spy@1.2.0(transitive)
+ Addedtmp@0.0.33(transitive)
+ Addedtough-cookie@2.5.0(transitive)
+ Addedtypedarray@0.0.6(transitive)
+ Addedundici-types@5.26.5(transitive)
+ Addedurlcache@0.7.0(transitive)
+ Addedurlobj@0.0.11(transitive)
+ Addeduseragent@2.3.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addeduuid@2.0.3(transitive)
+ Addedwin-release@1.1.1(transitive)
+ Addedxtend@3.0.0(transitive)
+ Addedyallist@2.1.2(transitive)