Skip to content

Imutabilidade em CITIES_DATA e STATES_DATA. #442

@FelipeMSX

Description

@FelipeMSX

Sugestão de adicionar imutabilidade em runtime e compile usando algum utilitário de deepFreeze e "as const" no fim. Dando assim mais segurança de ninguém nunca alterar.

Acredito que qualquer utilitário de deepFreeze funcione pra isso. Esse aqui foi gerado por IA e só ajustei o código.

export function deepFreeze<T extends object>(object: T): Readonly<T> {
    // Retrieve the property names defined on object
    const propNames = Reflect.ownKeys(object);

    // Freeze properties before freezing self
    for (const name of propNames) {
        const value = object[name as keyof T];

        if (value !== null && (typeof value === "object" || typeof value === "function")) {
            deepFreeze(value);
        }
    }

    return Object.freeze(object);
}

Alterando assim as contantes presentes aqui

export const CITIES_DATA = deepFreeze({
...
...
...
//linha 5624
} as const);
export const STATES_DATA = deepFreeze({
...
...
..
//linha 164
} as const);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions