import { PathLike } from 'fs';
import { FileHandle } from 'fs/promises';
import { ASFFileProps } from './ASFFileProps';
import { filePropsObjectGuid, getFields } from './common.js';

export async function getASFProps(filePath: PathLike | FileHandle): Promise<ASFFileProps | null> {
    if (typeof process !== 'object') {
        return null;
    }
    const { promises: fsp } = await import('fs');
    try {
        const buffer = await fsp.readFile(filePath);

        const filePropsObjectPos = buffer.indexOf(filePropsObjectGuid);
        if (filePropsObjectPos === -1) {
            console.error("ASF file header not found.");
            return null;
        }

        return getFields(buffer, filePropsObjectPos);
    } catch (error) {
        console.error("Error reading ASF file:", error);
        return null;
    }
}