當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript normalizr.normalize函數代碼示例

本文整理匯總了TypeScript中normalizr.normalize函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript normalize函數的具體用法?TypeScript normalize怎麽用?TypeScript normalize使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了normalize函數的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: todo

export function todo(
  state = Record<TodoStateProp>({
    todoBoxId: null,
    todoIds: List(),
    todoEntities: Map(),
    todoBoxEntities: Map(),
    todoBoxIds: List()
  })(),
  action: any
) {
  switch (action.type) {
    case Actions.ADD_TODO.SUCCESS:
      const addedTodo = action.payload;
      return state
        .update('todoEntities', (todoEntities: any) =>
          todoEntities.set(String(addedTodo.id), fromJS(addedTodo))
        )
        .update('todoIds', (todoIds: any) => todoIds.push(String(addedTodo.id)));

    case Actions.GET_TODOLIST.REQUEST:
      return state.update('todoIds', () => List());

    case Actions.GET_TODOLIST.SUCCESS:
      const normalizedTodos = normalize(action.payload, TDS);
      return state
        .update('todoIds', () => List(normalizedTodos.result))
        .update('todoEntities', () => fromJS(normalizedTodos.entities.Todo || {}));

    case Actions.UPDATE_TODO.SUCCESS:
      return state.updateIn(['todoEntities', String(action.payload.id)], () =>
        fromJS(action.payload)
      );

    case Actions.DESTORY_TODO.SUCCESS:
      const toDeletedIndex = state.get('todoIds')!.indexOf(action.meta.id);
      return state.update('todoIds', (ids: any) => ids.delete(toDeletedIndex));

    case Actions.ADD_TODOBOX.SUCCESS:
      const normalizedAddedTodoBox = normalize(action.payload, TDBox);
      return state
        .update('todoBoxEntities', (todoBoxEntities: any) =>
          todoBoxEntities.merge(normalizedAddedTodoBox.entities.TodoBox)
        )
        .update('todoBoxIds', (todoBoxIds: any) => todoBoxIds.push(normalizedAddedTodoBox.result));

    case Actions.GET_TODOBOXS.SUCCESS:
      const normalizeTodoBox = normalize(action.payload, TDBoxs);
      return state
        .update('todoBoxIds', () => List(normalizeTodoBox.result))
        .update('todoBoxEntities', () => fromJS(normalizeTodoBox.entities.TodoBox || {}));

    default:
      return state;
  }
}
開發者ID:A-Horse,項目名稱:bblist,代碼行數:55,代碼來源:todo.reducer.ts

示例2: return

 return (dispatch, store) => {
   let normalized = normalize(data.entries, arrayOf(schema));
   // This is for testing only. If no results are returned, Normalizr will 
   // return result: [ undefined ] and entities[entity] = {undefined:{}}.
   if (normalized.result[0] === undefined) {
     normalized.result.length = 0;
     normalized.entities[toCamelCase(name)] = {};
   }
   // Dispatch event for the main data that was gathered on this request.
   // This includes metadata about the collection.
   dispatch(action(FIND, name.toUpperCase(), {
     result: normalized.result,
     items: normalized.entities[toCamelCase(name)],
     meta: {
       count: data.total_entries,
       page: data.page,
       links: data._links
     }
   }));
   
   // Iterate over other objects that were returned (normalized) and 
   // dispatch add actions for them to get them into the store.
   for (let x in normalized.entities) {
     // Exclude main entity
     if (toLoudSnakeCase(x) !== toLoudSnakeCase(name)) {
       // Iterate over each object passed back and dispatch ADD action
       for (let y in normalized.entities[x]) {
         dispatch(action(ADD, toLoudSnakeCase(x), normalized.entities[x][y]));
       }
     }
   }
 }
開發者ID:jacobmumm,項目名稱:restore,代碼行數:32,代碼來源:splitSchema.ts

