Yeni bir SubQuery Projesini Oluşturma
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.
- Projenizi kullanarak başlatın
subql init PROJECT_NAME
. - 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 - Ş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ı - 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ğin
mappingHandlers.ts
) ekleyin - bkzMapping - 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:
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 build
aş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 reference.
Logging
Bu console.log
yö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.
Kullanmak logger.debug
, ek bir bayrak gereklidir. Ekleme --log-level=debug
komut satırına.
Bir docker kapsayıcısı çalıştırıyorsanız, bu satırıdocker-compose.yaml
file.
Şimdi terminal ekranında yeni günlüğü görmelisiniz.