```ts
/**
 * Builds a min-heap from a list of numbers using insertion method.
 * @param values - An array of whole numbers to be inserted into the heap.
 * @returns The constructed min-heap as an array.
 * @throws Error if the input is not a list or contains non-whole numbers.
 */
export function buildMinHeapByInsertion(values: number[]): number[] {
    if (!Array.isArray(values)) {
        throw new Error("Input must be an array.");
    }
    if (!values.every(Number.isInteger)) {
        throw new Error("All elements in the array must be whole numbers.");
    }

    const heap: number[] = [];

    for (const value of values) {
        heap.push(value);
        let currentIndex = heap.length - 1;

        while (currentIndex > 0) {
            const parentIndex = Math.floor((currentIndex - 1) / 2);
            if (heap[currentIndex] < heap[parentIndex]) {
                [heap[currentIndex], heap[parentIndex]] = [heap[parentIndex], heap[currentIndex]];
                currentIndex = parentIndex;
            } else {
                break;
            }
        }
    }

    return heap;
}
```