Ana içeriğe atla

Yeni bir SubQuery Projesini Oluşturma

SubQuery TeamYaklaşık 2 dakika

Yeni bir SubQuery Projesini Oluşturma

quick start kılavuzunda, SubQuery'nin ne olduğunu ve nasıl çalıştığını size tattırmak için çok hızlı bir şekilde bir örnek inceledik. Burada projenizi oluştururken iş akışına ve çalışacağınız anahtar dosyalara daha yakından bakacağız.

Temel İş Akışı

Aşağıdaki örneklerden bazıları, başlangıç paketini Quick start bölümünde başarıyla başlatmış olduğunuzu varsayar. Bu başlangıç paketinden, SubQuery projenizi özelleştirmek ve uygulamak için standart süreçten geçeceğiz.

  1. Projenizi kullanarak başlatın subql init PROJECT_NAME.
  2. Manifest dosyasını (project.yaml) blok zinciriniz ve eşleyeceğiniz varlıklar hakkında bilgi içerecek şekilde güncelleştirin - bkz Manifest File
  3. Şemanızda (schema.graphql) ayıklayacağınız ve sorgulamak için sürdüreceğiniz verilerin şeklini tanımlayan GraphQL varlıkları oluşturun - bkz GraphQL Şeması
  4. Zincir verilerini tanımladığınız GraphQL varlıklarına dönüştürmek için çağırmak istediğiniz tüm eşleme işlevlerini (örneğinmappingHandlers.ts) ekleyin - bkzMapping
  5. Kodunuzu SubQuery Projects oluşturun, oluşturun ve yayımlayın (veya kendi yerel düğümünüzde çalıştırın) - hızlı başlangıç kılavuzumuzda Starter Projenizi Çalıştırma ve Sorgulama bakın.

Dizin Yapısı

Aşağıdaki eşleme, init komutu çalıştırıldığında, Bir SubQuery projesinin dizin yapısına genel bir bakış sağlar.

- 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

Mesela:

SubQuery dizin yapısı

Kod Oluşturma

GraphQL varlıklarınızı her değiştirdiğinizde, türler dizininizi aşağıdaki komutla yeniden değiştirmeniz gerekir.

yarn codegen

Bu, daha önce schema.graphql tanımladığınız her tür için oluşturulan varlık sınıflarını içeren yeni bir dizin (veya varolan) src/types oluşturur. Bu sınıflar varlık alanlarına tür açısından güvenli varlık yükleme, okuma ve yazma erişimi sağlar - GraphQL Şeması bu işlem hakkında daha fazla bilgi edinin.

Oluştur

SubQuery Project yerel olarak barındırılan bir SubQuery Node çalıştırmak için önce çalışmanızı oluşturmanız gerekir.

Yapı komutunu projenin kök dizininden çalıştırın.

::: code-tabs @tab:active yarn shell yarn build @tab npm bash npm run-script build :::

Alternative build options

We support additional build options for subquery projects using subql build.

Bununla, dışa aktar alanını kullanarak oluşturulacak ek giriş noktaları tanımlayabilirsiniz package.json.

"name": "project-name",
"version": "1.0.0",
...
"exports": {
  "entry_one": "./src/entry_one.ts",
  "entry_renamed": "./src/entry_two.ts"
},

Sonra koşarak subql buildaşağıdaki yapıya sahip bir dist klasörü oluşturacaktır:

- project-name
  L dist
    L entry_one.js
    L entry_renamed.js
    L index.js

İnşa edeceğini unutmayın index.ts dışa aktarma alanında belirtilip belirtilmediği.

Bayraklar da dahil olmak üzere bunu kullanma hakkında daha fazla bilgi için bkz. cli referenceopen in new window.

Logging

Bu console.logyöntem artık desteklenmiyor. Yerine, a logger türlere modül enjekte edildi, bu da çeşitli günlük seviyelerini kabul edebilen bir kaydediciyi destekleyebileceğimiz anlamına geliyor.

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

Kullanmak logger.info or logger.warn,satırı eşleme dosyanıza yerleştirin.

logging.info

Kullanmak logger.debug, ek bir bayrak gereklidir. Ekleme --log-level=debugkomut satırına.

Bir docker kapsayıcısı çalıştırıyorsanız, bu satırıdocker-compose.yaml file.

logging.debug

Şimdi terminal ekranında yeni günlüğü görmelisiniz.

logging.debug