-
Notifications
You must be signed in to change notification settings - Fork 7
/
atom.ts
77 lines (68 loc) 路 1.36 KB
/
atom.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*
Type is based on the W3 Atom documentation:
https://validator.w3.org/feed/docs/atom.html
*/
import { AtomFields } from "./fields/atom_fields.ts";
export interface Atom {
id: string;
title: AtomText;
updated: Date;
updatedRaw: string;
icon?: string;
links?: AtomLink[];
entries: AtomEntry[];
categories?: AtomCategory[];
contributors?: AtomPerson[];
generator?: string;
author?: AtomPerson;
logo?: string;
rights?: AtomText;
subtitle?: string;
}
export interface AtomLink {
type: string;
href: string;
rel: string;
hreflang?: string;
length?: number;
}
export interface AtomCategory {
term: string;
label?: string;
}
export interface AtomEntry {
id: string;
title: AtomText;
updated: Date;
updatedRaw: string;
published?: Date;
publishedRaw?: string;
content?: AtomContent;
links?: AtomLink[];
author?: AtomPerson;
contributors?: AtomPerson[];
summary?: AtomText;
rights?: AtomText;
categories?: AtomCategory[];
source?: AtomSource;
href?: string;
[AtomFields.FeedburnerOrigLink]?: string;
}
export interface AtomContent extends AtomText {
src?: string;
}
export interface AtomPerson {
name: string;
email?: string;
uri?: string;
}
export interface AtomSource {
id?: string;
title?: string;
updated?: Date;
updatedRaw?: Date;
}
export interface AtomText {
type: string;
value: string;
}