@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$
orblock_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