browserslist/data/
node.rs

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
use ahash::AHashMap;
use chrono::{NaiveDate, NaiveDateTime};
use once_cell::sync::Lazy;

pub static NODE_VERSIONS: Lazy<Vec<String>> = Lazy::new(|| {
    serde_json::from_str(include_str!(concat!(
        env!("OUT_DIR"),
        "/node-versions.json"
    )))
    .unwrap()
});

pub static RELEASE_SCHEDULE: Lazy<AHashMap<String, (NaiveDateTime, NaiveDateTime)>> =
    Lazy::new(|| {
        let date_format = "%Y-%m-%d";

        serde_json::from_str::<AHashMap<String, (String, String)>>(include_str!(concat!(
            env!("OUT_DIR"),
            "/node-release-schedule.json"
        )))
        .unwrap()
        .into_iter()
        .map(|(version, (start, end))| {
            (
                version,
                (
                    NaiveDate::parse_from_str(&start, date_format)
                        .unwrap()
                        .and_hms_opt(0, 0, 0)
                        .unwrap(),
                    NaiveDate::parse_from_str(&end, date_format)
                        .unwrap()
                        .and_hms_opt(0, 0, 0)
                        .unwrap(),
                ),
            )
        })
        .collect()
    });