micalevisk / micalevisk.github.io

Site pessoal para listar TODOS os meus repositórios do GitHub
https://micalevisk.github.io
0 stars 0 forks source link

Otimizar cache #14

Open micalevisk opened 5 years ago

micalevisk commented 5 years ago

O uso direto do session storage não é a solução mais econômica pra armazenar os dados recuperados da API do GitHub

vide:

micalevisk commented 5 years ago

necessário estudar uma alternativa https://github.com/micalevisk/micalevisk.github.io/blob/9b68ea8d6b3230664f6cfef367c20d17bc3e0387/src/utils.js#L73-L91

micalevisk commented 5 years ago

baseado na seguinte query

é a informação cacheada

query ($number_of_repos: Int!, $number_of_langs: Int!) {
  viewer {
    bio
    repositories(first: $number_of_repos, orderBy: {field: CREATED_AT, direction: DESC}) {
      edges {
        node {
          ...repoInfo
          languages(first: $number_of_langs) {
            edges {
              node {
                name
                color
              }
            }
          }
        }
      }
    }
  }
}

fragment repoInfo on Repository {
  name
  url
  description
  homepageUrl
  createdAt
  updatedAt
  isFork
  isPrivate
  owner {
    login
  }
}

exemplo de resposta

usando number_of_repos igual a 2

{
  "data": {
    "viewer": {
      "bio": "💻 CS Student at Federal University of Amazonas (UFAM) :brazil:",
      "repositories": {
        "edges": [
          {
            "node": {
              "languages": {
                "edges": [
                  {
                    "node": {
                      "name": "JavaScript",
                      "color": "#f1e05a"
                    }
                  }
                ]
              },
              "name": "gimmie-sticker",
              "url": "https://github.com/micalevisk/gimmie-sticker",
              "description": ":guardsman: Trade a Pull Request for a Sticker",
              "homepageUrl": "https://angularfirebase.com",
              "createdAt": "2018-10-26T19:17:35Z",
              "updatedAt": "2018-10-26T19:31:26Z",
              "isFork": true,
              "isPrivate": false,
              "owner": {
                "login": "micalevisk"
              }
            }
          },
          {
            "node": {
              "languages": {
                "edges": []
              },
              "name": "regex-crossword-solutions",
              "url": "https://github.com/micalevisk/regex-crossword-solutions",
              "description": ":x: :guardsman:",
              "homepageUrl": "https://regexcrossword.com/",
              "createdAt": "2018-10-13T00:19:31Z",
              "updatedAt": "2018-10-13T00:20:15Z",
              "isFork": false,
              "isPrivate": true,
              "owner": {
                "login": "micalevisk"
              }
            }
          }
        ]
      }
    }
  }
}
micalevisk commented 5 years ago

verificar possibilidade de comprimir um JSON

Deve ser passível de ida e volta

vide algoritmos