示例3: function

 let processJob = function (job: JobModel) {
   let uniqueName = getJobIndexName(job.unique_name);
   if (!_.includes(newState.uniqueNames, uniqueName)) {
     newState.uniqueNames.push(uniqueName);
   }
   let normalizedJobs = normalize(job, JobSchema).entities.jobs;
   newState.byUniqueNames[uniqueName] = {
     ...newState.byUniqueNames[uniqueName], ...normalizedJobs[job.unique_name]
   };
   return newState;
 };
開發者ID:ttsvetanov,項目名稱:polyaxon,代碼行數:11,代碼來源:jobs.ts

示例4: normalize

  protected normalize(response, schema) {

    let camelizedJson = camelizeKeys(response);

    let normalizedResponse = normalize(camelizedJson, schema);

    return {
      result: fromJS(normalizedResponse.result),
      entities: fromJS(normalizedResponse.entities)
    };
  }
開發者ID:dghijben,項目名稱:dashboard,代碼行數:11,代碼來源:Api.ts

示例5: switch

export const users: Reducer<any> = (state = initialState, action: Action) => {
  switch (action.type) {
    case LOADING_USERS:
    case LOADING_USER:
      return state.set('loading', true);
    case LOADED_USERS:
      const normalizedUsers: IUsers = normalize(action.payload, arrayOf(userSchema));

      return state.withMutations(map => {
        map.set('loading', false);
        map.set('result', List(normalizedUsers.result));
        normalizedUsers.result.forEach((userId: number) => {
          map.setIn(
            ['entities', 'users', userId],
            new UserRecord(normalizedUsers.entities.users[userId])
          );
        });
      });
    case LOADED_USER:
      return state.withMutations(map => {
        map.set('loading', false);
        if (map.get('result').indexOf(action.payload.id) === -1) {
          map.update('result', list => list.push(action.payload.id));
        }
        map.setIn(
          ['entities', 'users', action.payload.id],
          new UserRecord(action.payload)
        );
      });
    case DELETING_USER:
      return state.setIn(['entities', 'users', action.payload.id, 'deleting'], true);
    case DELETED_USER:
      return state.withMutations(map => map
        .deleteIn(['entities', 'users', action.payload])
        .deleteIn(['result', map.get('result').indexOf(action.payload)])
      );
    case ADDING_USER:
      return state.set('adding', true);
    case ADDED_USER:
      return state.withMutations(map => map
        .setIn(['entities', 'users', action.payload.id], new UserRecord(action.payload))
        .update('result', list => list.push(action.payload.id))
        .set('adding', false)
      );
    case PATCHED_USER:
      return state
        .setIn(['entities', 'users', action.payload.id], new UserRecord(action.payload));

    default:
      return state;
  }
};
開發者ID:Anhmike,項目名稱:angular2-store-example,代碼行數:52,代碼來源:users.ts

示例6: switch

export const posts: Reducer<any> = (state = initialState, action: Action) => {
  switch (action.type) {
    case LOADING_POSTS:
    case LOADING_POST:
      return state.set('loading', true)
    case LOADED_POSTS:
      const normalizedPosts: IPosts = normalize(action.payload, arrayOf(postSchema))
      return state.withMutations(map => {
        map.set('loading', false)
        map.set('result', List(normalizedPosts.result))
        normalizedPosts.result.forEach((postId: number) => {
          normalizedPosts.entities.posts[postId].user = normalizedPosts.entities.users[normalizedPosts.entities.posts[postId].user]
          map.setIn(
            ['entities', 'posts', postId],
            new PostRecord(normalizedPosts.entities.posts[postId])
          )
        })
      })
    case LOADED_POST:
      return state.withMutations(map => {
        map.set('loading', false)
        if (map.get('result').indexOf(action.payload.id) === -1) {
          map.update('result', list => list.push(action.payload.id))
        }
        map.setIn(
          ['entities', 'posts', action.payload.id],
          new PostRecord(action.payload)
        )
      })
    case DELETING_POST:
      return state.setIn(['entities', 'posts', action.payload.id, 'deleting'], true)
    case DELETED_POST:
      return state.withMutations(map => map
        .deleteIn(['entities', 'posts', action.payload])
        .deleteIn(['result', map.get('result').indexOf(action.payload)])
      )
    case ADDING_POST:
      return state.set('adding', true)
    case ADDED_POST:
      return state.withMutations(map => map
        .setIn(['entities', 'posts', action.payload.id], new PostRecord(action.payload))
        .update('result', list => list.push(action.payload.id))
        .set('adding', false)
      )
    case PATCHED_POST:
      return state
        .setIn(['entities', 'posts', action.payload.id], new PostRecord(action.payload))

    default:
      return state
  }
}
開發者ID:AmbientIT,項目名稱:ng2Experiments,代碼行數:52,代碼來源:post.reducer.ts

