Skip to content

Commit ef3f256

Browse files
committed
Change to do some to-dos
1 parent a25be03 commit ef3f256

File tree

18 files changed

+84
-61
lines changed

18 files changed

+84
-61
lines changed

crawl/ecosystem.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,15 +101,15 @@
101101
*
102102
*
103103
* @typedef PackageInfo
104-
* @property {string} description
104+
* @property {string | undefined} description
105105
* @property {Array<string>} keywords
106106
* @property {string | undefined} latest
107107
* @property {string | undefined} license
108108
* @property {string} name
109109
* @property {number} score
110110
*
111111
* @typedef RawPackage
112-
* @property {string} description
112+
* @property {string | undefined} description
113113
* @property {number} downloads
114114
* @property {number | undefined} [gzip]
115115
* @property {Array<string>} keywords
@@ -753,23 +753,24 @@ async function getPackage(project, manifest, packageJson) {
753753
return
754754
}
755755

756-
// To do: this would probabl go higher? If there’s an error returned?
756+
// To do: this would probably go higher? If there’s an error returned?
757757
// if (body.code === 'NOT_FOUND') {
758758
// console.warn('%s#%s: could not find package (on npms)', repo, manifest)
759759
// return
760760
// }
761761

762-
// To do: remove fallbacks and allow `undefined`?
763-
const name = body.collected.metadata.name || ''
764-
const description = body.collected.metadata.description || ''
762+
const name = body.collected.metadata.name || undefined
763+
const description = body.collected.metadata.description || undefined
765764
const keywords = body.collected.metadata.keywords || []
766765
const license = body.collected.metadata.license || undefined
767766
const latest = body.collected.metadata.version || undefined
768767
const repository = body.collected.metadata.repository
769-
const url = (repository && repository.url) || ''
768+
const url = (repository && repository.url) || undefined
770769
const score = body.score.final || 0
771770
// Note: we used to look at `dependents`, but that’s always on `0` apparently now?
772771

772+
if (!name) return
773+
773774
if (body.collected.metadata.deprecated) {
774775
console.warn(
775776
'%s#%s: ignoring deprecated package: %s',

generate/asset.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,16 @@ async function transformJs(file) {
119119
write: false
120120
})
121121

122-
// To do: improve error handling.
123-
if (result.errors.length > 0) throw new Error('esbuild errors')
124-
if (result.warnings.length > 0) throw new Error('esbuild warnings')
125-
// To do: asset size
122+
const logs = await Promise.all([
123+
esbuild.formatMessages(result.errors, {kind: 'error'}),
124+
esbuild.formatMessages(result.warnings, {kind: 'warning'})
125+
])
126+
const flatLogs = logs.flat()
127+
if (flatLogs.length > 0) {
128+
console.error(flatLogs.join('\n'))
129+
}
130+
131+
assert.equal(result.outputFiles.length, 1)
126132
const output = result.outputFiles[0]
127133
file.value = output.contents
128134
return file

generate/atom/micro/description.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
// To do: remove? Unused?
2-
31
/**
42
* @import {Element, Parents} from 'hast'
53
*/

generate/atom/micro/downloads.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@ import {downloads as icon} from '../icon/downloads.js'
1212
* @returns {Array<ElementContent> | ElementContent}
1313
*/
1414
export function downloads(value, name) {
15-
let node
16-
1715
if (!value) {
1816
return []
1917
}
2018

21-
node = [icon(), ' ', fmtCompact(value)]
19+
/** @type {Array<ElementContent | string> | ElementContent} */
20+
let node = [icon(), ' ', fmtCompact(value)]
2221

2322
if (name) {
2423
node = h('a.tap-target', {href: 'https://www.npmtrends.com/' + name}, node)

generate/atom/micro/license.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
// To do: remove? Unused?
2-
31
/**
42
* @import {ElementContent, Element} from 'hast'
53
*/

generate/component/article/helper-sort.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,5 @@ export function helperSort(data) {
2020
*/
2121
function score(d) {
2222
const matter = d.data.matter || {}
23-
// @ts-expect-error: to do: type `index`?
2423
return matter.index || Number.POSITIVE_INFINITY
2524
}

generate/component/article/item.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import {tag} from '../../atom/micro/tag.js'
1515
export function item(d) {
1616
const {matter, meta} = d.data
1717
const data = {...matter, ...meta}
18-
// @ts-expect-error: to do: type `authorGithub`?
1918
const {title, description, author, authorGithub, tags, pathname} = data
2019

2120
assert(pathname)

generate/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,9 @@ const promises = tasks.map((fn) => () => {
289289
function (x) {
290290
console.log(reporter(x))
291291
},
292+
/**
293+
* @param {unknown} error
294+
*/
292295
function (error) {
293296
console.error(error)
294297
}

generate/page/learn.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* @import {Metadata} from '../component/article/list.js'
44
*/
55

6+
import {ok as assert} from 'devlop'
67
import {h} from 'hastscript'
78
import {breadcrumbs} from '../molecule/breadcrumbs.js'
89
import {list} from '../component/article/list.js'
@@ -29,11 +30,16 @@ export function learn(sections) {
2930
'through how to complete bigger tasks.'
3031
])
3132
]),
32-
...sections.flatMap((d) => [
33-
h('.article.content', [h('h3', {}, d.title), h('p', {}, d.description)]),
34-
// To do: assert that entries exists?
35-
list(d, helperSort(d.entries || []))
36-
]),
33+
...sections.flatMap((d) => {
34+
assert(d.entries)
35+
return [
36+
h('.article.content', [
37+
h('h3', {}, d.title),
38+
h('p', {}, d.description)
39+
]),
40+
list(d, helperSort(d.entries || []))
41+
]
42+
}),
3743
h('.article.content', [
3844
h('h3', 'Explore'),
3945
h('p', [

generate/plugin/rehype-resolve-urls.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111
* @property {string | null | undefined} [repo]
1212
*/
1313

14+
import {isElement} from 'hast-util-is-element'
15+
import {urlAttributes} from 'html-url-attributes'
1416
import {visit} from 'unist-util-visit'
15-
import {tagToUrl} from '../util/tag-to-url.js'
1617

1718
const own = {}.hasOwnProperty
1819
const gh = 'https://github.com'
@@ -56,9 +57,13 @@ export default function rehypeResolveUrls(options) {
5657

5758
/** @type {BuildVisitor<Root, 'element'>} */
5859
function visitor(node) {
59-
const {tagName} = node
60-
if (own.call(tagToUrl, tagName)) {
61-
tagToUrl[tagName].forEach((p) => resolve(node, p, tagName))
60+
for (const property in node.properties) {
61+
if (
62+
own.call(urlAttributes, property) &&
63+
isElement(node, urlAttributes[property])
64+
) {
65+
resolve(node, property, node.tagName)
66+
}
6267
}
6368
}
6469

0 commit comments

Comments
 (0)