#
mcaptcha/static_assets/
filemap.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    3//
    4// SPDX-License-Identifier: AGPL-3.0-or-later
    5
    6use libcachebust::Files;
    7
    8pub struct FileMap {
    9    pub files: Files,
    10}
    11
    12impl FileMap {
    13    #[allow(clippy::new_without_default)]
    14    pub fn new() -> Self {
    15        let map = include_str!("../libcachebust_data.json");
    16        let files = Files::new(map);
    17        Self { files }
    18    }
    19    pub fn get<'a>(&'a self, path: &'a str) -> Option<&'a str> {
    20        let file_path = self.files.get_full_path(path);
    21        file_path.map(|file_path| &file_path[1..])
    22    }
    23}
    24
    25#[cfg(test)]
    26mod tests {
    27
    28    #[test]
    29    fn filemap_works() {
    30        let files = super::FileMap::new();
    31        let css = files.get("./static/cache/bundle/css/main.css").unwrap();
    32        println!("{}", css);
    33        assert!(css.contains("/assets/bundle/css"));
    34    }
    35}