diia-open-source / be-pkg-utils

European Union Public License 1.2
14 stars 10 forks source link

Refactor extractProfileFeatures #14

Open tshemsedinov opened 4 months ago

tshemsedinov commented 4 months ago

Instead of https://github.com/diia-open-source/be-pkg-utils/blob/e969374fb769e59ab6bbdb709caeba0199e14a8c/src/session.ts#L17-L23 consider following:

export function extractProfileFeatures(session: UserSession | EResidentSession): ProfileFeature[] {
    if (!Object.hasOwn(session, 'features')) return []
    return profileFeaturesToList(session.features)
}

It is also not ok to have such an uncertain union type UserSession | EResidentSession, may we change it to certain single interface?

bohdansec commented 4 months ago

Замість коду, який ви запропонували, хочу запропонувати свій варіант — він коротший та елегантніший.

export function extractProfileFeatures(session: UserSession | EResidentSession): ProfileFeature[] {
    return Object.hasOwn(session, 'features') ? profileFeaturesToList(session.features) : [];
}

Але тут ще можна дуже багато покращити. Можливо, мій варіант більше підійде розробнику.