@commitspark/graphql-api 1.0.0 → 2.0.0-beta.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/CHANGELOG.md +15 -0
- package/README.md +87 -4
- package/dist/cjs/client.d.ts +4 -2
- package/dist/cjs/client.js +4 -2
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/graphql/errors.d.ts +3 -2
- package/dist/cjs/graphql/errors.js.map +1 -1
- package/dist/cjs/graphql/input-type-generator.js +2 -1
- package/dist/cjs/graphql/input-type-generator.js.map +1 -1
- package/dist/cjs/graphql/queries-mutations-generator.d.ts +8 -1
- package/dist/cjs/graphql/queries-mutations-generator.js +19 -0
- package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +2 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts +2 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js +74 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js.map +1 -0
- package/dist/cjs/graphql/resolvers/types.d.ts +6 -0
- package/dist/cjs/graphql/schema-analyzer.js +2 -1
- package/dist/cjs/graphql/schema-analyzer.js.map +1 -1
- package/dist/cjs/graphql/schema-generator.js +7 -1
- package/dist/cjs/graphql/schema-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-root-type-generator.d.ts +2 -2
- package/dist/cjs/graphql/schema-root-type-generator.js +2 -1
- package/dist/cjs/graphql/schema-root-type-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/directive-util.d.ts +4 -0
- package/dist/cjs/graphql/schema-utils/directive-util.js +10 -0
- package/dist/cjs/graphql/schema-utils/directive-util.js.map +1 -0
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js +3 -1
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/entry-type-util.d.ts +1 -2
- package/dist/cjs/graphql/schema-utils/entry-type-util.js +2 -6
- package/dist/cjs/graphql/schema-utils/entry-type-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/searchable-field-util.d.ts +4 -0
- package/dist/cjs/graphql/schema-utils/searchable-field-util.js +79 -0
- package/dist/cjs/graphql/schema-utils/searchable-field-util.js.map +1 -0
- package/dist/cjs/graphql/schema-validator.js +21 -3
- package/dist/cjs/graphql/schema-validator.js.map +1 -1
- package/dist/cjs/index.d.ts +9 -2
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence/cache.js +76 -27
- package/dist/cjs/persistence/cache.js.map +1 -1
- package/dist/esm/client.js +4 -2
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/graphql/errors.js.map +1 -1
- package/dist/esm/graphql/input-type-generator.js +3 -2
- package/dist/esm/graphql/input-type-generator.js.map +1 -1
- package/dist/esm/graphql/queries-mutations-generator.js +18 -0
- package/dist/esm/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +3 -2
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js +70 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js.map +1 -0
- package/dist/esm/graphql/schema-analyzer.js +2 -1
- package/dist/esm/graphql/schema-analyzer.js.map +1 -1
- package/dist/esm/graphql/schema-generator.js +8 -2
- package/dist/esm/graphql/schema-generator.js.map +1 -1
- package/dist/esm/graphql/schema-root-type-generator.js +2 -1
- package/dist/esm/graphql/schema-root-type-generator.js.map +1 -1
- package/dist/esm/graphql/schema-utils/directive-util.js +6 -0
- package/dist/esm/graphql/schema-utils/directive-util.js.map +1 -0
- package/dist/esm/graphql/schema-utils/entry-reference-util.js +4 -2
- package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/esm/graphql/schema-utils/entry-type-util.js +2 -5
- package/dist/esm/graphql/schema-utils/entry-type-util.js.map +1 -1
- package/dist/esm/graphql/schema-utils/searchable-field-util.js +76 -0
- package/dist/esm/graphql/schema-utils/searchable-field-util.js.map +1 -0
- package/dist/esm/graphql/schema-validator.js +22 -4
- package/dist/esm/graphql/schema-validator.js.map +1 -1
- package/dist/esm/index.js +4 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/persistence/cache.js +76 -27
- package/dist/esm/persistence/cache.js.map +1 -1
- package/dist/types/client.d.ts +4 -2
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/graphql/errors.d.ts +3 -2
- package/dist/types/graphql/errors.d.ts.map +1 -1
- package/dist/types/graphql/input-type-generator.d.ts.map +1 -1
- package/dist/types/graphql/queries-mutations-generator.d.ts +8 -1
- package/dist/types/graphql/queries-mutations-generator.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts +3 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/types.d.ts +6 -0
- package/dist/types/graphql/resolvers/types.d.ts.map +1 -1
- package/dist/types/graphql/schema-analyzer.d.ts.map +1 -1
- package/dist/types/graphql/schema-generator.d.ts.map +1 -1
- package/dist/types/graphql/schema-root-type-generator.d.ts +2 -2
- package/dist/types/graphql/schema-root-type-generator.d.ts.map +1 -1
- package/dist/types/graphql/schema-utils/directive-util.d.ts +5 -0
- package/dist/types/graphql/schema-utils/directive-util.d.ts.map +1 -0
- package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -1
- package/dist/types/graphql/schema-utils/entry-type-util.d.ts +1 -2
- package/dist/types/graphql/schema-utils/entry-type-util.d.ts.map +1 -1
- package/dist/types/graphql/schema-utils/searchable-field-util.d.ts +5 -0
- package/dist/types/graphql/schema-utils/searchable-field-util.d.ts.map +1 -0
- package/dist/types/graphql/schema-validator.d.ts.map +1 -1
- package/dist/types/index.d.ts +9 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/persistence/cache.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/client.ts +6 -0
- package/src/graphql/errors.ts +3 -2
- package/src/graphql/input-type-generator.ts +5 -4
- package/src/graphql/queries-mutations-generator.ts +31 -1
- package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +5 -4
- package/src/graphql/resolvers/query-mutation-resolvers/query-search-resolver.ts +110 -0
- package/src/graphql/resolvers/types.ts +8 -0
- package/src/graphql/schema-analyzer.ts +6 -1
- package/src/graphql/schema-generator.ts +13 -1
- package/src/graphql/schema-root-type-generator.ts +3 -0
- package/src/graphql/schema-utils/directive-util.ts +15 -0
- package/src/graphql/schema-utils/entry-reference-util.ts +6 -2
- package/src/graphql/schema-utils/entry-type-util.ts +2 -11
- package/src/graphql/schema-utils/searchable-field-util.ts +130 -0
- package/src/graphql/schema-validator.ts +37 -7
- package/src/index.ts +25 -4
- package/src/persistence/cache.ts +115 -28
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.0.0-beta.2] - 2026-09-25
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add query `_search` for searching entries by text using a search adapter passed to `createClient()`
|
|
13
|
+
- Add directive `@Searchable` to explicitly mark types and fields as searchable
|
|
14
|
+
|
|
15
|
+
## [2.0.0-beta.1] - 2026-09-24
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Cache entry content by content hash across commits so that only changed entries are retrieved from Git adapters
|
|
20
|
+
after a commit changes
|
|
21
|
+
- Upgrade to @commitspark/git-adapter 2.0.0-beta.1, which requires Git adapters of major version 2
|
|
22
|
+
|
|
8
23
|
## [1.0.0] - 2026-02-27
|
|
9
24
|
|
|
10
25
|
### Changed
|
package/README.md
CHANGED
|
@@ -22,10 +22,10 @@ There are two common ways to use this library:
|
|
|
22
22
|
```shell
|
|
23
23
|
npm i @commitspark/graphql-api
|
|
24
24
|
```
|
|
25
|
-
2. By making GraphQL calls over HTTP to this library wrapped in a webserver or Lambda function
|
|
25
|
+
2. By making GraphQL calls over HTTP to this library wrapped in a webserver or Lambda function.
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
You can find an example Node.js Express web server implementation
|
|
28
|
+
[here](https://github.com/commitspark/example-http-express).
|
|
29
29
|
|
|
30
30
|
## Installing Git provider support
|
|
31
31
|
|
|
@@ -39,6 +39,16 @@ in [this repository](https://github.com/commitspark/git-adapter).
|
|
|
39
39
|
| [GitLab (SaaS)](https://github.com/commitspark/git-adapter-gitlab) | Provides support for Git repositories hosted on gitlab.com | `npm i @commitspark/git-adapter-gitlab` |
|
|
40
40
|
| [Filesystem](https://github.com/commitspark/git-adapter-filesystem) | Provides read-only access to files on the filesystem level | `npm i @commitspark/git-adapter-filesystem` |
|
|
41
41
|
|
|
42
|
+
## Installing search support
|
|
43
|
+
|
|
44
|
+
Searching entries (see [Search](#search)) is optional and relies on a separate search adapter. To enable search, use
|
|
45
|
+
the pre-built adapter listed below or build your own using the interfaces
|
|
46
|
+
in [this repository](https://github.com/commitspark/search-adapter).
|
|
47
|
+
|
|
48
|
+
| Adapter | Description | Install with |
|
|
49
|
+
|------------------------------------------------------------------------|--------------------------------------------------------------|------------------------------------------------|
|
|
50
|
+
| [MiniSearch](https://github.com/commitspark/search-adapter-minisearch) | In-memory keyword search with prefix and misspelling support | `npm i @commitspark/search-adapter-minisearch` |
|
|
51
|
+
|
|
42
52
|
# Building your GraphQL API
|
|
43
53
|
|
|
44
54
|
Commitspark builds a GraphQL data management API with create, read, update, and delete (CRUD) functionality that is
|
|
@@ -147,6 +157,11 @@ This function is used to create a Commitspark GraphQL API client instance.
|
|
|
147
157
|
Argument `gitAdapter` expects a Commitspark git adapter instance which is then used by the client to access the
|
|
148
158
|
adapter's Git repository.
|
|
149
159
|
|
|
160
|
+
Optional argument `options` supports the following settings:
|
|
161
|
+
|
|
162
|
+
* `searchAdapter`: A Commitspark search adapter instance. If set, query `_search` is added to the GraphQL API (see
|
|
163
|
+
[Search](#search)).
|
|
164
|
+
|
|
150
165
|
### Client
|
|
151
166
|
|
|
152
167
|
#### postGraphQL()
|
|
@@ -391,6 +406,73 @@ removed:
|
|
|
391
406
|
}
|
|
392
407
|
```
|
|
393
408
|
|
|
409
|
+
## Search
|
|
410
|
+
|
|
411
|
+
Entries can be searched by text using query `_search` once a search adapter is passed to `createClient()`. How a
|
|
412
|
+
search is performed (e.g. keyword search, semantic search or a combination of both) depends on the search adapter
|
|
413
|
+
(see [Installing search support](#installing-search-support)).
|
|
414
|
+
|
|
415
|
+
### Marking fields as searchable
|
|
416
|
+
|
|
417
|
+
Only fields explicitly marked with directive `@Searchable` are searchable. The directive must be declared in the
|
|
418
|
+
schema and can be used on types and fields:
|
|
419
|
+
|
|
420
|
+
```graphql
|
|
421
|
+
directive @Entry on OBJECT
|
|
422
|
+
directive @Searchable on OBJECT | FIELD_DEFINITION
|
|
423
|
+
|
|
424
|
+
type Article @Entry {
|
|
425
|
+
id: ID!
|
|
426
|
+
title: String @Searchable
|
|
427
|
+
url: String
|
|
428
|
+
seo: Seo
|
|
429
|
+
sections: [Section!]
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
type Seo {
|
|
433
|
+
description: String @Searchable
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
type Section @Searchable {
|
|
437
|
+
heading: String
|
|
438
|
+
body: String
|
|
439
|
+
}
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
The following rules apply:
|
|
443
|
+
|
|
444
|
+
* On a type, the directive makes all fields of type `String` (or a list of `String`) of that type searchable.
|
|
445
|
+
* On a field, the directive makes the field searchable. The field must be of type `String` or a list of `String`,
|
|
446
|
+
otherwise the schema is rejected as invalid.
|
|
447
|
+
* The directive of a type does not extend to fields of other types used in it. Such types must be marked themselves.
|
|
448
|
+
* References to other entries are never followed. Each entry is only searchable by its own data.
|
|
449
|
+
|
|
450
|
+
### Querying
|
|
451
|
+
|
|
452
|
+
```graphql
|
|
453
|
+
query {
|
|
454
|
+
hits: _search(query: "launch window", types: ["Article"], first: 10) {
|
|
455
|
+
entryId
|
|
456
|
+
entryType
|
|
457
|
+
fieldPath
|
|
458
|
+
score
|
|
459
|
+
snippet
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
Argument `types` optionally restricts hits to entries of the given entry types. Argument `first` limits the number of
|
|
465
|
+
hits (default 10, maximum 100). Each hit identifies the entry by `entryId` and `entryType` and the matching field value
|
|
466
|
+
by `fieldPath` (e.g. `title`, `seo.description`, `tags[1]` or `sections[2].body`). Hits are ordered by descending
|
|
467
|
+
`score`, which is only meaningful for ordering hits of the same search.
|
|
468
|
+
|
|
469
|
+
For values within a union, the field path contains the name of the concrete union member type after the union field,
|
|
470
|
+
e.g. `blocks[2].TextBlock.body`. The field path therefore matches the structure of the entry data as stored in the
|
|
471
|
+
repository and as expected by mutations (see [Unions](#unions)).
|
|
472
|
+
|
|
473
|
+
Hits are based on the commit returned as `ref` of the search response. Where the Git adapter supports commit hashes
|
|
474
|
+
as `ref` argument, entries of hits can therefore be retrieved from exactly the searched commit.
|
|
475
|
+
|
|
394
476
|
# Error handling
|
|
395
477
|
|
|
396
478
|
Instead of throwing errors, this library catches known error cases and returns error information for GraphQL calls via
|
|
@@ -418,7 +500,8 @@ Example GraphQL response with error:
|
|
|
418
500
|
```
|
|
419
501
|
|
|
420
502
|
The following error codes are returned together with error codes of Git adapters as
|
|
421
|
-
documented [here](https://github.com/commitspark/git-adapter)
|
|
503
|
+
documented [here](https://github.com/commitspark/git-adapter) and error codes of search adapters as
|
|
504
|
+
documented [here](https://github.com/commitspark/search-adapter):
|
|
422
505
|
|
|
423
506
|
| Error code | Description |
|
|
424
507
|
|------------------------|--------------------------------------------------------------------|
|
package/dist/cjs/client.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DocumentNode, GraphQLFormattedError, TypedQueryDocumentNode } from 'graphql';
|
|
2
2
|
import { GitAdapter } from '@commitspark/git-adapter';
|
|
3
|
+
import { SearchAdapter } from '@commitspark/search-adapter';
|
|
3
4
|
import { GraphQLRequest } from '@apollo/server';
|
|
4
5
|
import { RepositoryCacheHandler } from './persistence/cache.ts';
|
|
5
6
|
export type VariableValues = {
|
|
@@ -8,11 +9,12 @@ export type VariableValues = {
|
|
|
8
9
|
export type ApolloExecuteOperationRequest<TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues> = Omit<GraphQLRequest<TVariables>, 'query'> & {
|
|
9
10
|
query?: string | DocumentNode | TypedQueryDocumentNode<TData, TVariables>;
|
|
10
11
|
};
|
|
11
|
-
export declare const postGraphQL: <TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues>(gitAdapter: GitAdapter, repositoryCache: RepositoryCacheHandler, ref: string, request: ApolloExecuteOperationRequest<TData, TVariables>) => Promise<GraphQLResponse<TData | null>>;
|
|
12
|
-
export declare const getSchema: (gitAdapter: GitAdapter, repositoryCache: RepositoryCacheHandler, ref: string) => Promise<SchemaResponse>;
|
|
12
|
+
export declare const postGraphQL: <TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues>(gitAdapter: GitAdapter, searchAdapter: SearchAdapter | undefined, repositoryCache: RepositoryCacheHandler, ref: string, request: ApolloExecuteOperationRequest<TData, TVariables>) => Promise<GraphQLResponse<TData | null>>;
|
|
13
|
+
export declare const getSchema: (gitAdapter: GitAdapter, searchAdapter: SearchAdapter | undefined, repositoryCache: RepositoryCacheHandler, ref: string) => Promise<SchemaResponse>;
|
|
13
14
|
export interface ApolloContext {
|
|
14
15
|
branch: string;
|
|
15
16
|
gitAdapter: GitAdapter;
|
|
17
|
+
searchAdapter?: SearchAdapter;
|
|
16
18
|
getCurrentHash(): string;
|
|
17
19
|
setCurrentHash(sha: string): void;
|
|
18
20
|
repositoryCache: RepositoryCacheHandler;
|
package/dist/cjs/client.js
CHANGED
|
@@ -4,11 +4,12 @@ exports.getSchema = exports.postGraphQL = void 0;
|
|
|
4
4
|
const apollo_config_factory_ts_1 = require("./graphql/apollo-config-factory.js");
|
|
5
5
|
const schema_generator_ts_1 = require("./graphql/schema-generator.js");
|
|
6
6
|
const server_1 = require("@apollo/server");
|
|
7
|
-
const postGraphQL = async (gitAdapter, repositoryCache, ref, request) => {
|
|
7
|
+
const postGraphQL = async (gitAdapter, searchAdapter, repositoryCache, ref, request) => {
|
|
8
8
|
let currentHash = await gitAdapter.getLatestCommitHash(ref);
|
|
9
9
|
const context = {
|
|
10
10
|
branch: ref,
|
|
11
11
|
gitAdapter: gitAdapter,
|
|
12
|
+
searchAdapter: searchAdapter,
|
|
12
13
|
getCurrentHash() {
|
|
13
14
|
return currentHash;
|
|
14
15
|
},
|
|
@@ -34,11 +35,12 @@ const postGraphQL = async (gitAdapter, repositoryCache, ref, request) => {
|
|
|
34
35
|
};
|
|
35
36
|
};
|
|
36
37
|
exports.postGraphQL = postGraphQL;
|
|
37
|
-
const getSchema = async (gitAdapter, repositoryCache, ref) => {
|
|
38
|
+
const getSchema = async (gitAdapter, searchAdapter, repositoryCache, ref) => {
|
|
38
39
|
let currentHash = await gitAdapter.getLatestCommitHash(ref);
|
|
39
40
|
const context = {
|
|
40
41
|
branch: ref,
|
|
41
42
|
gitAdapter: gitAdapter,
|
|
43
|
+
searchAdapter: searchAdapter,
|
|
42
44
|
getCurrentHash() {
|
|
43
45
|
return currentHash;
|
|
44
46
|
},
|
package/dist/cjs/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;AAAA,iFAAuE;AACvE,uEAA8D;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;AAAA,iFAAuE;AACvE,uEAA8D;AAQ9D,2CAIuB;AAYhB,MAAM,WAAW,GAAG,KAAK,EAI9B,UAAsB,EACtB,aAAwC,EACxC,eAAuC,EACvC,GAAW,EACX,OAAyD,EACjB,EAAE;IAC1C,IAAI,WAAW,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,aAAa;QAC5B,cAAc;YACZ,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,cAAc,CAAC,MAAc;YAC3B,WAAW,GAAG,MAAM,CAAA;QACtB,CAAC;QACD,eAAe,EAAE,eAAe;KACjC,CAAA;IAED,MAAM,kBAAkB,GACtB,MAAM,IAAA,6CAAkB,EAAC,OAAO,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAgB;QACnD,GAAG,kBAAkB;KACtB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAChD,OAAO,EACP;QACE,YAAY,EAAE,OAAO;KACtB,CACF,CAAA;IAED,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;IAEzB,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,cAAc,EAAE;QAC7B,IAAI,EACF,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3E,MAAM,EACJ,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM;YACjC,CAAC,CAAC,SAAS;KAChB,CAAA;AACH,CAAC,CAAA;AAjDY,QAAA,WAAW,eAiDvB;AAEM,MAAM,SAAS,GAAG,KAAK,EAC5B,UAAsB,EACtB,aAAwC,EACxC,eAAuC,EACvC,GAAW,EACc,EAAE;IAC3B,IAAI,WAAW,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,aAAa;QAC5B,cAAc;YACZ,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,cAAc,CAAC,MAAc;YAC3B,WAAW,GAAG,MAAM,CAAA;QACtB,CAAC;QACD,eAAe,EAAE,eAAe;KACjC,CAAA;IAED,MAAM,qBAAqB,GAAG,CAAC,MAAM,IAAA,oCAAc,EAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,cAAc,EAAE;QAC7B,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;KACvC,CAAA;AACH,CAAC,CAAA;AA7BY,QAAA,SAAS,aA6BrB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { GraphQLError } from 'graphql';
|
|
2
|
-
import { ErrorCode as
|
|
2
|
+
import { ErrorCode as GitAdapterErrorCode } from '@commitspark/git-adapter';
|
|
3
|
+
import { ErrorCode as SearchAdapterErrorCode } from '@commitspark/search-adapter';
|
|
3
4
|
export declare const enum ErrorCode {
|
|
4
5
|
BAD_USER_INPUT = "BAD_USER_INPUT",
|
|
5
6
|
NOT_FOUND = "NOT_FOUND",
|
|
@@ -16,4 +17,4 @@ export interface ErrorMetadata {
|
|
|
16
17
|
argumentValue?: unknown;
|
|
17
18
|
schema?: string;
|
|
18
19
|
}
|
|
19
|
-
export declare const createError: (message: string, code: ErrorCode |
|
|
20
|
+
export declare const createError: (message: string, code: ErrorCode | GitAdapterErrorCode | SearchAdapterErrorCode, metaData: ErrorMetadata) => GraphQLError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAsB/B,MAAM,WAAW,GAAG,CACzB,OAAe,EACf,IAA8D,EAC9D,QAAuB,EACT,EAAE;IAChB,MAAM,oBAAoB,GACxB,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAA;IACzB,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAA;IACvC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,eAAe,CAAC,UAAU,GAAG,oBAAoB,CAAA;IACnD,CAAC;IAED,OAAO,IAAI,sBAAY,CAAC,OAAO,EAAE;QAC/B,UAAU,EAAE;YACV,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,eAAe;SAC7B;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AArBY,QAAA,WAAW,eAqBvB"}
|
|
@@ -5,6 +5,7 @@ exports.generateObjectInputTypeStrings = generateObjectInputTypeStrings;
|
|
|
5
5
|
exports.generateUnionInputTypeStrings = generateUnionInputTypeStrings;
|
|
6
6
|
const graphql_1 = require("graphql");
|
|
7
7
|
const entry_type_util_ts_1 = require("./schema-utils/entry-type-util.js");
|
|
8
|
+
const directive_util_ts_1 = require("./schema-utils/directive-util.js");
|
|
8
9
|
function generateFieldInputTypeString(type) {
|
|
9
10
|
if ((0, graphql_1.isListType)(type)) {
|
|
10
11
|
return `[${generateFieldInputTypeString(type.ofType)}]`;
|
|
@@ -13,7 +14,7 @@ function generateFieldInputTypeString(type) {
|
|
|
13
14
|
return `${generateFieldInputTypeString(type.ofType)}!`;
|
|
14
15
|
}
|
|
15
16
|
else if ((0, graphql_1.isObjectType)(type)) {
|
|
16
|
-
if ((0,
|
|
17
|
+
if ((0, directive_util_ts_1.hasDirective)(type, directive_util_ts_1.ENTRY_DIRECTIVE_NAME)) {
|
|
17
18
|
return `${type.name}IdInput`;
|
|
18
19
|
}
|
|
19
20
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/input-type-generator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"input-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/input-type-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { EntryData } from '@commitspark/git-adapter';
|
|
2
2
|
import { GraphQLObjectType } from 'graphql';
|
|
3
|
-
import { QueryMutationResolver } from './resolvers/types.ts';
|
|
3
|
+
import { QueryMutationResolver, SearchQueryResolver } from './resolvers/types.ts';
|
|
4
4
|
export declare function generateQueriesAndMutations(entryDirectiveTypes: GraphQLObjectType[]): GeneratedSchema[];
|
|
5
5
|
export declare function generateTypeNameQuery(): GeneratedQuery;
|
|
6
|
+
export declare function generateSearchQuery(): GeneratedSearchQuery;
|
|
7
|
+
export interface GeneratedSearchQuery {
|
|
8
|
+
name: string;
|
|
9
|
+
schemaString: string;
|
|
10
|
+
typeDefinitionString: string;
|
|
11
|
+
resolver: SearchQueryResolver;
|
|
12
|
+
}
|
|
6
13
|
export interface GeneratedSchema {
|
|
7
14
|
queryEvery: GeneratedQuery;
|
|
8
15
|
queryById: GeneratedQuery;
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateQueriesAndMutations = generateQueriesAndMutations;
|
|
4
4
|
exports.generateTypeNameQuery = generateTypeNameQuery;
|
|
5
|
+
exports.generateSearchQuery = generateSearchQuery;
|
|
5
6
|
const query_every_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/query-every-resolver.js");
|
|
6
7
|
const query_by_id_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/query-by-id-resolver.js");
|
|
7
8
|
const mutation_create_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/mutation-create-resolver.js");
|
|
8
9
|
const mutation_update_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/mutation-update-resolver.js");
|
|
9
10
|
const mutation_delete_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/mutation-delete-resolver.js");
|
|
10
11
|
const query_type_by_id_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/query-type-by-id-resolver.js");
|
|
12
|
+
const query_search_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/query-search-resolver.js");
|
|
11
13
|
function generateQueriesAndMutations(entryDirectiveTypes) {
|
|
12
14
|
return entryDirectiveTypes.map((objectType) => {
|
|
13
15
|
const typeName = objectType.name;
|
|
@@ -67,4 +69,21 @@ function generateTypeNameQuery() {
|
|
|
67
69
|
resolver: query_type_by_id_resolver_ts_1.queryTypeByIdResolver,
|
|
68
70
|
};
|
|
69
71
|
}
|
|
72
|
+
function generateSearchQuery() {
|
|
73
|
+
const searchQueryName = '_search';
|
|
74
|
+
const searchHitTypeName = '_SearchHit';
|
|
75
|
+
return {
|
|
76
|
+
name: searchQueryName,
|
|
77
|
+
schemaString: `${searchQueryName}(query: String!, types: [String!], first: Int): [${searchHitTypeName}!]!`,
|
|
78
|
+
typeDefinitionString: `type ${searchHitTypeName} {
|
|
79
|
+
entryId: ID!
|
|
80
|
+
entryType: String!
|
|
81
|
+
fieldPath: String!
|
|
82
|
+
score: Float!
|
|
83
|
+
snippet: String!
|
|
84
|
+
}
|
|
85
|
+
`,
|
|
86
|
+
resolver: query_search_resolver_ts_1.querySearchResolver,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
70
89
|
//# sourceMappingURL=queries-mutations-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries-mutations-generator.js","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"queries-mutations-generator.js","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.resolveFieldDefaultValue = void 0;
|
|
4
4
|
const graphql_1 = require("graphql");
|
|
5
5
|
const entry_type_util_ts_1 = require("../../schema-utils/entry-type-util.js");
|
|
6
|
+
const directive_util_ts_1 = require("../../schema-utils/directive-util.js");
|
|
6
7
|
const entry_reference_resolver_ts_1 = require("./entry-reference-resolver.js");
|
|
7
8
|
const union_value_resolver_ts_1 = require("./union-value-resolver.js");
|
|
8
9
|
const errors_ts_1 = require("../../errors.js");
|
|
@@ -71,7 +72,7 @@ const resolveFieldDefaultValue = async (fieldValue, args, context, info) => {
|
|
|
71
72
|
return new Promise((resolve) => resolve(null));
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
if ((0,
|
|
75
|
+
if ((0, directive_util_ts_1.hasDirective)(context.currentType, directive_util_ts_1.ENTRY_DIRECTIVE_NAME)) {
|
|
75
76
|
return (0, entry_reference_resolver_ts_1.resolveEntryReference)(fieldValue, args, context, info);
|
|
76
77
|
}
|
|
77
78
|
return fieldValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-default-value-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":";;;AACA,qCAOgB;AAChB,
|
|
1
|
+
{"version":3,"file":"field-default-value-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.querySearchResolver = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
const search_adapter_1 = require("@commitspark/search-adapter");
|
|
6
|
+
const errors_ts_1 = require("../../errors.js");
|
|
7
|
+
const directive_util_ts_1 = require("../../schema-utils/directive-util.js");
|
|
8
|
+
const searchable_field_util_ts_1 = require("../../schema-utils/searchable-field-util.js");
|
|
9
|
+
const SEARCH_DEFAULT_LIMIT = 10;
|
|
10
|
+
const SEARCH_MAX_LIMIT = 100;
|
|
11
|
+
const querySearchResolver = async (_source, args, context, info) => {
|
|
12
|
+
const searchAdapter = context.searchAdapter;
|
|
13
|
+
if (searchAdapter === undefined) {
|
|
14
|
+
throw (0, errors_ts_1.createError)('No search adapter configured.', "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {});
|
|
15
|
+
}
|
|
16
|
+
if (args.query.trim() === '') {
|
|
17
|
+
throw (0, errors_ts_1.createError)('Search query must not be empty.', "BAD_USER_INPUT" /* ErrorCode.BAD_USER_INPUT */, {
|
|
18
|
+
argumentName: 'query',
|
|
19
|
+
argumentValue: args.query,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const limit = args.first ?? SEARCH_DEFAULT_LIMIT;
|
|
23
|
+
if (limit < 1 || limit > SEARCH_MAX_LIMIT) {
|
|
24
|
+
throw (0, errors_ts_1.createError)(`Argument "first" must be between 1 and ${SEARCH_MAX_LIMIT}.`, "BAD_USER_INPUT" /* ErrorCode.BAD_USER_INPUT */, {
|
|
25
|
+
argumentName: 'first',
|
|
26
|
+
argumentValue: limit,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const entryTypes = args.types ?? undefined;
|
|
30
|
+
if (entryTypes !== undefined) {
|
|
31
|
+
validateEntryTypeNames(info.schema, entryTypes);
|
|
32
|
+
if (entryTypes.length === 0) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const commitHash = context.getCurrentHash();
|
|
37
|
+
let hits;
|
|
38
|
+
try {
|
|
39
|
+
hits = await searchAdapter.search({
|
|
40
|
+
commitHash: commitHash,
|
|
41
|
+
query: args.query,
|
|
42
|
+
entryTypes: entryTypes,
|
|
43
|
+
limit: limit,
|
|
44
|
+
getSearchableFieldValues: async () => {
|
|
45
|
+
const entriesRecord = await context.repositoryCache.getEntriesRecord(context, commitHash);
|
|
46
|
+
return (0, searchable_field_util_ts_1.extractSearchableFieldValues)(info.schema, entriesRecord.byId.values());
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
if (err instanceof graphql_1.GraphQLError) {
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
if (err instanceof search_adapter_1.SearchAdapterError) {
|
|
55
|
+
throw (0, errors_ts_1.createError)(err.message, err.code, {});
|
|
56
|
+
}
|
|
57
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
58
|
+
throw (0, errors_ts_1.createError)(message, "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {});
|
|
59
|
+
}
|
|
60
|
+
return hits.slice(0, limit);
|
|
61
|
+
};
|
|
62
|
+
exports.querySearchResolver = querySearchResolver;
|
|
63
|
+
function validateEntryTypeNames(schema, typeNames) {
|
|
64
|
+
for (const typeName of typeNames) {
|
|
65
|
+
const type = schema.getType(typeName);
|
|
66
|
+
if (!(0, graphql_1.isObjectType)(type) || !(0, directive_util_ts_1.hasDirective)(type, directive_util_ts_1.ENTRY_DIRECTIVE_NAME)) {
|
|
67
|
+
throw (0, errors_ts_1.createError)(`Type "${typeName}" is not an entry type.`, "BAD_USER_INPUT" /* ErrorCode.BAD_USER_INPUT */, {
|
|
68
|
+
argumentName: 'types',
|
|
69
|
+
argumentValue: typeName,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=query-search-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-search-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-search-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ApolloContext } from '../../client.ts';
|
|
2
2
|
import { GraphQLFieldResolver, GraphQLNamedType, GraphQLTypeResolver } from 'graphql';
|
|
3
3
|
import { EntryData } from '@commitspark/git-adapter';
|
|
4
|
+
import { SearchHit } from '@commitspark/search-adapter';
|
|
4
5
|
import { RecursiveArray } from './field-resolvers/types.ts';
|
|
5
6
|
export interface QueryMutationResolverContext extends ApolloContext {
|
|
6
7
|
type: GraphQLNamedType;
|
|
@@ -15,5 +16,10 @@ type UnionTypeResolverSourceData = EntryData & {
|
|
|
15
16
|
id?: string;
|
|
16
17
|
__typename: string;
|
|
17
18
|
};
|
|
19
|
+
export type SearchQueryResolver = GraphQLFieldResolver<unknown, ApolloContext, {
|
|
20
|
+
query: string;
|
|
21
|
+
types?: string[] | null;
|
|
22
|
+
first?: number | null;
|
|
23
|
+
}, Promise<SearchHit[]>>;
|
|
18
24
|
export type ContextInjectionResolver = GraphQLFieldResolver<EntryData, ApolloContext, Record<string, unknown>, Promise<RecursiveArray<EntryData>>>;
|
|
19
25
|
export {};
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.analyzeSchema = analyzeSchema;
|
|
4
4
|
const graphql_1 = require("graphql");
|
|
5
5
|
const utils_1 = require("@graphql-tools/utils");
|
|
6
|
+
const directive_util_ts_1 = require("./schema-utils/directive-util.js");
|
|
6
7
|
function analyzeSchema(schema) {
|
|
7
8
|
const result = {
|
|
8
9
|
entryDirectiveTypes: [],
|
|
@@ -18,7 +19,7 @@ function analyzeSchema(schema) {
|
|
|
18
19
|
if ((0, graphql_1.isObjectType)(type)) {
|
|
19
20
|
const objectType = type;
|
|
20
21
|
result.objectTypes.push(objectType);
|
|
21
|
-
const entityDirective = (0, utils_1.getDirective)(schema, objectType,
|
|
22
|
+
const entityDirective = (0, utils_1.getDirective)(schema, objectType, directive_util_ts_1.ENTRY_DIRECTIVE_NAME)?.[0];
|
|
22
23
|
if (entityDirective) {
|
|
23
24
|
result.entryDirectiveTypes.push(objectType);
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-analyzer.js","sourceRoot":"","sources":["../../../src/graphql/schema-analyzer.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"schema-analyzer.js","sourceRoot":"","sources":["../../../src/graphql/schema-analyzer.ts"],"names":[],"mappings":";;AAYA,sCAwCC;AApDD,qCAQgB;AAChB,gDAAmD;AACnD,wEAAuE;AAEvE,SAAgB,aAAa,CAAC,MAAqB;IACjD,MAAM,MAAM,GAAyB;QACnC,mBAAmB,EAAE,EAAE;QACvB,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,EAAE;KACf,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IAEnC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,SAAQ;QACV,CAAC;QAED,IAAI,IAAA,sBAAY,EAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,IAAyB,CAAA;YAC5C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACnC,MAAM,eAAe,GAAG,IAAA,oBAAY,EAClC,MAAM,EACN,UAAU,EACV,wCAAoB,CACrB,EAAE,CAAC,CAAC,CAAC,CAAA;YACN,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;QAED,IAAI,IAAA,yBAAe,EAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,IAA4B,CAAA;YAClD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,IAAA,qBAAW,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,IAAwB,CAAA;YAC1C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -28,9 +28,10 @@ async function generateSchema(context) {
|
|
|
28
28
|
const generatedIdInputTypeStrings = (0, input_type_generator_ts_1.generateIdInputTypeStrings)(schemaAnalyzerResult);
|
|
29
29
|
const generatedQueriesMutations = (0, queries_mutations_generator_ts_1.generateQueriesAndMutations)(schemaAnalyzerResult.entryDirectiveTypes);
|
|
30
30
|
const generatedTypeNameQuery = (0, queries_mutations_generator_ts_1.generateTypeNameQuery)();
|
|
31
|
+
const generatedSearchQuery = context.searchAdapter !== undefined ? (0, queries_mutations_generator_ts_1.generateSearchQuery)() : undefined;
|
|
31
32
|
const generatedObjectInputTypeStrings = (0, input_type_generator_ts_1.generateObjectInputTypeStrings)(schemaAnalyzerResult.objectTypes);
|
|
32
33
|
const generatedUnionInputTypeStrings = (0, input_type_generator_ts_1.generateUnionInputTypeStrings)(schemaAnalyzerResult.unionTypes);
|
|
33
|
-
const generatedSchemaRootTypeStrings = (0, schema_root_type_generator_ts_1.generateSchemaRootTypeStrings)(generatedQueriesMutations, generatedTypeNameQuery);
|
|
34
|
+
const generatedSchemaRootTypeStrings = (0, schema_root_type_generator_ts_1.generateSchemaRootTypeStrings)(generatedQueriesMutations, generatedTypeNameQuery, generatedSearchQuery);
|
|
34
35
|
const generatedSchemaString = `schema {
|
|
35
36
|
query: Query
|
|
36
37
|
mutation: Mutation
|
|
@@ -59,6 +60,10 @@ ${generatedSchemaRootTypeStrings}`;
|
|
|
59
60
|
}
|
|
60
61
|
generatedQueryResolvers[generatedTypeNameQuery.name] =
|
|
61
62
|
generatedTypeNameQuery.resolver;
|
|
63
|
+
if (generatedSearchQuery !== undefined) {
|
|
64
|
+
generatedQueryResolvers[generatedSearchQuery.name] =
|
|
65
|
+
generatedSearchQuery.resolver;
|
|
66
|
+
}
|
|
62
67
|
const allGeneratedResolvers = {
|
|
63
68
|
Query: generatedQueryResolvers,
|
|
64
69
|
Mutation: generatedMutationResolvers,
|
|
@@ -81,6 +86,7 @@ ${generatedSchemaRootTypeStrings}`;
|
|
|
81
86
|
generatedIdInputTypeStrings.join('\n'),
|
|
82
87
|
generatedObjectInputTypeStrings.join('\n'),
|
|
83
88
|
generatedUnionInputTypeStrings.join('\n'),
|
|
89
|
+
generatedSearchQuery?.typeDefinitionString ?? '',
|
|
84
90
|
].filter((typeDef) => typeDef.length > 0);
|
|
85
91
|
return {
|
|
86
92
|
typeDefs: typeDefs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GeneratedQuery, GeneratedSchema } from './queries-mutations-generator.ts';
|
|
2
|
-
export declare function generateSchemaRootTypeStrings(generatedSchemas: GeneratedSchema[], typeQuery: GeneratedQuery): string;
|
|
1
|
+
import { GeneratedQuery, GeneratedSchema, GeneratedSearchQuery } from './queries-mutations-generator.ts';
|
|
2
|
+
export declare function generateSchemaRootTypeStrings(generatedSchemas: GeneratedSchema[], typeQuery: GeneratedQuery, searchQuery: GeneratedSearchQuery | undefined): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateSchemaRootTypeStrings = generateSchemaRootTypeStrings;
|
|
4
|
-
function generateSchemaRootTypeStrings(generatedSchemas, typeQuery) {
|
|
4
|
+
function generateSchemaRootTypeStrings(generatedSchemas, typeQuery, searchQuery) {
|
|
5
5
|
return (`type Query {\n` +
|
|
6
6
|
generatedSchemas
|
|
7
7
|
.map((generated) => ' ' + generated.queryEvery.schemaString)
|
|
@@ -13,6 +13,7 @@ function generateSchemaRootTypeStrings(generatedSchemas, typeQuery) {
|
|
|
13
13
|
'\n' +
|
|
14
14
|
` ${typeQuery.schemaString}` +
|
|
15
15
|
'\n' +
|
|
16
|
+
(searchQuery !== undefined ? ` ${searchQuery.schemaString}\n` : '') +
|
|
16
17
|
'}\n\n' +
|
|
17
18
|
'type Mutation {\n' +
|
|
18
19
|
generatedSchemas
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-root-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-root-type-generator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"schema-root-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-root-type-generator.ts"],"names":[],"mappings":";;AAMA,sEAkCC;AAlCD,SAAgB,6BAA6B,CAC3C,gBAAmC,EACnC,SAAyB,EACzB,WAA6C;IAE7C,OAAO,CACL,gBAAgB;QAChB,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC;aAC5D,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,KAAK,SAAS,CAAC,YAAY,EAAE;QAC7B,IAAI;QACJ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO;QACP,mBAAmB;QACnB,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,KAAK,CACN,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { GraphQLField, GraphQLNamedType } from 'graphql';
|
|
2
|
+
export declare const ENTRY_DIRECTIVE_NAME = "Entry";
|
|
3
|
+
export declare const SEARCHABLE_DIRECTIVE_NAME = "Searchable";
|
|
4
|
+
export declare function hasDirective(typeOrField: GraphQLNamedType | GraphQLField<unknown, unknown>, directiveName: string): boolean;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SEARCHABLE_DIRECTIVE_NAME = exports.ENTRY_DIRECTIVE_NAME = void 0;
|
|
4
|
+
exports.hasDirective = hasDirective;
|
|
5
|
+
exports.ENTRY_DIRECTIVE_NAME = 'Entry';
|
|
6
|
+
exports.SEARCHABLE_DIRECTIVE_NAME = 'Searchable';
|
|
7
|
+
function hasDirective(typeOrField, directiveName) {
|
|
8
|
+
return (typeOrField.astNode?.directives?.some((directive) => directive.name.value === directiveName) ?? false);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=directive-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directive-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/directive-util.ts"],"names":[],"mappings":";;;AAKA,oCASC;AAZY,QAAA,oBAAoB,GAAG,OAAO,CAAA;AAC9B,QAAA,yBAAyB,GAAG,YAAY,CAAA;AAErD,SAAgB,YAAY,CAC1B,WAA8D,EAC9D,aAAqB;IAErB,OAAO,CACL,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CACnC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CACtD,IAAI,KAAK,CACX,CAAA;AACH,CAAC"}
|