Method repeating common logic

by Cristi Salcescu

JavaScript

function TodoStore(currentUser){
	const todos = [];
  
  function add(todo){
    const start = Date.now();
    if(currentUser.isAuthenticated()){
				todos.push(todo);
    } else {
    		throw new Error("Not authorized");
    }
            
    const duration = Date.now() - start;
    console.log("add() duration : " + duration);
  }
    
  return Object.freeze({
    add
  });  
}

const currentUser = {
	isAuthenticated : function(){
  		return true;
  }
}

const todoStore = TodoStore(currentUser);
todoStore.add({ title : "todo"});