cruddl 2.7.0-alpha.1 → 3.0.0-alpha.2
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/.github/workflows/ci.yml +1 -1
- package/.nvmrc +1 -0
- package/.prettierrc +2 -1
- package/README.md +27 -16
- package/dist/core-exports.d.ts +1 -1
- package/dist/spec/database/arangodb/schema-migration/arango-search-helper.spec.js +5 -3
- package/dist/spec/database/arangodb/schema-migration/arango-search-helper.spec.js.map +1 -1
- package/dist/spec/dev/fast-server.js +9 -11
- package/dist/spec/dev/fast-server.js.map +1 -1
- package/dist/spec/dev/server.js +9 -9
- package/dist/spec/dev/server.js.map +1 -1
- package/dist/spec/meta-schema/meta-schema.spec.js +133 -133
- package/dist/spec/meta-schema/meta-schema.spec.js.map +1 -1
- package/dist/spec/performance/support/helpers.js +9 -9
- package/dist/spec/performance/support/helpers.js.map +1 -1
- package/dist/spec/project/project.spec.js +7 -7
- package/dist/spec/project/project.spec.js.map +1 -1
- package/dist/spec/regression/regression-suite.js +15 -15
- package/dist/spec/regression/regression-suite.js.map +1 -1
- package/dist/spec/schema-generation/createdat-updatedat-modification.spec.js +14 -12
- package/dist/spec/schema-generation/createdat-updatedat-modification.spec.js.map +1 -1
- package/dist/src/authorization/auth-basics.d.ts +14 -1
- package/dist/src/authorization/permission-descriptors.d.ts +8 -2
- package/dist/src/authorization/permission-descriptors.js +118 -13
- package/dist/src/authorization/permission-descriptors.js.map +1 -1
- package/dist/src/config/interfaces.d.ts +10 -7
- package/dist/src/database/arangodb/aql-generator.js +30 -25
- package/dist/src/database/arangodb/aql-generator.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/analyzer.js +20 -22
- package/dist/src/database/arangodb/schema-migration/analyzer.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/arango-search-helpers.d.ts +2 -0
- package/dist/src/database/arangodb/schema-migration/arango-search-helpers.js +44 -27
- package/dist/src/database/arangodb/schema-migration/arango-search-helpers.js.map +1 -1
- package/dist/src/database/inmemory/inmemory-adapter.js +12 -6
- package/dist/src/database/inmemory/inmemory-adapter.js.map +1 -1
- package/dist/src/database/inmemory/js-generator.js +41 -27
- package/dist/src/database/inmemory/js-generator.js.map +1 -1
- package/dist/src/execution/execution-options.d.ts +3 -4
- package/dist/src/execution/operation-resolver.js +21 -21
- package/dist/src/execution/operation-resolver.js.map +1 -1
- package/dist/src/meta-schema/meta-schema.js +34 -35
- package/dist/src/meta-schema/meta-schema.js.map +1 -1
- package/dist/src/model/config/field.d.ts +7 -0
- package/dist/src/model/config/field.js.map +1 -1
- package/dist/src/model/config/indices.d.ts +2 -1
- package/dist/src/model/config/model.d.ts +2 -2
- package/dist/src/model/config/permissions.d.ts +26 -3
- package/dist/src/model/create-model.d.ts +2 -2
- package/dist/src/model/create-model.js +81 -62
- package/dist/src/model/create-model.js.map +1 -1
- package/dist/src/model/implementation/field-path.d.ts +2 -0
- package/dist/src/model/implementation/field-path.js +11 -0
- package/dist/src/model/implementation/field-path.js.map +1 -1
- package/dist/src/model/implementation/field.d.ts +12 -0
- package/dist/src/model/implementation/field.js +104 -53
- package/dist/src/model/implementation/field.js.map +1 -1
- package/dist/src/model/implementation/model.d.ts +6 -2
- package/dist/src/model/implementation/model.js +20 -16
- package/dist/src/model/implementation/model.js.map +1 -1
- package/dist/src/model/implementation/permission-profile.d.ts +22 -4
- package/dist/src/model/implementation/permission-profile.js +56 -18
- package/dist/src/model/implementation/permission-profile.js.map +1 -1
- package/dist/src/model/implementation/root-entity-type.d.ts +2 -0
- package/dist/src/model/implementation/root-entity-type.js +83 -28
- package/dist/src/model/implementation/root-entity-type.js.map +1 -1
- package/dist/src/project/project.js +12 -13
- package/dist/src/project/project.js.map +1 -1
- package/dist/src/query-tree/operators.js +1 -1
- package/dist/src/schema/constants.d.ts +1 -0
- package/dist/src/schema/constants.js +6 -5
- package/dist/src/schema/constants.js.map +1 -1
- package/dist/src/schema/graphql-base.js +3 -0
- package/dist/src/schema/graphql-base.js.map +1 -1
- package/dist/src/schema/preparation/source-validation-modules/schema/schema.json +49 -0
- package/dist/src/schema/preparation/source-validation-modules/schema/validate-schema.js +1073 -721
- package/dist/src/schema/schema-builder.js +18 -21
- package/dist/src/schema/schema-builder.js.map +1 -1
- package/dist/src/schema-generation/flex-search-filter-input-types/filter-fields.js +13 -6
- package/dist/src/schema-generation/flex-search-filter-input-types/filter-fields.js.map +1 -1
- package/dist/src/schema-generation/order-by-and-pagination-augmentation.js +60 -42
- package/dist/src/schema-generation/order-by-and-pagination-augmentation.js.map +1 -1
- package/dist/src/schema-generation/output-type-generator.js +1 -1
- package/dist/src/schema-generation/output-type-generator.js.map +1 -1
- package/dist/src/schema-generation/utils/flex-search-utils.js +1 -0
- package/dist/src/schema-generation/utils/flex-search-utils.js.map +1 -1
- package/docs/api.md +58 -40
- package/docs/architecture.md +18 -18
- package/docs/billing.md +14 -9
- package/docs/flexSearch.md +32 -24
- package/docs/i18n.md +68 -56
- package/docs/modelling.md +256 -83
- package/docs/time-to-live.md +4 -4
- package/example/index.ts +40 -42
- package/package.json +2 -2
package/.github/workflows/ci.yml
CHANGED
package/.nvmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
16
|
package/.prettierrc
CHANGED
package/README.md
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
# cruddl
|
|
2
2
|
|
|
3
|
-
[](https://npmjs.org/cruddl)
|
|
3
|
+
[](https://npmjs.org/cruddl)
|
|
4
|
+
[](https://github.com/AEB-labs/cruddl/actions?query=branch%3Amaster)
|
|
5
|
+
[](https://packagequality.com/#?package=cruddl)
|
|
4
6
|
|
|
5
7
|
**cruddl** - create a cuddly GraphQL API for your database, using the GraphQL SDL to model your schema.
|
|
6
8
|
|
|
7
|
-
This TypeScript library creates an executable GraphQL schema from a model definition and provides queries and mutations
|
|
9
|
+
This TypeScript library creates an executable GraphQL schema from a model definition and provides queries and mutations
|
|
10
|
+
to access a database. Currently, it supports the multi-model database [ArangoDB](https://www.arangodb.com/). The concept
|
|
11
|
+
being inspired by existing projects like [prisma](https://github.com/graphcool/prisma) and
|
|
12
|
+
[join-monster](https://github.com/stems/join-monster), cruddl exploits the expressiveness of the Arango Query Language
|
|
13
|
+
(AQL) to generate one tailored query for each GraphQL request.
|
|
8
14
|
|
|
9
15
|
**[Try it online](https://aeb-labs.github.io/cruddl/)**
|
|
10
16
|
|
|
@@ -31,11 +37,12 @@ const db = new ArangoDBAdapter({
|
|
|
31
37
|
databaseName: 'databaseName',
|
|
32
38
|
url: 'http://root:@localhost:8529',
|
|
33
39
|
user: 'root',
|
|
34
|
-
password: ''
|
|
40
|
+
password: '',
|
|
35
41
|
});
|
|
36
42
|
```
|
|
37
43
|
|
|
38
|
-
If you just want to explore the features, you can also use an in-memory database implementation - but don't use this for
|
|
44
|
+
If you just want to explore the features, you can also use an in-memory database implementation - but don't use this for
|
|
45
|
+
anything else.
|
|
39
46
|
|
|
40
47
|
```typescript
|
|
41
48
|
import { InMemoryAdapter } from 'cruddl';
|
|
@@ -59,7 +66,7 @@ const project = new Project({
|
|
|
59
66
|
type Actor @rootEntity {
|
|
60
67
|
name: String
|
|
61
68
|
movies: Movie @relation(inverseOf: "actors")
|
|
62
|
-
}
|
|
69
|
+
}`,
|
|
63
70
|
},
|
|
64
71
|
{
|
|
65
72
|
name: 'permission-profiles.json',
|
|
@@ -69,16 +76,16 @@ const project = new Project({
|
|
|
69
76
|
permissions: [
|
|
70
77
|
{
|
|
71
78
|
roles: ['users'],
|
|
72
|
-
access: 'readWrite'
|
|
73
|
-
}
|
|
74
|
-
]
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
})
|
|
78
|
-
}
|
|
79
|
+
access: 'readWrite',
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
}),
|
|
85
|
+
},
|
|
79
86
|
],
|
|
80
|
-
getExecutionOptions: ({ context }) => ({ authRoles: ['users'] }),
|
|
81
|
-
getOperationIdentifier: ({ context }) => context as object // each operation is executed with an unique context object
|
|
87
|
+
getExecutionOptions: ({ context }) => ({ authContext: { authRoles: ['users'] } }),
|
|
88
|
+
getOperationIdentifier: ({ context }) => context as object, // each operation is executed with an unique context object
|
|
82
89
|
});
|
|
83
90
|
```
|
|
84
91
|
|
|
@@ -90,7 +97,7 @@ const schema = project.createSchema(db);
|
|
|
90
97
|
db.updateSchema(project.getModel()); // create missing collections
|
|
91
98
|
const server = new ApolloServer({
|
|
92
99
|
schema,
|
|
93
|
-
context: ({ req }) => req // pass request as context so we have a unique context object for each operation
|
|
100
|
+
context: ({ req }) => req, // pass request as context so we have a unique context object for each operation
|
|
94
101
|
});
|
|
95
102
|
server.listen(4000, () => console.log('Server is running on http://localhost:4000/'));
|
|
96
103
|
```
|
|
@@ -99,7 +106,11 @@ See the [modelling guide](docs/modelling.md) and the [api documentation](docs/ap
|
|
|
99
106
|
|
|
100
107
|
### Usage in a browser environment
|
|
101
108
|
|
|
102
|
-
The core of cruddl perfectly works in a browser (e.g., using webpack), and this can be useful to generate a mock GraphQL
|
|
109
|
+
The core of cruddl perfectly works in a browser (e.g., using webpack), and this can be useful to generate a mock GraphQL
|
|
110
|
+
schema on the fly or to validate a cruddl project. However, the ArangoDB adapter only works with node imports like
|
|
111
|
+
`path`. Unless you configure webpack to provide mock modules for them, you will get an error when you import `cruddl` in
|
|
112
|
+
a webpack environment. To solve this, you can import the core symbols from `cruddl/core` and the `InMemoryAdapter` from
|
|
113
|
+
`cruddl/inmemory`.
|
|
103
114
|
|
|
104
115
|
## Running Tests
|
|
105
116
|
|
package/dist/core-exports.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { RequestProfile, ProjectOptions, RequestContext,
|
|
1
|
+
export { RequestProfile, ProjectOptions, RequestContext, ModelOptions } from './src/config/interfaces';
|
|
2
2
|
export { FieldResolverParameters } from './src/graphql/operation-based-resolvers';
|
|
3
3
|
export { Project, ProjectConfig } from './src/project/project';
|
|
4
4
|
export { InvalidProjectError } from './src/project/invalid-project-error';
|
|
@@ -19,7 +19,8 @@ describe('arango-search-helper', () => {
|
|
|
19
19
|
const view = views[0];
|
|
20
20
|
chai_1.expect(view.primarySort).to.deep.equal([
|
|
21
21
|
{ field: 'deliveryNumber', asc: false },
|
|
22
|
-
{ field: '
|
|
22
|
+
{ field: 'createdAt', asc: false },
|
|
23
|
+
{ field: '_key', asc: false },
|
|
23
24
|
]);
|
|
24
25
|
});
|
|
25
26
|
it('uses _key instead of id in primary sort', () => {
|
|
@@ -37,7 +38,7 @@ describe('arango-search-helper', () => {
|
|
|
37
38
|
const view = views[0];
|
|
38
39
|
chai_1.expect(view.primarySort).to.deep.equal([
|
|
39
40
|
{ field: '_key', asc: false },
|
|
40
|
-
{ field: 'deliveryNumber', asc: true }
|
|
41
|
+
{ field: 'deliveryNumber', asc: true },
|
|
41
42
|
]);
|
|
42
43
|
});
|
|
43
44
|
it('leaves id fields in value objects in primary sort alone', () => {
|
|
@@ -56,7 +57,8 @@ describe('arango-search-helper', () => {
|
|
|
56
57
|
const view = views[0];
|
|
57
58
|
chai_1.expect(view.primarySort).to.deep.equal([
|
|
58
59
|
{ field: 'value.id', asc: false },
|
|
59
|
-
{ field: '
|
|
60
|
+
{ field: 'createdAt', asc: false },
|
|
61
|
+
{ field: '_key', asc: false },
|
|
60
62
|
]);
|
|
61
63
|
});
|
|
62
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arango-search-helper.spec.js","sourceRoot":"","sources":["../../../../../spec/database/arangodb/schema-migration/arango-search-helper.spec.ts"],"names":[],"mappings":";;;AAAA,+BAA8B;AAC9B,sEAA8B;AAC9B,oHAAqH;AACrH,wEAAqE;AAErE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,KAAK,GAAG,qCAAiB,CAAC,qBAAG,CAAA;;;;;aAKlC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,iDAAyB,CAAC,KAAK,CAAC,CAAC;YAC/C,aAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,aAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK,EAAE;gBACvC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"arango-search-helper.spec.js","sourceRoot":"","sources":["../../../../../spec/database/arangodb/schema-migration/arango-search-helper.spec.ts"],"names":[],"mappings":";;;AAAA,+BAA8B;AAC9B,sEAA8B;AAC9B,oHAAqH;AACrH,wEAAqE;AAErE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,KAAK,GAAG,qCAAiB,CAAC,qBAAG,CAAA;;;;;aAKlC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,iDAAyB,CAAC,KAAK,CAAC,CAAC;YAC/C,aAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,aAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK,EAAE;gBACvC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE;gBAClC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;aAChC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,MAAM,KAAK,GAAG,qCAAiB,CAAC,qBAAG,CAAA;;;;;;;;aAQlC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,iDAAyB,CAAC,KAAK,CAAC,CAAC;YAC/C,aAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,aAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;gBAC7B,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE;aACzC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YAC/D,MAAM,KAAK,GAAG,qCAAiB,CAAC,qBAAG,CAAA;;;;;;;;;aASlC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,iDAAyB,CAAC,KAAK,CAAC,CAAC;YAC/C,aAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,aAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE;gBACjC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE;gBAClC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;aAChC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -5,36 +5,32 @@ const graphql_1 = require("graphql");
|
|
|
5
5
|
function createFastApp(project, databaseAdapter) {
|
|
6
6
|
const executor = project.createSchemaExecutor(databaseAdapter);
|
|
7
7
|
const slowSchema = project.createSchema(databaseAdapter);
|
|
8
|
-
const contextValue = { authRoles: ['allusers', 'logistics-reader', 'system'] };
|
|
9
8
|
return async (req, res) => {
|
|
10
9
|
const { query, operationName, variables: variableValues } = req.body;
|
|
11
10
|
const document = graphql_1.parse(query);
|
|
12
11
|
const validationErrors = graphql_1.validate(slowSchema, document);
|
|
13
12
|
if (validationErrors.length) {
|
|
14
13
|
res.end(JSON.stringify({
|
|
15
|
-
errors: validationErrors.map(e => graphql_1.formatError(e))
|
|
14
|
+
errors: validationErrors.map((e) => graphql_1.formatError(e)),
|
|
16
15
|
}));
|
|
17
16
|
}
|
|
18
17
|
const fastPromise = executor.tryExecute({
|
|
19
18
|
document,
|
|
20
19
|
variableValues,
|
|
21
|
-
contextValue,
|
|
22
20
|
operationName,
|
|
23
21
|
options: {
|
|
24
22
|
recordPlan: true,
|
|
25
23
|
recordTimings: true,
|
|
26
24
|
mutationMode: 'rollback',
|
|
27
25
|
queryMemoryLimit: 5000000,
|
|
28
|
-
|
|
29
|
-
}
|
|
26
|
+
},
|
|
30
27
|
});
|
|
31
28
|
if (!fastPromise) {
|
|
32
29
|
const { data, errors } = await graphql_1.execute({
|
|
33
30
|
schema: slowSchema,
|
|
34
|
-
contextValue,
|
|
35
31
|
operationName,
|
|
36
32
|
rootValue: {},
|
|
37
|
-
document
|
|
33
|
+
document,
|
|
38
34
|
});
|
|
39
35
|
res.end(JSON.stringify({ data, errors }));
|
|
40
36
|
return;
|
|
@@ -43,14 +39,16 @@ function createFastApp(project, databaseAdapter) {
|
|
|
43
39
|
const result = await fastPromise;
|
|
44
40
|
res.end(JSON.stringify({
|
|
45
41
|
data: result.data,
|
|
46
|
-
errors: result.error
|
|
42
|
+
errors: result.error
|
|
43
|
+
? [
|
|
44
|
+
graphql_1.formatError(new graphql_1.GraphQLError(result.error.message, undefined, undefined, undefined, undefined, result.error)),
|
|
45
|
+
]
|
|
46
|
+
: undefined,
|
|
47
47
|
}));
|
|
48
48
|
}
|
|
49
49
|
catch (e) {
|
|
50
50
|
res.end(JSON.stringify({
|
|
51
|
-
errors: [
|
|
52
|
-
graphql_1.formatError(new graphql_1.GraphQLError(e.stack))
|
|
53
|
-
]
|
|
51
|
+
errors: [graphql_1.formatError(new graphql_1.GraphQLError(e.stack))],
|
|
54
52
|
}));
|
|
55
53
|
}
|
|
56
54
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fast-server.js","sourceRoot":"","sources":["../../../spec/dev/fast-server.ts"],"names":[],"mappings":";;;AACA,qCAA8E;
|
|
1
|
+
{"version":3,"file":"fast-server.js","sourceRoot":"","sources":["../../../spec/dev/fast-server.ts"],"names":[],"mappings":";;;AACA,qCAA8E;AAK9E,SAAgB,aAAa,CAAC,OAAgB,EAAE,eAAgC;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QACrE,MAAM,QAAQ,GAAG,eAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,gBAAgB,GAAG,kBAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,gBAAgB,CAAC,MAAM,EAAE;YACzB,GAAG,CAAC,GAAG,CACH,IAAI,CAAC,SAAS,CAAC;gBACX,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAW,CAAC,CAAC,CAAC,CAAC;aACtD,CAAC,CACL,CAAC;SACL;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC;YACpC,QAAQ;YACR,cAAc;YACd,aAAa;YACb,OAAO,EAAE;gBACL,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,IAAI;gBACnB,YAAY,EAAE,UAAU;gBACxB,gBAAgB,EAAE,OAAO;aAC5B;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE;YACd,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAO,CAAC;gBACnC,MAAM,EAAE,UAAU;gBAClB,aAAa;gBACb,SAAS,EAAE,EAAE;gBACb,QAAQ;aACX,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1C,OAAO;SACV;QAED,IAAI;YACA,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;YACjC,GAAG,CAAC,GAAG,CACH,IAAI,CAAC,SAAS,CAAC;gBACX,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,KAAK;oBAChB,CAAC,CAAC;wBACI,qBAAW,CACP,IAAI,sBAAY,CACZ,MAAM,CAAC,KAAK,CAAC,OAAO,EACpB,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,CAAC,KAAK,CACf,CACJ;qBACJ;oBACH,CAAC,CAAC,SAAS;aAClB,CAAC,CACL,CAAC;SACL;QAAC,OAAO,CAAC,EAAE;YACR,GAAG,CAAC,GAAG,CACH,IAAI,CAAC,SAAS,CAAC;gBACX,MAAM,EAAE,CAAC,qBAAW,CAAC,IAAI,sBAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aACnD,CAAC,CACL,CAAC;SACL;IACL,CAAC,CAAC;AACN,CAAC;AAlED,sCAkEC"}
|
package/dist/spec/dev/server.js
CHANGED
|
@@ -30,30 +30,30 @@ async function start() {
|
|
|
30
30
|
databaseName,
|
|
31
31
|
url: databaseURL,
|
|
32
32
|
doNonMandatoryMigrations: true,
|
|
33
|
-
createIndicesInBackground: true
|
|
33
|
+
createIndicesInBackground: true,
|
|
34
34
|
}, { loggerProvider });
|
|
35
35
|
}
|
|
36
36
|
const project = await project_from_fs_1.loadProjectFromDir(path.resolve(__dirname, './model'), {
|
|
37
|
-
profileConsumer: profile => {
|
|
37
|
+
profileConsumer: (profile) => {
|
|
38
38
|
logger.info(`${profile.operation.operation} ${profile.operation.name ? profile.operation.name.value : '<anonymous>'}: ${JSON.stringify(profile.timings, undefined, ' ')}`);
|
|
39
39
|
},
|
|
40
40
|
getOperationIdentifier: ({ context }) => context,
|
|
41
41
|
getExecutionOptions: ({ context }) => {
|
|
42
42
|
return {
|
|
43
|
-
authRoles: ['
|
|
43
|
+
authContext: { authRoles: ['allusers'] },
|
|
44
44
|
recordTimings: true,
|
|
45
45
|
recordPlan: true,
|
|
46
46
|
mutationMode: 'normal',
|
|
47
|
-
disableAuthorization:
|
|
47
|
+
disableAuthorization: false,
|
|
48
48
|
//queryMemoryLimit: 1000000,
|
|
49
|
-
cancellationToken: new Promise(resolve => context.req.on('aborted', resolve))
|
|
49
|
+
cancellationToken: new Promise((resolve) => context.req.on('aborted', resolve)),
|
|
50
50
|
};
|
|
51
51
|
},
|
|
52
52
|
/*processError(error: Error) {
|
|
53
53
|
console.error(`Internal error: ${error.stack}`);
|
|
54
54
|
return new Error(`Internal error`);
|
|
55
55
|
},*/
|
|
56
|
-
loggerProvider
|
|
56
|
+
loggerProvider,
|
|
57
57
|
});
|
|
58
58
|
const schema = project.createSchema(db);
|
|
59
59
|
const logger = global_1.globalContext.loggerProvider.getLogger('server');
|
|
@@ -62,7 +62,7 @@ async function start() {
|
|
|
62
62
|
logger.info('Schema is up to date');
|
|
63
63
|
if (process.argv.includes('--run-ttl-cleanup')) {
|
|
64
64
|
const result = await project.executeTTLCleanupExt(db, {
|
|
65
|
-
timeToLiveOptions: { cleanupLimit: 100, reduceLimitOnResourceLimits: true }
|
|
65
|
+
timeToLiveOptions: { cleanupLimit: 100, reduceLimitOnResourceLimits: true },
|
|
66
66
|
});
|
|
67
67
|
for (const type of result.types) {
|
|
68
68
|
if (type.error) {
|
|
@@ -78,7 +78,7 @@ async function start() {
|
|
|
78
78
|
}
|
|
79
79
|
const server = new apollo_server_1.ApolloServer({
|
|
80
80
|
schema: schema,
|
|
81
|
-
context: props => props
|
|
81
|
+
context: (props) => props,
|
|
82
82
|
});
|
|
83
83
|
const fastServer = express_1.default();
|
|
84
84
|
fastServer.use(cors_1.default());
|
|
@@ -100,7 +100,7 @@ async function startMetaServer(project) {
|
|
|
100
100
|
const metaSchemaPort = port + 1;
|
|
101
101
|
const metaSchemaServer = new apollo_server_1.ApolloServer({
|
|
102
102
|
schema: meta_schema_1.getMetaSchema(project),
|
|
103
|
-
context: { locale: 'en' }
|
|
103
|
+
context: { locale: 'en' },
|
|
104
104
|
});
|
|
105
105
|
expressServerReference = await metaSchemaServer.listen({ port: metaSchemaPort });
|
|
106
106
|
logger.info(`Meta-Schema-Server started on http://localhost:${metaSchemaPort}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../spec/dev/server.ts"],"names":[],"mappings":";;;;AAAA,iDAA6C;AAC7C,sEAAqC;AACrC,wDAAwB;AACxB,8DAA8B;AAC9B,mDAA6B;AAC7B,6BAAiD;AACjD,oDAAwD;AACxD,0DAA8D;AAC9D,mEAAkE;AAElE,uEAAuE;AACvE,8EAAyE;AACzE,+CAA8C;AAE9C,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAElD,qDAAqD;AAE9C,KAAK,UAAU,KAAK;;IACvB,MAAM,cAAc,GAAG,IAAI,6CAAoB,CAAC,OAAO,CAAC,CAAC;IAEzD,IAAI,EAAE,CAAC;IACP,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QACzC,EAAE,GAAG,IAAI,0BAAe,CAAC,SAAS,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;KAC3D;SAAM;QACH,EAAE,GAAG,IAAI,mBAAe,CACpB;YACI,YAAY;YACZ,GAAG,EAAE,WAAW;YAChB,wBAAwB,EAAE,IAAI;YAC9B,yBAAyB,EAAE,IAAI;SAClC,EACD,EAAE,cAAc,EAAE,CACrB,CAAC;KACL;IAED,MAAM,OAAO,GAAG,MAAM,oCAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;QACzE,eAAe,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../spec/dev/server.ts"],"names":[],"mappings":"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"}
|