modules-pack
Version:
JavaScript Modules for Modern Frontend & Backend Projects
113 lines (103 loc) • 2.5 kB
JavaScript
import { Active, definitionByValue, enumFrom, l, LANGUAGE, LANGUAGE_LEVEL, optionsFrom } from 'utils-pack'
/**
* PROJECT DEFINITIONS =========================================================
* =============================================================================
*/
export const CURRENCY = {
USD: {
_: 'USD',
[]: 'USD',
},
EUR: {
_: 'EUR',
[]: 'EUR',
},
RUB: {
_: 'RUB',
[]: 'RUB',
},
}
Active.CURRENCY = CURRENCY.USD
export const PHONE = {
MOBILE: {
_: 'mobile',
[]: 'Mobile Phone'
},
HOME: {
_: 'home',
[]: 'Home Phone'
},
WORK: {
_: 'work',
[]: 'Work Phone'
},
}
export const PERMISSION = {
// @note: permissions are defined as separate access levels.
// To have full access, one must have all permissions defined below.
// This way we keep the logic for checking permissions simple.
// Example: User with permission {'1': true, '99': true} cannot update/delete.
READ: {
_: 1,
[]: 'Read',
// [l.RUSSIAN]: 'Читать',
},
UPDATE: {
_: 2,
[]: 'Update',
// [l.RUSSIAN]: 'Обновить',
},
DELETE: {
_: 3,
[]: 'Delete',
// [l.RUSSIAN]: 'Удалить',
},
MANAGE_USERS: { // add/remove users and set permissions
_: 99, // same as STAFF authorization level
[]: 'Manage Users',
// [l.RUSSIAN]: 'Организовать Пользователей',
},
}
/* Match with GraphQL Type */
export const TYPE = {
CURRENCY: {
_: 'Currency',
[]: 'Currency'
},
LANGUAGE: {
_: 'Language',
[]: 'Language'
},
LANGUAGE_LEVEL: {
_: 'LanguageLevel',
[]: 'Language Level'
},
PHONE: {
_: 'Phone',
[]: 'Phone Number'
},
}
export const TYPE_BY = {
[]: TYPE.CURRENCY,
[]: TYPE.LANGUAGE,
[]: TYPE.PHONE,
}
export const OPTIONS = {
CURRENCY: optionsFrom(CURRENCY),
LANGUAGE: optionsFrom(LANGUAGE),
PHONE: optionsFrom(PHONE),
}
export const DEFINITION = {
[]: CURRENCY,
[]: LANGUAGE,
[]: PHONE,
}
export const DEFINITION_BY_VAL = {
LANGUAGE: definitionByValue(LANGUAGE),
LANGUAGE_LEVEL: definitionByValue(LANGUAGE_LEVEL),
[]: definitionByValue(LANGUAGE),
}
export const ENUM = {
LANGUAGE: enumFrom(LANGUAGE),
LANGUAGE_LEVEL: enumFrom(LANGUAGE_LEVEL),
}