UNPKG

angular-nevera-generator

Version:

Yeoman AngularJS scaffold a webapp with Angular 1 written in ES6 (Babel), TypeScript through Webpack or SystemJS including tools Gulp 4, ESLint, Browsersync and Karma

58 lines (48 loc) 1.18 kB
import {assign} from '../assign'; export class Todo { id: number; completed: boolean; text: string; } export const initialTodo: Todo = { text: 'Use AngularJS', completed: false, id: 0 }; export class TodoService { addTodo(text: string, todos: Todo[]) { return [ { id: (todos.length === 0) ? 0 : todos[0].id + 1, completed: false, text } ].concat(todos); } completeTodo(id: number, todos: Todo[]) { return todos.map(todo => { return todo.id === id ? assign({}, todo, {completed: !todo.completed}) : todo; }); } deleteTodo(id: number, todos: Todo[]) { return todos.filter(todo => todo.id !== id); } editTodo(id: number, text: string, todos: Todo[]) { return todos.map(todo => { return todo.id === id ? assign({}, todo, {text}) : todo; }); } completeAll(todos: Todo[]) { const areAllMarked = todos.every(todo => todo.completed); return todos.map(todo => assign({}, todo, {completed: !areAllMarked})); } clearCompleted(todos: Todo[]) { return todos.filter(todo => { return todo.completed === false; }); } }