7
7
* @typedef {import('./types.js').Entry } Entry
8
8
*/
9
9
10
- import { URL } from 'url'
10
+ import { URL } from 'node: url'
11
11
import { u } from 'unist-builder'
12
12
import { x } from 'xastscript'
13
13
import { bcp47Normalize as normalize } from 'bcp-47-normalize'
@@ -22,33 +22,38 @@ import {toAuthor, toDate} from './util.js'
22
22
* @returns {Root }
23
23
*/
24
24
export function rss ( channel , data ) {
25
- var now = new Date ( )
25
+ const now = new Date ( )
26
26
/** @type {Channel } */
27
- var meta = channel || { title : null , url : null }
27
+ const meta = channel || { title : null , url : null }
28
28
/** @type {Array.<Element> } */
29
- var items = [ ]
30
- var index = - 1
29
+ const items = [ ]
30
+ let index = - 1
31
31
/** @type {boolean } */
32
- var atom
32
+ let atom
33
33
/** @type {number } */
34
- var offset
34
+ let offset
35
35
/** @type {Array.<Element> } */
36
- var children
36
+ let children
37
37
/** @type {Entry } */
38
- var datum
38
+ let datum
39
39
/** @type {string } */
40
- var lang
40
+ let lang
41
41
/** @type {string } */
42
- var copy
42
+ let copy
43
43
/** @type {string } */
44
- var url
44
+ let url
45
45
/** @type {Author } */
46
- var author
46
+ let author
47
47
/** @type {Enclosure } */
48
- var enclosure
48
+ let enclosure
49
49
50
- if ( meta . title == null ) throw new Error ( 'Expected `channel.title` to be set' )
51
- if ( meta . url == null ) throw new Error ( 'Expected `channel.url` to be set' )
50
+ if ( meta . title === undefined || meta . title === null ) {
51
+ throw new Error ( 'Expected `channel.title` to be set' )
52
+ }
53
+
54
+ if ( meta . url === undefined || meta . url === null ) {
55
+ throw new Error ( 'Expected `channel.url` to be set' )
56
+ }
52
57
53
58
items . push (
54
59
x ( 'title' , String ( meta . title ) ) ,
@@ -123,15 +128,15 @@ export function rss(channel, data) {
123
128
)
124
129
}
125
130
126
- if ( datum . published != null ) {
131
+ if ( datum . published !== undefined && datum . published !== null ) {
127
132
children . push (
128
133
// @ts -ignore `toGTMString` is exactly what we need.
129
134
x ( 'pubDate' , toDate ( datum . published ) . toGMTString ( ) ) ,
130
135
x ( 'dc:date' , toDate ( datum . published ) . toISOString ( ) )
131
136
)
132
137
}
133
138
134
- if ( datum . modified != null ) {
139
+ if ( datum . modified !== undefined && datum . modified !== null ) {
135
140
children . push ( x ( 'dc:modified' , toDate ( datum . modified ) . toISOString ( ) ) )
136
141
}
137
142
0 commit comments