All files / examples/starwars data.js

90.91% Statements 20/22
50% Branches 2/4
83.33% Functions 5/6
90.48% Lines 19/21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109  1x 1x             1x             1x           1x             1x           1x             1x             1x             1x         3x     3x   1x   1x     1x   1x   4x   1x       1x                                                      
 
const luke = {
  id: "1000",
  name: "Luke Skywalker",
  friendIds: ["1002", "1003", "2000", "2001"],
  appearsIn: [4, 5, 6],
  homePlanet: "Tatooine"
};
 
const vader = {
  id: "1001",
  name: "Darth Vader",
  friendIds: ["1004"],
  appearsIn: [4, 5, 6],
  homePlanet: "Tatooine"
};
 
const han = {
  id: "1002",
  name: "Han Solo",
  friendIds: ["1000", "1003", "2001"],
  appearsIn: [4, 5, 6]
};
 
const leia = {
  id: "1003",
  name: "Leia Organa",
  friendIds: ["1000", "1002", "2000", "2001"],
  appearsIn: [4, 5, 6],
  homePlanet: "Alderaan"
};
 
const tarkin = {
  id: "1004",
  name: "Wilhuff Tarkin",
  friendIds: ["1001"],
  appearsIn: [4]
};
 
const humanData = {
  1000: luke,
  1001: vader,
  1002: han,
  1003: leia,
  1004: tarkin
};
 
const threepio = {
  id: "2000",
  name: "C-3PO",
  friendIds: ["1000", "1002", "1003", "2001"],
  appearsIn: [4, 5, 6],
  primaryFunction: "Protocol"
};
 
const artoo = {
  id: "2001",
  name: "R2-D2",
  friendIds: ["1000", "1002", "1003"],
  appearsIn: [4, 5, 6],
  primaryFunction: "Astromech"
};
 
const droidData = {
  2000: threepio,
  2001: artoo
};
 
/**I
   * Helper function to get a character by ID.
   */
function getCharacter(id) {
  // Returning a promise just to illustrate GraphQL.js's support.
  return Promise.resolve(humanData[id] || droidData[id]);
}
 
/**
   * Allows us to query for a character's friendIds.
   */
export function getFriends(character) {
  return character.friendIds.map(id => getCharacter(id));
}
 
/**
   * Allows us to fetch the undisputed hero of the Star Wars trilogy, R2-D2.
   */
export function getHero(episode) {
  if (episode === 5) {
    // Luke is the hero of Episode V.
    return luke;
  }
  // Artoo is the hero otherwise.
  return artoo;
}
 
/**
   * Allows us to query for the human with the given id.
   */
export function getHuman(id) {
  return humanData[id];
}
 
/**
   * Allows us to query for the droid with the given id.
   */
export function getDroid(id) {
  return droidData[id];
}