@nxara/olio-schema 0.1.1 → 0.1.3
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/README.md +3 -133
- package/dist/apply-directives.js +4 -4
- package/dist/apply-directives.js.map +1 -1
- package/dist/directives/shared.d.ts +1 -1
- package/dist/directives/shared.d.ts.map +1 -1
- package/dist/directives/shared.js +40 -18
- package/dist/directives/shared.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,141 +1,11 @@
|
|
|
1
1
|
# @nxara/olio-schema
|
|
2
2
|
|
|
3
|
-
Compose module SDL into one validated GraphQL schema.
|
|
4
|
-
|
|
5
|
-
`@nxara/olio-schema` is the step between your `.gql` files and a schema. Codegen and olio both go through it, so they always agree on the schema and on which module owns which field. It provides:
|
|
6
|
-
|
|
7
|
-
- **`compose(modules, directives)`**: merges every module's SDL, adds root types that modules only extend, applies directives, validates, and reports which module declares each field.
|
|
8
|
-
- **`@implements` and `@copy`**: schema-design directives that save repeating fields across types. The output is ordinary GraphQL: the directives, and their definitions if you declared them, are removed.
|
|
9
|
-
|
|
10
|
-
## Install
|
|
3
|
+
Compose module SDL into one validated GraphQL schema, with field ownership and the `@implements` / `@copy` directives. Codegen and olio both compose through it.
|
|
11
4
|
|
|
12
5
|
```sh
|
|
13
6
|
bun add @nxara/olio-schema graphql@16
|
|
14
7
|
```
|
|
15
8
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
## compose
|
|
19
|
-
|
|
20
|
-
```ts
|
|
21
|
-
import { compose } from "@nxara/olio-schema";
|
|
22
|
-
|
|
23
|
-
const { document, schema, ownership } = compose(
|
|
24
|
-
[
|
|
25
|
-
{ id: "users", typeDefs: [usersDoc] },
|
|
26
|
-
{ id: "posts", typeDefs: [postsDoc] }
|
|
27
|
-
],
|
|
28
|
-
directives
|
|
29
|
-
);
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
- **Root types come for free.** If modules only `extend type Query`, a `type Query` is added, so no module needs a placeholder `_empty` field.
|
|
33
|
-
- **Root names are yours.** With `schema { query: RootQuery }` (or `extend schema`), the roots are the types named there; without a schema definition, GraphQL's defaults apply. `roots` reports the ones the schema has: `{ query: "RootQuery" }`, never a default with no type behind it.
|
|
34
|
-
- **`ownership`** maps module id → type → the fields that module declares, in a definition or an `extend`. The defining module also owns `__isTypeOf` or `__resolveType`. Enum values are owned the same way, so only the declaring module can give them internal values. A scalar is owned by the module that defines it (marked `__scalar`).
|
|
35
|
-
- **Errors point at files.** SDL and schema errors are collected and reported as `file:line:column: message`, using each document's `Source` name.
|
|
36
|
-
- **`bypass`** (`Map<"Type.field", Set<key>>`) holds what `@bypass(keys: …)` gives each field: on a field, or on an object type or `extend` block for the fields it declares. Every `@bypass` is removed from `document` and `schema`, before the other directives run. olio hands the keys to middleware; see its README.
|
|
37
|
-
|
|
38
|
-
You rarely call this yourself: codegen and olio call it with the `directives` you pass them.
|
|
39
|
-
|
|
40
|
-
## Directives
|
|
41
|
-
|
|
42
|
-
Pass the same list to codegen and to olio, so both see the same schema:
|
|
43
|
-
|
|
44
|
-
```ts
|
|
45
|
-
// directives.ts
|
|
46
|
-
import { copyDirective, implementsDirective } from "@nxara/olio-schema";
|
|
47
|
-
|
|
48
|
-
export const directives = [implementsDirective(), copyDirective()];
|
|
49
|
-
|
|
50
|
-
// codegen.ts
|
|
51
|
-
await codegen({
|
|
52
|
-
modules: "src/modules",
|
|
53
|
-
typeDefs: "**/typedefs/**/*.gql",
|
|
54
|
-
output: "src/generated.ts",
|
|
55
|
-
directives
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
// index.ts
|
|
59
|
-
export const app = olio({ modules, directives });
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Codegen records the directives' names in `Application` (`"~directives": "implements" | "copy"`), so in a typed app `olio()` doesn't compile without the same ones. A directive's `name` is its literal type (`SchemaDirective<"copy">`) for that check.
|
|
63
|
-
|
|
64
|
-
Or apply them yourself:
|
|
65
|
-
|
|
66
|
-
```ts
|
|
67
|
-
import { applyDirectives } from "@nxara/olio-schema";
|
|
68
|
-
|
|
69
|
-
const document = applyDirectives(parse(sdl), directives);
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Only the directives you pass are enabled. Their order doesn't matter: `applyDirectives` runs in passes, and a type waits until the types it copies from are done. So chains work (`C` copies `B`, which copies `A`, which implements `Node`), and a cycle is an error.
|
|
73
|
-
|
|
74
|
-
## @implements
|
|
75
|
-
|
|
76
|
-
On object types and their extensions. It adds the interfaces to the type's `implements` list and copies their fields.
|
|
77
|
-
|
|
78
|
-
```graphql
|
|
79
|
-
interface Node {
|
|
80
|
-
id: ID!
|
|
81
|
-
}
|
|
82
|
-
interface Timestamped {
|
|
83
|
-
createdAt: DateTime!
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
type User @implements(from: ["Node", "Timestamped"]) {
|
|
87
|
-
name: String!
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
becomes:
|
|
92
|
-
|
|
93
|
-
```graphql
|
|
94
|
-
type User implements Node & Timestamped {
|
|
95
|
-
id: ID!
|
|
96
|
-
createdAt: DateTime!
|
|
97
|
-
name: String!
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Interface fields can't be overridden. Redeclaring one with a different type, arguments or directives, whether locally or from a second interface, is an error, so the mismatch shows up when the SDL loads. Repeating a field exactly, for example to add a description, is fine.
|
|
102
|
-
|
|
103
|
-
## @copy
|
|
104
|
-
|
|
105
|
-
On object types, input types, and their extensions. It copies fields without adding an `implements` clause. Objects copy from objects and interfaces, inputs from inputs.
|
|
106
|
-
|
|
107
|
-
```graphql
|
|
108
|
-
input CommonPagination {
|
|
109
|
-
cursor: String
|
|
110
|
-
limit: Int
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
input UserPagination @copy(from: ["CommonPagination"]) {
|
|
114
|
-
cursor: ID
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
becomes:
|
|
119
|
-
|
|
120
|
-
```graphql
|
|
121
|
-
input UserPagination {
|
|
122
|
-
cursor: ID
|
|
123
|
-
limit: Int
|
|
124
|
-
}
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
Overriding is allowed, with spread semantics (`{ ...A, ...B, ...local }`): a later source overrides an earlier one, local fields override every source, and each field keeps the position where it first appeared.
|
|
128
|
-
|
|
129
|
-
## Both directives
|
|
130
|
-
|
|
131
|
-
- `from` takes a list of type names, or one name: `@copy(from: "Base")`.
|
|
132
|
-
- On an extension, fields the type already declares elsewhere are skipped, so a module can `extend type User @implements(from: ["Timestamped"])`.
|
|
133
|
-
- Errors carry the file, line and column, and name the target type:
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
users/user.gql:4:11: @copy on "User" references unknown type "Nope"
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
## Writing a directive
|
|
9
|
+
**[Read the docs](https://olio.nxara.dev/reference/schema/)**
|
|
140
10
|
|
|
141
|
-
|
|
11
|
+
Part of [olio](https://olio.nxara.dev): modular, type-safe GraphQL for TypeScript. MIT licensed.
|
package/dist/apply-directives.js
CHANGED
|
@@ -8,16 +8,16 @@ export function applyDirectives(document, directives) {
|
|
|
8
8
|
directive.validate?.(document);
|
|
9
9
|
let current = document;
|
|
10
10
|
let pending = directiveUsages(current, names);
|
|
11
|
-
while (pending.
|
|
11
|
+
while (pending.length > 0) {
|
|
12
12
|
for (const directive of directives) {
|
|
13
|
-
const types = directiveUsages(current, names);
|
|
13
|
+
const types = new Set(directiveUsages(current, names));
|
|
14
14
|
current = directive.transform(current, {
|
|
15
15
|
isPending: (type) => types.has(type)
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
const left = directiveUsages(current, names);
|
|
19
|
-
if (left.
|
|
20
|
-
throw new Error(`Schema directives reference each other in a cycle: ${[...left].map((t) => `"${t}"`).join(", ")}`);
|
|
19
|
+
if (left.length >= pending.length) {
|
|
20
|
+
throw new Error(`Schema directives reference each other in a cycle: ${[...new Set(left)].map((t) => `"${t}"`).join(", ")}`);
|
|
21
21
|
}
|
|
22
22
|
pending = left;
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-directives.js","sourceRoot":"","sources":["../src/apply-directives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAqB,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA0BzD,MAAM,UAAU,eAAe,CAC7B,QAAsB,EACtB,UAAsC;IAEtC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAErD,KAAK,MAAM,SAAS,IAAI,UAAU;QAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEnE,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,IAAI,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"apply-directives.js","sourceRoot":"","sources":["../src/apply-directives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAqB,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA0BzD,MAAM,UAAU,eAAe,CAC7B,QAAsB,EACtB,UAAsC;IAEtC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAErD,KAAK,MAAM,SAAS,IAAI,UAAU;QAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEnE,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,IAAI,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACvD,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE;gBACrC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,sDAAsD,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3G,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CACvE;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -4,7 +4,7 @@ type TargetKind = "object" | "input";
|
|
|
4
4
|
export declare function position(node: ASTNode | undefined): string;
|
|
5
5
|
export declare function located(node: ASTNode | undefined, message: string): string;
|
|
6
6
|
export declare function fail(node: ASTNode, message: string): never;
|
|
7
|
-
export declare function directiveUsages(document: DocumentNode, names: ReadonlySet<string>):
|
|
7
|
+
export declare function directiveUsages(document: DocumentNode, names: ReadonlySet<string>): string[];
|
|
8
8
|
export interface FieldCopySpec<Name extends string> {
|
|
9
9
|
name: Name;
|
|
10
10
|
definition: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/directives/shared.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/directives/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,OAAO,EAGZ,KAAK,YAAY,EAIlB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,KAAK,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAqBrC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAK1D;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG1E;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAE1D;AAeD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,MAAM,EAAE,CAYV;AAqID,MAAM,WAAW,aAAa,CAAC,IAAI,SAAS,MAAM;IAChD,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAS,MAAM,EACpD,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,GACxB,eAAe,CAAC,IAAI,CAAC,CAqIvB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getLocation, Kind, print } from "graphql";
|
|
1
|
+
import { getLocation, Kind, print, visit } from "graphql";
|
|
2
2
|
const KINDS = {
|
|
3
3
|
[Kind.OBJECT_TYPE_DEFINITION]: "object",
|
|
4
4
|
[Kind.OBJECT_TYPE_EXTENSION]: "object",
|
|
@@ -30,12 +30,17 @@ export function fail(node, message) {
|
|
|
30
30
|
}
|
|
31
31
|
const asType = (def) => KINDS[def.kind] ? def : undefined;
|
|
32
32
|
export function directiveUsages(document, names) {
|
|
33
|
-
const types =
|
|
33
|
+
const types = [];
|
|
34
34
|
for (const def of document.definitions) {
|
|
35
35
|
const type = asType(def);
|
|
36
|
-
if (type
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
if (!type)
|
|
37
|
+
continue;
|
|
38
|
+
visit(def, {
|
|
39
|
+
Directive(directive) {
|
|
40
|
+
if (names.has(directive.name.value))
|
|
41
|
+
types.push(type.name.value);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
39
44
|
}
|
|
40
45
|
return types;
|
|
41
46
|
}
|
|
@@ -77,13 +82,13 @@ const shape = (field) => print({ ...field, description: undefined });
|
|
|
77
82
|
function mergeFields(merge) {
|
|
78
83
|
const merged = new Map();
|
|
79
84
|
const entries = [
|
|
80
|
-
...merge.sources.flatMap(([from, fields]) => fields
|
|
85
|
+
...merge.sources.flatMap(([from, fields]) => fields
|
|
86
|
+
.filter((f) => !merge.declaredElsewhere.has(f.name.value))
|
|
87
|
+
.map((f) => [from, f])),
|
|
81
88
|
...merge.local.map((f) => [merge.target, f])
|
|
82
89
|
];
|
|
83
90
|
for (const [from, field] of entries) {
|
|
84
91
|
const name = field.name.value;
|
|
85
|
-
if (merge.declaredElsewhere.has(name))
|
|
86
|
-
continue;
|
|
87
92
|
const previous = merged.get(name);
|
|
88
93
|
if (previous && !merge.overrides && shape(previous[1]) !== shape(field)) {
|
|
89
94
|
fail(merge.directive, `@${merge.directive.name.value} on "${merge.target}": "${from}" redeclares field "${name}" from "${previous[0]}" (${shape(previous[1])} vs ${shape(field)}). Remove one, or use @copy to override.`);
|
|
@@ -157,8 +162,18 @@ export function fieldCopyDirective(spec) {
|
|
|
157
162
|
const edges = new Map();
|
|
158
163
|
for (const def of document.definitions) {
|
|
159
164
|
const type = asType(def);
|
|
160
|
-
|
|
161
|
-
|
|
165
|
+
if (!type)
|
|
166
|
+
continue;
|
|
167
|
+
visit(def, {
|
|
168
|
+
Directive(node) {
|
|
169
|
+
if (node.name.value !== name || type.directives?.includes(node)) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
fail(node, `@${name} can only be used on ${targets.join(" and ")}, but this one is inside "${type.name.value}"`);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
const directive = usage(type);
|
|
176
|
+
if (!directive)
|
|
162
177
|
continue;
|
|
163
178
|
const sources = resolve(type, directive, analysis);
|
|
164
179
|
const target = type.name.value;
|
|
@@ -192,16 +207,21 @@ export function fieldCopyDirective(spec) {
|
|
|
192
207
|
const elsewhere = new Set((analysis.fields.get(target) ?? [])
|
|
193
208
|
.filter((f) => !local.includes(f))
|
|
194
209
|
.map((f) => f.name.value));
|
|
210
|
+
const fields = mergeFields({
|
|
211
|
+
directive,
|
|
212
|
+
target,
|
|
213
|
+
sources: sources.map((s) => [s, analysis.fields.get(s) ?? []]),
|
|
214
|
+
local,
|
|
215
|
+
declaredElsewhere: elsewhere,
|
|
216
|
+
overrides: spec.overrides
|
|
217
|
+
});
|
|
218
|
+
analysis.fields.set(target, [
|
|
219
|
+
...(analysis.fields.get(target) ?? []),
|
|
220
|
+
...fields.filter((f) => !local.includes(f))
|
|
221
|
+
]);
|
|
195
222
|
const next = {
|
|
196
223
|
...type,
|
|
197
|
-
fields
|
|
198
|
-
directive,
|
|
199
|
-
target,
|
|
200
|
-
sources: sources.map((s) => [s, analysis.fields.get(s) ?? []]),
|
|
201
|
-
local,
|
|
202
|
-
declaredElsewhere: elsewhere,
|
|
203
|
-
overrides: spec.overrides
|
|
204
|
-
}),
|
|
224
|
+
fields,
|
|
205
225
|
directives: type.directives?.filter((d) => d !== directive)
|
|
206
226
|
};
|
|
207
227
|
if (spec.addInterfaces) {
|
|
@@ -212,6 +232,8 @@ export function fieldCopyDirective(spec) {
|
|
|
212
232
|
kind: Kind.NAMED_TYPE,
|
|
213
233
|
name: { kind: Kind.NAME, value: s }
|
|
214
234
|
}));
|
|
235
|
+
for (const source of sources)
|
|
236
|
+
declared.add(source);
|
|
215
237
|
next.interfaces = [...(type.interfaces ?? []), ...added];
|
|
216
238
|
}
|
|
217
239
|
return next;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/directives/shared.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/directives/shared.ts"],"names":[],"mappings":"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"}
|