CLI to flatten and generate GQL schema from Solidity file (#245)

* Add schema generation.

* Use yargs and add a script to generate schema.

* Add command to generate schema to README.md

* Remove use of arrow functions in visitor.

* Add function to export schema in visitor.

* Create Event union while adding to it.

* Add bool to typemappings.

* Add method descriptions and remove output type mappings.

* Add storage mode.

* Add URL support and a flattening script.

* Fix parameter for flattening in README.md.

* Add setup and references to README.md.

Co-authored-by: prathamesh <prathamesh.musale0@gmail.com>
This commit is contained in:
Ashwin Phatak
2021-09-16 17:06:10 +05:30
committed by GitHub
co-authored by prathamesh
parent a9dc34f704
commit f9934675b2
9 changed files with 1080 additions and 7 deletions
+44
View File
@@ -0,0 +1,44 @@
{
"name": "@vulcanize/codegen",
"version": "0.1.0",
"description": "Code generator",
"private": true,
"main": "index.js",
"scripts": {
"lint": "eslint .",
"codegen:gql": "ts-node src/generate-schema.ts",
"codegen:flatten": "poa-solidity-flattener"
},
"repository": {
"type": "git",
"url": "git+https://github.com/vulcanize/watcher-ts.git"
},
"author": "",
"license": "AGPL-3.0",
"bugs": {
"url": "https://github.com/vulcanize/watcher-ts/issues"
},
"homepage": "https://github.com/vulcanize/watcher-ts#readme",
"dependencies": {
"@poanet/solidity-flattener": "https://github.com/vulcanize/solidity-flattener.git#pm-make-compatible",
"@solidity-parser/parser": "^0.13.2",
"graphql": "^15.5.0",
"graphql-compose": "^9.0.3",
"node-fetch": "^2",
"ts-node": "^10.2.1",
"typescript": "^4.4.2",
"yargs": "^17.1.1"
},
"devDependencies": {
"@openzeppelin/contracts": "^4.3.2",
"@types/node": "^16.9.0",
"@typescript-eslint/eslint-plugin": "^4.31.1",
"@typescript-eslint/parser": "^4.31.1",
"eslint": "^7.32.0",
"eslint-config-semistandard": "^16.0.0",
"eslint-config-standard": "^16.0.3",
"eslint-plugin-import": "^2.24.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.0"
}
}