1use war3parser::{parser::War3MapW3i, war3map_metadata::War3MapMetadata as War3MapMetadataOri};
2use wasm_bindgen::prelude::wasm_bindgen;
3
4use crate::{War3Image, War3MapMetadata};
5
6#[wasm_bindgen]
16pub fn get_map_info(buffer: js_sys::Uint8Array) -> Option<War3MapMetadata> {
17 let buffer_vec = buffer.to_vec();
18 match War3MapMetadataOri::from(&buffer_vec) {
19 Some(mut metadata) => {
20 metadata.update_string_table().ok();
21 let map_info = metadata.map_info.map(War3MapW3i::from);
22 let images: Vec<War3Image> = metadata.images.iter().map(War3Image::from).collect();
23 Some(War3MapMetadata { map_info, images })
24 }
25 None => None,
26 }
27}