Създаване на SubQuery проект

... 2022-12-1 Less than 1 minute

# Създаване на SubQuery проект

В ръководството за бързо стартиране, набързо разгледахме пример, за да ви дадем представа какво представлява SubQuery и как работи. Тук ще разгледаме по-отблизо работния процес при създаването на вашия проект и ключовите файлове, с които ще работите.

# Основният работен процес

Някои от следните примери предполагат, че сте инициализирали успешно стартовия пакет в секцията Бърз старт. В този стартов пакет ще преминем през стандартния процес за персонализиране и изпълнение на вашия SubQuery проект.

  1. Инициализирайте проекта си с помощта на subql init PROJECT_NAME.
  2. Актуализирайте Манифест файла (project.yaml) за да включите информация относно вашият блокчейн и обектите, които ще включите - вижте Manifest File
  3. Създайте GraphQL обекти във вашата схема (schema.graphql) които дефинират формата на данните, които ще извлечете и ще запазите за заявка - вижте GraphQL Schema
  4. Добавете всички функции за мапинг (eg mappingHandlers.ts) които искате да включите, за да трансформирате верижните данни към обектите на GraphQL, които сте дефинирали - вижте Mapping
  5. Генерирайте, изградете и публикувайте своя код в SubQuery Projects (или стартирайте във вашия собствен локален нод) - вижте Изпълнение и запитване на вашия начален проект в нашето ръководство за бърз старт.

# Структура на директорията

Следващата карта предоставя общ преглед на структурата на директорията на SubQuery проект, когато се изпълнява командата init.

- project-name
  L package.json
  L project.yaml
  L README.md
  L schema.graphql
  L tsconfig.json
  L docker-compose.yml
  L src
    L index.ts
    L mappings
      L mappingHandlers.ts
  L .gitignore
1
2
3
4
5
6
7
8
9
10
11
12

Например:

Структура на директория на Subquery

# Генериране на код

Всеки път, когато променяте вашите GraphQL обекти, трябва да регенерирате вашата директория с типове, със следната команда.

yarn codegen
1

Това ще създаде нова директория (или ще актуализира съществуващите) src/types които съдържат генерирани класове на обекти за всеки тип, който сте дефинирали по-рано в schema.graphql. Тези класове осигуряват безопасно зареждане на обекти, достъп за четене и запис до полета на обект - вижте повече за този процес в the GraphQL Schema.

# Изграждане

За да стартирате вашия SubQuery Project на локално хостван SubQuery нод, първо трябва да изградите своята работа.

Изпълнете командата за изграждане от основната директория на проекта.

# Алтернативни опции за играждане

Поддържаме допълнителни опции за изграждане за проекти SubQuery използвайки subql build.

С това можете да дефинирате допълнителни входни точки за изграждане, като използвате полето за експортиране в package.json.

"name": "project-name",
"version": "1.0.0",
...
"exports": {
  "entry_one": "./src/entry_one.ts",
  "entry_renamed": "./src/entry_two.ts"
},
1
2
3
4
5
6
7

След това, като стартира subql build, той ще генерира dist папка със следната структура:

- project-name
  L dist
    L entry_one.js
    L entry_renamed.js
    L index.js
1
2
3
4
5

Имайте предвид, че той ще състави index.ts независимо дали е посочен в полето за експортиране или не.

За повече информация относно използването на обозначителните флагове, вижте cli reference (opens new window).

# Логване

console.log метод вече не се поддържа. Вместо това logger модул е инжектиран в types, което означава, че можем да поддържаме регистратор, приемащ различни нива на логване.

logger.info("Info level message");
logger.debug("Debugger level message");
logger.warn("Warning level message");
1
2
3

За да използвате logger.info или logger.warn, просто поставете реда във вашия файл за преобразуване.

logging.info

За да използвате logger.debug, е необходима допълнителна стъпка. Добавете --log-level=debug към вашия команден ред.

Ако използвате докер контейнер, добавете този ред към вашия файл docker-compose.yaml.

logging.debug

Сега трябва да видите новото регистриране на екрана на терминала.

logging.debug

Last update: December 1, 2022 23:29