class Enum { constructor(enumObj) { const handler = { get(target, name) { if (typeof target[name] != 'undefined') { return target[name]; } throw new Error(`No such enumerator: ${name}`); }, set() { throw new Error('Cannot add/update properties on an Enum instance after it is defined'); } }; return new Proxy(enumObj, handler); } } const errorCodes = new Enum({ invalidLoginOrPassword: 0 }); const makeError = (error, code) => { let result = { success: false, error }; if(code != undefined) { result.errorCode = code; } return result; }; export { errorCodes, makeError };