@graphprotocol/graph-cli 0.49.0-alpha-20230505103249-d3fbf0b → 0.49.0-alpha-20230505152117-ef48fdf
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -1
- package/dist/codegen/schema.d.ts +0 -7
- package/dist/codegen/schema.js +0 -97
- package/dist/codegen/schema.test.js +7 -2
- package/dist/command-helpers/studio.d.ts +1 -1
- package/dist/command-helpers/studio.js +2 -0
- package/dist/protocols/index.js +1 -8
- package/dist/type-generator.js +0 -1
- package/oclif.manifest.json +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @graphprotocol/graph-cli
|
|
2
2
|
|
|
3
|
-
## 0.49.0-alpha-
|
|
3
|
+
## 0.49.0-alpha-20230505152117-ef48fdf
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
@@ -14,6 +14,24 @@
|
|
|
14
14
|
Thanks [@saihaj](https://github.com/saihaj)! - Add loadInBlock function for entities as part of
|
|
15
15
|
codegen
|
|
16
16
|
|
|
17
|
+
- [#1339](https://github.com/graphprotocol/graph-tooling/pull/1339)
|
|
18
|
+
[`214cd71`](https://github.com/graphprotocol/graph-tooling/commit/214cd7153aabd427b52c87f5f3643212cb615913)
|
|
19
|
+
Thanks [@saihaj](https://github.com/saihaj)! - allow deploy optimism and optimism-goerli on studio
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- [#1328](https://github.com/graphprotocol/graph-tooling/pull/1328)
|
|
24
|
+
[`4963215`](https://github.com/graphprotocol/graph-tooling/commit/4963215564797393424c563ea0b51aabbfd8e33e)
|
|
25
|
+
Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
|
|
26
|
+
|
|
27
|
+
- Updated dependency [`@oclif/core@2.8.4` ↗︎](https://www.npmjs.com/package/@oclif/core/v/2.8.4)
|
|
28
|
+
(from `2.8.2`, in `dependencies`)
|
|
29
|
+
|
|
30
|
+
- [#1331](https://github.com/graphprotocol/graph-tooling/pull/1331)
|
|
31
|
+
[`b2c8dec`](https://github.com/graphprotocol/graph-tooling/commit/b2c8decb7806d25df6ca4e07f6dfdf7941516435)
|
|
32
|
+
Thanks [@saihaj](https://github.com/saihaj)! - only allow mainnet for substreams in network
|
|
33
|
+
selection for init
|
|
34
|
+
|
|
17
35
|
## 0.48.0
|
|
18
36
|
|
|
19
37
|
### Minor Changes
|
package/dist/codegen/schema.d.ts
CHANGED
|
@@ -21,20 +21,13 @@ export default class SchemaCodeGenerator {
|
|
|
21
21
|
constructor(schema: Schema);
|
|
22
22
|
generateModuleImports(): tsCodegen.ModuleImports[];
|
|
23
23
|
generateTypes(): Array<tsCodegen.Class>;
|
|
24
|
-
generateDerivedLoaders(): any[];
|
|
25
24
|
_isEntityTypeDefinition(def: DefinitionNode): def is ObjectTypeDefinitionNode;
|
|
26
|
-
_isDerivedField(field: any): boolean;
|
|
27
25
|
_isInterfaceDefinition(def: DefinitionNode): def is InterfaceTypeDefinitionNode;
|
|
28
26
|
_generateEntityType(def: ObjectTypeDefinitionNode): tsCodegen.Class;
|
|
29
|
-
_generateDerivedLoader(typeName: string): any;
|
|
30
|
-
_getTypeNameForField(gqlType: TypeNode): string;
|
|
31
27
|
_generateConstructor(_entityName: string, fields: readonly FieldDefinitionNode[] | undefined): tsCodegen.Method;
|
|
32
28
|
_generateStoreMethods(entityName: string, idField: IdField): Array<tsCodegen.Method | tsCodegen.StaticMethod>;
|
|
33
29
|
_generateEntityFieldMethods(entityDef: ObjectTypeDefinitionNode, fieldDef: FieldDefinitionNode): Array<tsCodegen.Method>;
|
|
34
30
|
_generateEntityFieldGetter(_entityDef: ObjectTypeDefinitionNode, fieldDef: FieldDefinitionNode): tsCodegen.Method;
|
|
35
|
-
_generateDerivedFieldGetter(entityDef: any, fieldDef: FieldDefinitionNode): tsCodegen.Method;
|
|
36
|
-
_returnTypeForDervied(gqlType: any): any;
|
|
37
|
-
_generatedEntityDerivedFieldGetter(_entityDef: any, fieldDef: FieldDefinitionNode): tsCodegen.Method;
|
|
38
31
|
_generateEntityFieldSetter(_entityDef: ObjectTypeDefinitionNode, fieldDef: FieldDefinitionNode): tsCodegen.Method | null;
|
|
39
32
|
_resolveFieldType(gqlType: NamedTypeNode): string;
|
|
40
33
|
/** Return the type that values for this field must have. For scalar
|
package/dist/codegen/schema.js
CHANGED
|
@@ -22,12 +22,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
/* eslint-disable unicorn/no-array-for-each */
|
|
30
|
-
const debug_1 = __importDefault(require("debug"));
|
|
31
26
|
const typesCodegen = __importStar(require("./types"));
|
|
32
27
|
const tsCodegen = __importStar(require("./typescript"));
|
|
33
28
|
class IdField {
|
|
@@ -103,24 +98,10 @@ class SchemaCodeGenerator {
|
|
|
103
98
|
})
|
|
104
99
|
.filter(Boolean);
|
|
105
100
|
}
|
|
106
|
-
generateDerivedLoaders() {
|
|
107
|
-
const fields = this.schema.ast.definitions
|
|
108
|
-
.filter(def => this._isEntityTypeDefinition(def))
|
|
109
|
-
.flatMap((def) => def.fields)
|
|
110
|
-
.filter((def) => this._isDerivedField(def))
|
|
111
|
-
.map((def) => this._getTypeNameForField(def.type));
|
|
112
|
-
return [...new Set(fields)].map((typeName) => {
|
|
113
|
-
return this._generateDerivedLoader(typeName);
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
101
|
_isEntityTypeDefinition(def) {
|
|
117
102
|
return (def.kind === 'ObjectTypeDefinition' &&
|
|
118
103
|
def.directives?.find(directive => directive.name.value === 'entity') !== undefined);
|
|
119
104
|
}
|
|
120
|
-
_isDerivedField(field) {
|
|
121
|
-
return (field.directives?.find((directive) => directive.name.value === 'derivedFrom') !==
|
|
122
|
-
undefined);
|
|
123
|
-
}
|
|
124
105
|
_isInterfaceDefinition(def) {
|
|
125
106
|
return def.kind === 'InterfaceTypeDefinition';
|
|
126
107
|
}
|
|
@@ -139,42 +120,6 @@ class SchemaCodeGenerator {
|
|
|
139
120
|
.forEach((method) => klass.addMethod(method));
|
|
140
121
|
return klass;
|
|
141
122
|
}
|
|
142
|
-
_generateDerivedLoader(typeName) {
|
|
143
|
-
// <field>Loader
|
|
144
|
-
const klass = tsCodegen.klass(`${typeName}Loader`, { export: true, extends: 'Entity' });
|
|
145
|
-
klass.addMember(tsCodegen.klassMember('_entity', 'string'));
|
|
146
|
-
klass.addMember(tsCodegen.klassMember('_field', 'string'));
|
|
147
|
-
klass.addMember(tsCodegen.klassMember('_id', 'string'));
|
|
148
|
-
// Generate and add a constructor
|
|
149
|
-
klass.addMethod(tsCodegen.method('constructor', [
|
|
150
|
-
tsCodegen.param('entity', 'string'),
|
|
151
|
-
tsCodegen.param('id', 'string'),
|
|
152
|
-
tsCodegen.param('field', 'string'),
|
|
153
|
-
], undefined, `
|
|
154
|
-
super();
|
|
155
|
-
this._entity = entity;
|
|
156
|
-
this._id = id;
|
|
157
|
-
this._field = field;
|
|
158
|
-
`));
|
|
159
|
-
// Generate load() method for the Loader
|
|
160
|
-
klass.addMethod(tsCodegen.method('load', [], `${typeName}[]`, `
|
|
161
|
-
let value = store.loadRelated(this._entity, this._id, this._field);
|
|
162
|
-
return changetype<${typeName}[]>(value);
|
|
163
|
-
`));
|
|
164
|
-
return klass;
|
|
165
|
-
}
|
|
166
|
-
_getTypeNameForField(gqlType) {
|
|
167
|
-
if (gqlType.kind === 'NonNullType') {
|
|
168
|
-
return this._getTypeNameForField(gqlType.type);
|
|
169
|
-
}
|
|
170
|
-
if (gqlType.kind === 'ListType') {
|
|
171
|
-
return this._getTypeNameForField(gqlType.type);
|
|
172
|
-
}
|
|
173
|
-
if (gqlType.kind === 'NamedType') {
|
|
174
|
-
return gqlType.name.value;
|
|
175
|
-
}
|
|
176
|
-
throw new Error(`Unknown type kind: ${gqlType}`);
|
|
177
|
-
}
|
|
178
123
|
_generateConstructor(_entityName, fields) {
|
|
179
124
|
const idField = IdField.fromFields(fields);
|
|
180
125
|
return tsCodegen.method('constructor', [tsCodegen.param('id', idField.tsNamedType())], undefined, `
|
|
@@ -211,12 +156,6 @@ class SchemaCodeGenerator {
|
|
|
211
156
|
.filter(Boolean);
|
|
212
157
|
}
|
|
213
158
|
_generateEntityFieldGetter(_entityDef, fieldDef) {
|
|
214
|
-
const isDerivedField = this._isDerivedField(fieldDef);
|
|
215
|
-
const codegenDebug = (0, debug_1.default)('codegen');
|
|
216
|
-
if (isDerivedField) {
|
|
217
|
-
codegenDebug(`Generating derived field getter for ${fieldDef.name.value}`);
|
|
218
|
-
return this._generateDerivedFieldGetter(_entityDef, fieldDef);
|
|
219
|
-
}
|
|
220
159
|
const name = fieldDef.name.value;
|
|
221
160
|
const gqlType = fieldDef.type;
|
|
222
161
|
const fieldValueType = this._valueTypeFromGraphQl(gqlType);
|
|
@@ -240,42 +179,6 @@ class SchemaCodeGenerator {
|
|
|
240
179
|
${isNullable ? getNullable : getNonNullable}
|
|
241
180
|
`);
|
|
242
181
|
}
|
|
243
|
-
_generateDerivedFieldGetter(entityDef, fieldDef) {
|
|
244
|
-
const entityName = entityDef.name.value;
|
|
245
|
-
const name = fieldDef.name.value;
|
|
246
|
-
const gqlType = fieldDef.type;
|
|
247
|
-
const returnType = this._returnTypeForDervied(gqlType);
|
|
248
|
-
return tsCodegen.method(`get ${name}`, [], returnType, `
|
|
249
|
-
return new ${returnType}('${entityName}', this.get('id')!.toString(), '${name}')
|
|
250
|
-
`);
|
|
251
|
-
}
|
|
252
|
-
_returnTypeForDervied(gqlType) {
|
|
253
|
-
if (gqlType.kind === 'NonNullType') {
|
|
254
|
-
return this._returnTypeForDervied(gqlType.type);
|
|
255
|
-
}
|
|
256
|
-
if (gqlType.kind === 'ListType') {
|
|
257
|
-
return this._returnTypeForDervied(gqlType.type);
|
|
258
|
-
}
|
|
259
|
-
const type = tsCodegen.namedType(gqlType.name.value + 'Loader');
|
|
260
|
-
return type;
|
|
261
|
-
}
|
|
262
|
-
_generatedEntityDerivedFieldGetter(_entityDef, fieldDef) {
|
|
263
|
-
const name = fieldDef.name.value;
|
|
264
|
-
const gqlType = fieldDef.type;
|
|
265
|
-
const fieldValueType = this._valueTypeFromGraphQl(gqlType);
|
|
266
|
-
const returnType = this._typeFromGraphQl(gqlType);
|
|
267
|
-
const isNullable = returnType instanceof tsCodegen.NullableType;
|
|
268
|
-
const getNonNullable = `return ${typesCodegen.valueToAsc('value!', fieldValueType)}`;
|
|
269
|
-
const getNullable = `if (!value || value.kind == ValueKind.NULL) {
|
|
270
|
-
return null
|
|
271
|
-
} else {
|
|
272
|
-
return ${typesCodegen.valueToAsc('value', fieldValueType)}
|
|
273
|
-
}`;
|
|
274
|
-
return tsCodegen.method(`get ${name}`, [], returnType, `
|
|
275
|
-
let value = this.get('${name}')
|
|
276
|
-
${isNullable ? getNullable : getNonNullable}
|
|
277
|
-
`);
|
|
278
|
-
}
|
|
279
182
|
_generateEntityFieldSetter(_entityDef, fieldDef) {
|
|
280
183
|
const name = fieldDef.name.value;
|
|
281
184
|
const isDerivedField = !!fieldDef.directives?.find(directive => directive.name.value === 'derivedFrom');
|
|
@@ -276,9 +276,14 @@ describe('Schema code generator', () => {
|
|
|
276
276
|
{
|
|
277
277
|
name: 'get wallets',
|
|
278
278
|
params: [],
|
|
279
|
-
returnType: new typescript_1.NamedType('
|
|
279
|
+
returnType: new typescript_1.NullableType(new typescript_1.ArrayType(new typescript_1.NamedType('string'))),
|
|
280
280
|
body: `
|
|
281
|
-
|
|
281
|
+
let value = this.get('wallets')
|
|
282
|
+
if (!value || value.kind == ValueKind.NULL) {
|
|
283
|
+
return null
|
|
284
|
+
} else {
|
|
285
|
+
return value.toStringArray()
|
|
286
|
+
}
|
|
282
287
|
`,
|
|
283
288
|
},
|
|
284
289
|
],
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const allowedStudioNetworks: readonly ["mainnet", "rinkeby", "goerli", "gnosis", "chapel", "optimism-goerli", "clover", "fantom", "matic", "fantom-testnet", "arbitrum-goerli", "fuji", "celo-alfajores", "mumbai", "aurora-testnet", "near-testnet", "theta-testnet-001", "osmo-test-4", "base-testnet", "celo", "arbitrum-one", "avalanche", "zksync-era", "sepolia", "polygon-zkevm-testnet", "polygon-zkevm"];
|
|
1
|
+
export declare const allowedStudioNetworks: readonly ["mainnet", "rinkeby", "goerli", "gnosis", "chapel", "optimism-goerli", "clover", "fantom", "matic", "fantom-testnet", "arbitrum-goerli", "fuji", "celo-alfajores", "mumbai", "aurora-testnet", "near-testnet", "optimism", "optimism-goerli", "theta-testnet-001", "osmo-test-4", "base-testnet", "celo", "arbitrum-one", "avalanche", "zksync-era", "sepolia", "polygon-zkevm-testnet", "polygon-zkevm"];
|
|
2
2
|
export declare const validateStudioNetwork: ({ studio, product, network, }: {
|
|
3
3
|
studio?: string | boolean | undefined;
|
|
4
4
|
product?: string | undefined;
|
package/dist/protocols/index.js
CHANGED
|
@@ -88,7 +88,7 @@ class Protocol {
|
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
90
|
static availableNetworks() {
|
|
91
|
-
|
|
91
|
+
return immutable_1.default.fromJS({
|
|
92
92
|
arweave: ['arweave-mainnet'],
|
|
93
93
|
ethereum: [
|
|
94
94
|
'mainnet',
|
|
@@ -135,13 +135,6 @@ class Protocol {
|
|
|
135
135
|
],
|
|
136
136
|
substreams: ['mainnet'],
|
|
137
137
|
});
|
|
138
|
-
const allNetworks = [];
|
|
139
|
-
// eslint-disable-next-line unicorn/no-array-for-each
|
|
140
|
-
networks.forEach(value => {
|
|
141
|
-
allNetworks.push(...value);
|
|
142
|
-
});
|
|
143
|
-
networks = networks.set('substreams', immutable_1.default.List(allNetworks));
|
|
144
|
-
return networks;
|
|
145
138
|
}
|
|
146
139
|
static normalizeName(name) {
|
|
147
140
|
return Protocol.availableProtocols().findKey(possibleNames => {
|
package/dist/type-generator.js
CHANGED
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graphprotocol/graph-cli",
|
|
3
|
-
"version": "0.49.0-alpha-
|
|
3
|
+
"version": "0.49.0-alpha-20230505152117-ef48fdf",
|
|
4
4
|
"description": "CLI for building for and deploying to The Graph",
|
|
5
5
|
"license": "(Apache-2.0 OR MIT)",
|
|
6
6
|
"engines": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@float-capital/float-subgraph-uncrashable": "^0.0.0-alpha.4",
|
|
23
|
-
"@oclif/core": "2.8.
|
|
23
|
+
"@oclif/core": "2.8.4",
|
|
24
24
|
"@whatwg-node/fetch": "^0.8.4",
|
|
25
25
|
"assemblyscript": "0.19.23",
|
|
26
26
|
"binary-install-raw": "0.0.13",
|