JSPM

@semiotic-labs/graph-tables

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q13763F
  • License MIT

Extracts database schema from a GraphQL schema based on thegraph protocol implementation.

Package Exports

  • @semiotic-labs/graph-tables
  • @semiotic-labs/graph-tables/dist/cjs/index.js
  • @semiotic-labs/graph-tables/dist/esm/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@semiotic-labs/graph-tables) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

graph-tables

Postgres database schema parser for Graph Protocol subgraph schema

semantic-release Actions Status License

npm install version

Highlights

  • Simple layout parse function
  • Exact same identifier (table, column, enum, etc..) naming from graph-node implementation of postgres schema generation.
  • JS mappings used for fast table and column search
  • Enum definitions
  • Detailed column types including enum and foreign key references
  • One to one and one to many table relations
  • block$ or block_range column based on the GraphQL entity mutability.
  • Package include CommonJS, ES Modules, UMD version and TypeScript declaration files.

Install

npm install graph-tables

Usage

import {parse} from 'graph-tables';

const simple_schema = `
    type SomeComplexTableErc20Name  @entity {
        "Some description about a string field"
        id: ID!,
        nullableField:Boolean,
        booleanField:Boolean!,
        bigIntField:BigInt!,
        bytesField:Bytes!,
        bigDecimalField:BigDecimal!,
        intField:Int!,
        int8Field:Int8!,
        stringField:String!
    }
`;

const layout = parse(simple_schema);

Examples

The examples folder contains sample subgraph search and parsing example using the library.

What is the name of the subgraph? uniswap-v3
First 20 subgraphs found: 
1. hype-pool-uniswap-v3-arbitrum
2. uniswap-v3-mainnet
3. polygon-uniswap-v3
4. uniswap-v3-optimism
5. uniswap-v3-polygon
6. uniswap-v3-arbitrum
7. uniswap-v3-ethereum
8. uniswap-v3-avalanche
9. uniswap-v3-polygon
Enter subgraph index to view the database layout: 7
Selected subgraph: uniswap-v3-ethereum
Fetching layout... QmZ1y5FfQkxxFXydm1jvpUgC2bC719wvTm9AAfTy5WeKiR-QmcBpDfSAt3jxFZCenUCVnyuNgPkRhz1aD3MA4SiNKPyRR
Database layout: 
        Enums:
        Tables:
                fee_amount_enabled
                        block$
                        vid
                        id
                        fee
                        tick_spacing
                        block_number
                        block_timestamp
                        transaction_hash
                owner_changed
                        block$
                        vid
                        id
                        old_owner
                        new_owner
                        block_number
                        block_timestamp
                        transaction_hash
                pool_created
                        block$
                        vid
                        id
                        token_0
                        token_1
                        fee
                        tick_spacing
                        pool
                        block_number
                        block_timestamp
                        transaction_hash