示例7: function

 let processUser = function (user: UserModel) {
   if (!_.includes(newState.userNames, user.username)) {
     newState.userNames.push(user.username);
   }
   let normalizedUsers = normalize(user, UserSchema).entities.users;
   newState.byUserNames[user.username] = {
     ...newState.byUserNames[user.username], ...normalizedUsers[user.username]
   };
   if (newState.byUserNames[user.username].projects == null) {
     newState.byUserNames[user.username].projects = [];
   }
   return newState;
 };
開發者ID:ttsvetanov,項目名稱:polyaxon,代碼行數:13,代碼來源:user.ts

示例8: function

 let processExperiment = function (experiment: ExperimentModel) {
   let uniqueName = getExperimentIndexName(experiment.unique_name);
   if (!_.includes(newState.uniqueNames, uniqueName)) {
     newState.uniqueNames.push(uniqueName);
   }
   let normalizedExperiments = normalize(experiment, ExperimentSchema).entities.experiments;
   newState.byUniqueNames[uniqueName] = {
     ...newState.byUniqueNames[uniqueName], ...normalizedExperiments[experiment.unique_name]
   };
   if (newState.byUniqueNames[uniqueName].jobs == null) {
     newState.byUniqueNames[uniqueName].jobs = [];
   }
   return newState;
 };
開發者ID:ttsvetanov,項目名稱:polyaxon,代碼行數:14,代碼來源:experiments.ts

示例9: function

 let processGroup = function(group: GroupModel) {
   let uniqueName = group.unique_name;
   if (!_.includes(newState.uniqueNames, uniqueName)) {
     newState.uniqueNames.push(uniqueName);
   }
   let normalizedGroups = normalize(group, GroupSchema).entities.groups;
   newState.byUniqueNames[uniqueName] = {
     ...newState.byUniqueNames[uniqueName], ...normalizedGroups[uniqueName]
   };
   if (newState.byUniqueNames[uniqueName].experiments == null) {
     newState.byUniqueNames[uniqueName].experiments = [];
   }
   return newState;
 };
開發者ID:ttsvetanov,項目名稱:polyaxon,代碼行數:14,代碼來源:groups.ts

示例10: function

 let processProject = function(project: ProjectModel) {
   let uniqueName = project.unique_name;
   if (!_.includes(newState.uniqueNames, uniqueName)) {
     newState.uniqueNames.push(uniqueName);
   }
   let normalizedProjects = normalize(project, ProjectSchema).entities.projects;
   newState.byUniqueNames[uniqueName] = {
     ...newState.byUniqueNames[uniqueName], ...normalizedProjects[uniqueName]
   };
   if (newState.byUniqueNames[uniqueName].experiments == null) {
     newState.byUniqueNames[uniqueName].experiments = [];
   }
   if (newState.byUniqueNames[uniqueName].groups == null) {
     newState.byUniqueNames[uniqueName].groups = [];
   }
   return newState;
 };
開發者ID:ttsvetanov,項目名稱:polyaxon,代碼行數:17,代碼來源:projects.ts


注:本文中的normalizr.normalize函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。