npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@semiotic-labs/graph-tables

v1.0.0

Published

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

Downloads

4

Readme

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