@gqlbase/plugins 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/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.d.ts.map +1 -1
- package/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.js +8 -8
- package/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.js.map +1 -1
- package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.d.ts.map +1 -1
- package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.js +16 -16
- package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.js.map +1 -1
- package/dist/base/ModelPlugin/ModelPlugin.d.ts +1 -0
- package/dist/base/ModelPlugin/ModelPlugin.d.ts.map +1 -1
- package/dist/base/ModelPlugin/ModelPlugin.js +113 -96
- package/dist/base/ModelPlugin/ModelPlugin.js.map +1 -1
- package/dist/base/ModelPlugin/ModelPlugin.utils.d.ts +5 -8
- package/dist/base/ModelPlugin/ModelPlugin.utils.d.ts.map +1 -1
- package/dist/base/ModelPlugin/ModelPlugin.utils.js +14 -23
- package/dist/base/ModelPlugin/ModelPlugin.utils.js.map +1 -1
- package/dist/base/ModelPlugin/index.d.ts +1 -1
- package/dist/base/ModelPlugin/index.d.ts.map +1 -1
- package/dist/base/ModelPlugin/index.js +1 -1
- package/dist/base/ModelPlugin/index.js.map +1 -1
- package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.d.ts +7 -11
- package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.d.ts.map +1 -1
- package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.js +26 -100
- package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.js.map +1 -1
- package/dist/base/RelationsPlugin/RelationsPlugin.d.ts.map +1 -1
- package/dist/base/RelationsPlugin/RelationsPlugin.js +29 -26
- package/dist/base/RelationsPlugin/RelationsPlugin.js.map +1 -1
- package/dist/base/RelationsPlugin/RelationsPlugin.utils.d.ts +4 -2
- package/dist/base/RelationsPlugin/RelationsPlugin.utils.d.ts.map +1 -1
- package/dist/base/RelationsPlugin/RelationsPlugin.utils.js +36 -6
- package/dist/base/RelationsPlugin/RelationsPlugin.utils.js.map +1 -1
- package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.d.ts.map +1 -1
- package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.js +1 -1
- package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.js.map +1 -1
- package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.d.ts +1 -5
- package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.d.ts.map +1 -1
- package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.js +2 -23
- package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.js.map +1 -1
- package/dist/base/RfcFeaturesPlugin/index.d.ts +1 -1
- package/dist/base/RfcFeaturesPlugin/index.d.ts.map +1 -1
- package/dist/base/RfcFeaturesPlugin/index.js +1 -1
- package/dist/base/RfcFeaturesPlugin/index.js.map +1 -1
- package/dist/base/ScalarsPlugin/ScalarsPlugin.js +10 -10
- package/dist/base/ScalarsPlugin/ScalarsPlugin.js.map +1 -1
- package/dist/base/TypesGeneratorBase/TypesGeneratorBase.d.ts +2 -2
- package/dist/base/TypesGeneratorBase/TypesGeneratorBase.d.ts.map +1 -1
- package/dist/base/TypesGeneratorBase/TypesGeneratorBase.js +9 -11
- package/dist/base/TypesGeneratorBase/TypesGeneratorBase.js.map +1 -1
- package/dist/base/TypesGeneratorBase/index.d.ts +0 -1
- package/dist/base/TypesGeneratorBase/index.d.ts.map +1 -1
- package/dist/base/TypesGeneratorBase/index.js +0 -1
- package/dist/base/TypesGeneratorBase/index.js.map +1 -1
- package/dist/base/UtilitiesPlugin/UtilitiesPlugin.d.ts.map +1 -1
- package/dist/base/UtilitiesPlugin/UtilitiesPlugin.js +21 -17
- package/dist/base/UtilitiesPlugin/UtilitiesPlugin.js.map +1 -1
- package/dist/base/index.d.ts +3 -3
- package/dist/base/index.d.ts.map +1 -1
- package/dist/base/index.js +3 -3
- package/dist/base/index.js.map +1 -1
- package/dist/middy/MiddyAppSyncGraphQLPlugin/MiddyAppSyncGraphQLPlugin.d.ts.map +1 -1
- package/dist/middy/MiddyAppSyncGraphQLPlugin/MiddyAppSyncGraphQLPlugin.js +20 -8
- package/dist/middy/MiddyAppSyncGraphQLPlugin/MiddyAppSyncGraphQLPlugin.js.map +1 -1
- package/dist/middy/MiddyAppSyncGraphQLPlugin/MiddyAppSyncGraphQLPlugin.utils.d.ts +6 -0
- package/dist/middy/MiddyAppSyncGraphQLPlugin/MiddyAppSyncGraphQLPlugin.utils.d.ts.map +1 -1
- package/dist/middy/MiddyAppSyncGraphQLPlugin/MiddyAppSyncGraphQLPlugin.utils.js.map +1 -1
- package/dist/relay/ConnectionPlugin/ConnectionPlugin.d.ts.map +1 -1
- package/dist/relay/ConnectionPlugin/ConnectionPlugin.js +14 -18
- package/dist/relay/ConnectionPlugin/ConnectionPlugin.js.map +1 -1
- package/dist/relay/NodeInterfacePlugin/NodeInterfacePlugin.d.ts.map +1 -1
- package/dist/relay/NodeInterfacePlugin/NodeInterfacePlugin.js +5 -3
- package/dist/relay/NodeInterfacePlugin/NodeInterfacePlugin.js.map +1 -1
- package/package.json +3 -3
- package/dist/base/TypesGeneratorBase/TypeGeneratorBase.utils.d.ts +0 -3
- package/dist/base/TypesGeneratorBase/TypeGeneratorBase.utils.d.ts.map +0 -1
- package/dist/base/TypesGeneratorBase/TypeGeneratorBase.utils.js +0 -5
- package/dist/base/TypesGeneratorBase/TypeGeneratorBase.utils.js.map +0 -1
|
@@ -5,17 +5,19 @@ export interface RelationPluginOptions {
|
|
|
5
5
|
export declare const RelationDirective: {
|
|
6
6
|
readonly HAS_ONE: "hasOne";
|
|
7
7
|
readonly HAS_MANY: "hasMany";
|
|
8
|
+
readonly BELONGS_TO: "belongsTo";
|
|
8
9
|
};
|
|
9
10
|
export interface FieldRelationship {
|
|
10
11
|
type: "oneToOne" | "oneToMany";
|
|
11
12
|
target: ObjectNode | InterfaceNode | UnionNode;
|
|
12
|
-
key?: string;
|
|
13
|
+
key?: string | null;
|
|
13
14
|
}
|
|
14
15
|
export type RelationTarget = ObjectNode | InterfaceNode | UnionNode;
|
|
15
16
|
export declare const isOneRelationship: (field: FieldNode) => boolean;
|
|
16
17
|
export declare const isManyRelationship: (field: FieldNode) => boolean;
|
|
18
|
+
export declare const isBelongsToRelationship: (field: FieldNode) => boolean;
|
|
17
19
|
export declare const isRelationField: (field: FieldNode) => boolean;
|
|
18
20
|
export declare const isPaginationConnection: (node: DefinitionNode) => boolean;
|
|
19
21
|
export declare const isValidRelationTarget: (node: DefinitionNode) => node is RelationTarget;
|
|
20
|
-
export declare const parseFieldRelation: (object: ObjectNode | InterfaceNode, field: FieldNode, target: RelationTarget) =>
|
|
22
|
+
export declare const parseFieldRelation: (object: ObjectNode | InterfaceNode, field: FieldNode, target: RelationTarget) => FieldRelationship | null;
|
|
21
23
|
//# sourceMappingURL=RelationsPlugin.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationsPlugin.utils.d.ts","sourceRoot":"","sources":["../../../src/base/RelationsPlugin/RelationsPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,aAAa,
|
|
1
|
+
{"version":3,"file":"RelationsPlugin.utils.d.ts","sourceRoot":"","sources":["../../../src/base/RelationsPlugin/RelationsPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,aAAa,EAGb,UAAU,EACV,SAAS,EACV,MAAM,0BAA0B,CAAC;AAGlC,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;IAC/B,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;IAC/C,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;AAEpE,eAAO,MAAM,iBAAiB,GAAI,OAAO,SAAS,KAAG,OAEpD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,KAAG,OAErD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,SAAS,KAAG,OAE1D,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,KAAG,OAElD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,MAAM,cAAc,KAAG,OAS7D,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,MAAM,cAAc,KAAG,IAAI,IAAI,cAEpE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,UAAU,GAAG,aAAa,EAClC,OAAO,SAAS,EAChB,QAAQ,cAAc,KACrB,iBAAiB,GAAG,IA4DtB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isObjectLike, isOperationNode, ObjectNode, } from "@gqlbase/core/definition";
|
|
2
2
|
import { camelCase } from "@gqlbase/shared/format";
|
|
3
3
|
export const RelationDirective = {
|
|
4
4
|
HAS_ONE: "hasOne",
|
|
5
5
|
HAS_MANY: "hasMany",
|
|
6
|
+
BELONGS_TO: "belongsTo",
|
|
6
7
|
};
|
|
7
8
|
export const isOneRelationship = (field) => {
|
|
8
9
|
return field.hasDirective(RelationDirective.HAS_ONE);
|
|
@@ -10,8 +11,11 @@ export const isOneRelationship = (field) => {
|
|
|
10
11
|
export const isManyRelationship = (field) => {
|
|
11
12
|
return field.hasDirective(RelationDirective.HAS_MANY);
|
|
12
13
|
};
|
|
14
|
+
export const isBelongsToRelationship = (field) => {
|
|
15
|
+
return field.hasDirective(RelationDirective.BELONGS_TO);
|
|
16
|
+
};
|
|
13
17
|
export const isRelationField = (field) => {
|
|
14
|
-
return isOneRelationship(field) || isManyRelationship(field);
|
|
18
|
+
return isOneRelationship(field) || isBelongsToRelationship(field) || isManyRelationship(field);
|
|
15
19
|
};
|
|
16
20
|
export const isPaginationConnection = (node) => {
|
|
17
21
|
if (node instanceof ObjectNode) {
|
|
@@ -26,28 +30,54 @@ export const isPaginationConnection = (node) => {
|
|
|
26
30
|
return false;
|
|
27
31
|
};
|
|
28
32
|
export const isValidRelationTarget = (node) => {
|
|
29
|
-
return node
|
|
33
|
+
return isObjectLike(node);
|
|
30
34
|
};
|
|
31
35
|
export const parseFieldRelation = (object, field, target) => {
|
|
32
|
-
|
|
36
|
+
const relationships = [
|
|
37
|
+
isOneRelationship(field),
|
|
38
|
+
isManyRelationship(field),
|
|
39
|
+
isBelongsToRelationship(field),
|
|
40
|
+
].filter(Boolean);
|
|
41
|
+
if (relationships.length > 1) {
|
|
33
42
|
throw new Error(`Multiple relationship directives detected for field: ${field.name}`);
|
|
34
43
|
}
|
|
35
44
|
if (isOneRelationship(field)) {
|
|
36
45
|
const directive = field.getDirective(RelationDirective.HAS_ONE);
|
|
37
46
|
const args = directive?.getArgumentsJSON();
|
|
47
|
+
let key = args?.key ?? null;
|
|
48
|
+
if (!key && !isOperationNode(object)) {
|
|
49
|
+
key = camelCase(object.name, "id");
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
type: "oneToOne",
|
|
53
|
+
target: target,
|
|
54
|
+
key,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (isBelongsToRelationship(field)) {
|
|
58
|
+
const directive = field.getDirective(RelationDirective.BELONGS_TO);
|
|
59
|
+
const args = directive?.getArgumentsJSON();
|
|
60
|
+
let key = args?.key ?? null;
|
|
61
|
+
if (!key && !isOperationNode(object)) {
|
|
62
|
+
key = camelCase(field.name, "id");
|
|
63
|
+
}
|
|
38
64
|
return {
|
|
39
65
|
type: "oneToOne",
|
|
40
66
|
target: target,
|
|
41
|
-
key
|
|
67
|
+
key,
|
|
42
68
|
};
|
|
43
69
|
}
|
|
44
70
|
if (isManyRelationship(field)) {
|
|
45
71
|
const directive = field.getDirective(RelationDirective.HAS_MANY);
|
|
46
72
|
const args = directive?.getArgumentsJSON();
|
|
73
|
+
let key = args?.key ?? null;
|
|
74
|
+
if (!key && !isOperationNode(object)) {
|
|
75
|
+
key = camelCase(object.name, "id");
|
|
76
|
+
}
|
|
47
77
|
return {
|
|
48
78
|
type: "oneToMany",
|
|
49
79
|
target: target,
|
|
50
|
-
key
|
|
80
|
+
key,
|
|
51
81
|
};
|
|
52
82
|
}
|
|
53
83
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationsPlugin.utils.js","sourceRoot":"","sources":["../../../src/base/RelationsPlugin/RelationsPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RelationsPlugin.utils.js","sourceRoot":"","sources":["../../../src/base/RelationsPlugin/RelationsPlugin.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RfcFeaturesPlugin.d.ts","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/RfcFeaturesPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAUhG;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,qBAAa,iBAAkB,SAAQ,qBAAqB;gBAC9C,OAAO,EAAE,mBAAmB;IAIjC,IAAI;
|
|
1
|
+
{"version":3,"file":"RfcFeaturesPlugin.d.ts","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/RfcFeaturesPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAUhG;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,qBAAa,iBAAkB,SAAQ,qBAAqB;gBAC9C,OAAO,EAAE,mBAAmB;IAIjC,IAAI;CAkBZ;AAED,eAAO,MAAM,iBAAiB,+DAAyC,CAAC"}
|
|
@@ -26,7 +26,7 @@ export class RfcFeaturesPlugin extends TransformerPluginBase {
|
|
|
26
26
|
super("RfcFeaturesPlugin", context);
|
|
27
27
|
}
|
|
28
28
|
init() {
|
|
29
|
-
this.context.base.addNode(DirectiveDefinitionNode.create("semanticNonNull", ["FIELD_DEFINITION"], InputValueNode.create("levels", NonNullTypeNode.create(ListTypeNode.create(NonNullTypeNode.create(NamedTypeNode.create("Int")))), ValueNode.list([ValueNode.int(0)]))));
|
|
29
|
+
this.context.base.addNode(DirectiveDefinitionNode.create("semanticNonNull", undefined, ["FIELD_DEFINITION"], InputValueNode.create("levels", undefined, undefined, NonNullTypeNode.create(ListTypeNode.create(NonNullTypeNode.create(NamedTypeNode.create("Int")))), ValueNode.list([ValueNode.int(0)]))));
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
export const rfcFeaturesPlugin = createPluginFactory(RfcFeaturesPlugin);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RfcFeaturesPlugin.js","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/RfcFeaturesPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAuB,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,SAAS,GACV,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,OAAO,iBAAkB,SAAQ,qBAAqB;IAC1D,YAAY,OAA4B;QACtC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CACvB,uBAAuB,CAAC,MAAM,CAC5B,iBAAiB,EACjB,CAAC,kBAAkB,CAAC,EACpB,cAAc,CAAC,MAAM,CACnB,QAAQ,EACR,eAAe,CAAC,MAAM,CACpB,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CACzE,EACD,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACnC,CACF,CACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"RfcFeaturesPlugin.js","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/RfcFeaturesPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAuB,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,SAAS,GACV,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,OAAO,iBAAkB,SAAQ,qBAAqB;IAC1D,YAAY,OAA4B;QACtC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CACvB,uBAAuB,CAAC,MAAM,CAC5B,iBAAiB,EACjB,SAAS,EACT,CAAC,kBAAkB,CAAC,EACpB,cAAc,CAAC,MAAM,CACnB,QAAQ,EACR,SAAS,EACT,SAAS,EACT,eAAe,CAAC,MAAM,CACpB,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CACzE,EACD,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACnC,CACF,CACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { FieldNode
|
|
1
|
+
import { FieldNode } from "@gqlbase/core/definition";
|
|
2
2
|
export declare const RfcDirective: {
|
|
3
3
|
readonly SEMANTIC_NON_NULL: "semanticNonNull";
|
|
4
4
|
};
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
export declare const isNullable: (type: TypeNode, level?: number) => boolean;
|
|
9
5
|
/**
|
|
10
6
|
* Determines if a field is semantically nullable based on its type and/or the presence of the `@semanticNonNull` directive.
|
|
11
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RfcFeaturesPlugin.utils.d.ts","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"RfcFeaturesPlugin.utils.d.ts","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,0BAA0B,CAAC;AAEzE,eAAO,MAAM,YAAY;;CAEf,CAAC;AAEX;;;;;;;GAOG;AAEH,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,EAAE,cAAS,YAa7D,CAAC"}
|
|
@@ -1,28 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isNullableTypeNode } from "@gqlbase/core/definition";
|
|
2
2
|
export const RfcDirective = {
|
|
3
3
|
SEMANTIC_NON_NULL: "semanticNonNull",
|
|
4
4
|
};
|
|
5
|
-
/**
|
|
6
|
-
* Unwraps a type to the given depth level.
|
|
7
|
-
* Only `ListTypeNode` counts as a level — `NonNullTypeNode` is
|
|
8
|
-
* a modifier at the same depth and is skipped transparently.
|
|
9
|
-
*/
|
|
10
|
-
const getTypeAtLevel = (type, level) => {
|
|
11
|
-
if (level <= 0)
|
|
12
|
-
return type;
|
|
13
|
-
if (type instanceof NonNullTypeNode)
|
|
14
|
-
return getTypeAtLevel(type.type, level);
|
|
15
|
-
if (type instanceof ListTypeNode)
|
|
16
|
-
return getTypeAtLevel(type.type, level - 1);
|
|
17
|
-
return type;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
export const isNullable = (type, level = 0) => {
|
|
23
|
-
const typeAtLevel = getTypeAtLevel(type, level);
|
|
24
|
-
return !(typeAtLevel instanceof NonNullTypeNode);
|
|
25
|
-
};
|
|
26
5
|
/**
|
|
27
6
|
* Determines if a field is semantically nullable based on its type and/or the presence of the `@semanticNonNull` directive.
|
|
28
7
|
*
|
|
@@ -32,7 +11,7 @@ export const isNullable = (type, level = 0) => {
|
|
|
32
11
|
* @returns `false` if the field is non-nullable either by being a NonNullType or by having the `@semanticNonNull` directive at the specified level, `true` otherwise.
|
|
33
12
|
*/
|
|
34
13
|
export const isSemanticNullable = (field, level = 0) => {
|
|
35
|
-
if (!
|
|
14
|
+
if (!isNullableTypeNode(field.type, level)) {
|
|
36
15
|
return false;
|
|
37
16
|
}
|
|
38
17
|
if (field.hasDirective(RfcDirective.SEMANTIC_NON_NULL)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RfcFeaturesPlugin.utils.js","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,
|
|
1
|
+
{"version":3,"file":"RfcFeaturesPlugin.utils.js","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iBAAiB,EAAE,iBAAiB;CAC5B,CAAC;AAEX;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAgB,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;IAChE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACrE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,gBAAgB,EAAwB,IAAI,EAAE,CAAC;QAEnF,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { RfcFeaturesPlugin, rfcFeaturesPlugin } from "./RfcFeaturesPlugin.js";
|
|
2
|
-
export { RfcDirective,
|
|
2
|
+
export { RfcDirective, isSemanticNullable } from "./RfcFeaturesPlugin.utils.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { RfcFeaturesPlugin, rfcFeaturesPlugin } from "./RfcFeaturesPlugin.js";
|
|
2
|
-
export { RfcDirective,
|
|
2
|
+
export { RfcDirective, isSemanticNullable } from "./RfcFeaturesPlugin.utils.js";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/base/RfcFeaturesPlugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -54,7 +54,7 @@ export class ScalarsPlugin extends TransformerPluginBase {
|
|
|
54
54
|
}
|
|
55
55
|
init() {
|
|
56
56
|
this.context.base
|
|
57
|
-
.addNode(ScalarNode.create("DateTime", [
|
|
57
|
+
.addNode(ScalarNode.create("DateTime", undefined, [
|
|
58
58
|
DirectiveNode.create("specifiedBy", [
|
|
59
59
|
ArgumentNode.create("url", ValueNode.string("http://www.ietf.org/rfc/rfc3339.txt")),
|
|
60
60
|
]),
|
|
@@ -62,7 +62,7 @@ export class ScalarsPlugin extends TransformerPluginBase {
|
|
|
62
62
|
ArgumentNode.create("type", ValueNode.enum("string")),
|
|
63
63
|
]),
|
|
64
64
|
]))
|
|
65
|
-
.addNode(ScalarNode.create("Date", [
|
|
65
|
+
.addNode(ScalarNode.create("Date", undefined, [
|
|
66
66
|
DirectiveNode.create("specifiedBy", [
|
|
67
67
|
ArgumentNode.create("url", ValueNode.string("http://www.ietf.org/rfc/rfc3339.txt")),
|
|
68
68
|
]),
|
|
@@ -70,7 +70,7 @@ export class ScalarsPlugin extends TransformerPluginBase {
|
|
|
70
70
|
ArgumentNode.create("type", ValueNode.enum("string")),
|
|
71
71
|
]),
|
|
72
72
|
]))
|
|
73
|
-
.addNode(ScalarNode.create("Time", [
|
|
73
|
+
.addNode(ScalarNode.create("Time", undefined, [
|
|
74
74
|
DirectiveNode.create("specifiedBy", [
|
|
75
75
|
ArgumentNode.create("url", ValueNode.string("http://www.ietf.org/rfc/rfc3339.txt")),
|
|
76
76
|
]),
|
|
@@ -78,7 +78,7 @@ export class ScalarsPlugin extends TransformerPluginBase {
|
|
|
78
78
|
ArgumentNode.create("type", ValueNode.enum("string")),
|
|
79
79
|
]),
|
|
80
80
|
]))
|
|
81
|
-
.addNode(ScalarNode.create("Timestamp", [
|
|
81
|
+
.addNode(ScalarNode.create("Timestamp", undefined, [
|
|
82
82
|
DirectiveNode.create("specifiedBy", [
|
|
83
83
|
ArgumentNode.create("url", ValueNode.string("https://en.wikipedia.org/wiki/Unix_time")),
|
|
84
84
|
]),
|
|
@@ -86,7 +86,7 @@ export class ScalarsPlugin extends TransformerPluginBase {
|
|
|
86
86
|
ArgumentNode.create("type", ValueNode.enum("number")),
|
|
87
87
|
]),
|
|
88
88
|
]))
|
|
89
|
-
.addNode(ScalarNode.create("UUID", [
|
|
89
|
+
.addNode(ScalarNode.create("UUID", undefined, [
|
|
90
90
|
DirectiveNode.create("specifiedBy", [
|
|
91
91
|
ArgumentNode.create("url", ValueNode.string("http://rfc-editor.org/rfc/rfc9562")),
|
|
92
92
|
]),
|
|
@@ -94,7 +94,7 @@ export class ScalarsPlugin extends TransformerPluginBase {
|
|
|
94
94
|
ArgumentNode.create("type", ValueNode.enum("id")),
|
|
95
95
|
]),
|
|
96
96
|
]))
|
|
97
|
-
.addNode(ScalarNode.create("URL", [
|
|
97
|
+
.addNode(ScalarNode.create("URL", undefined, [
|
|
98
98
|
DirectiveNode.create("specifiedBy", [
|
|
99
99
|
ArgumentNode.create("url", ValueNode.string("https://www.ietf.org/rfc/rfc3986.txt")),
|
|
100
100
|
]),
|
|
@@ -102,7 +102,7 @@ export class ScalarsPlugin extends TransformerPluginBase {
|
|
|
102
102
|
ArgumentNode.create("type", ValueNode.enum("string")),
|
|
103
103
|
]),
|
|
104
104
|
]))
|
|
105
|
-
.addNode(ScalarNode.create("EmailAddress", [
|
|
105
|
+
.addNode(ScalarNode.create("EmailAddress", undefined, [
|
|
106
106
|
DirectiveNode.create("specifiedBy", [
|
|
107
107
|
ArgumentNode.create("url", ValueNode.string("https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address")),
|
|
108
108
|
]),
|
|
@@ -110,7 +110,7 @@ export class ScalarsPlugin extends TransformerPluginBase {
|
|
|
110
110
|
ArgumentNode.create("type", ValueNode.enum("string")),
|
|
111
111
|
]),
|
|
112
112
|
]))
|
|
113
|
-
.addNode(ScalarNode.create("PhoneNumber", [
|
|
113
|
+
.addNode(ScalarNode.create("PhoneNumber", undefined, [
|
|
114
114
|
DirectiveNode.create("specifiedBy", [
|
|
115
115
|
ArgumentNode.create("url", ValueNode.string("https://www.itu.int/rec/T-REC-E.164")),
|
|
116
116
|
]),
|
|
@@ -118,7 +118,7 @@ export class ScalarsPlugin extends TransformerPluginBase {
|
|
|
118
118
|
ArgumentNode.create("type", ValueNode.enum("string")),
|
|
119
119
|
]),
|
|
120
120
|
]))
|
|
121
|
-
.addNode(ScalarNode.create("IPAddress", [
|
|
121
|
+
.addNode(ScalarNode.create("IPAddress", undefined, [
|
|
122
122
|
DirectiveNode.create("specifiedBy", [
|
|
123
123
|
ArgumentNode.create("url", ValueNode.string("https://www.ietf.org/rfc/rfc3986.txt")),
|
|
124
124
|
]),
|
|
@@ -126,7 +126,7 @@ export class ScalarsPlugin extends TransformerPluginBase {
|
|
|
126
126
|
ArgumentNode.create("type", ValueNode.enum("string")),
|
|
127
127
|
]),
|
|
128
128
|
]))
|
|
129
|
-
.addNode(ScalarNode.create("JSON", [
|
|
129
|
+
.addNode(ScalarNode.create("JSON", undefined, [
|
|
130
130
|
DirectiveNode.create("specifiedBy", [
|
|
131
131
|
ArgumentNode.create("url", ValueNode.string("https://json.org/")),
|
|
132
132
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarsPlugin.js","sourceRoot":"","sources":["../../../src/base/ScalarsPlugin/ScalarsPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,MAAM,OAAO,aAAc,SAAQ,qBAAqB;IACtD,YAAY,OAA4B;QACtC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,OAAO,CAAC,IAAI;aACd,OAAO,CACN,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE;
|
|
1
|
+
{"version":3,"file":"ScalarsPlugin.js","sourceRoot":"","sources":["../../../src/base/ScalarsPlugin/ScalarsPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export declare abstract class TypesGeneratorBase extends TransformerPluginBase {
|
|
|
10
10
|
protected _createInputObjectType(definition: InputObjectNode): ts.TypeAliasDeclaration;
|
|
11
11
|
protected _createObjectType(definition: ObjectNode): ts.TypeAliasDeclaration;
|
|
12
12
|
protected _createInterfaceType(definition: InterfaceNode): ts.InterfaceDeclaration;
|
|
13
|
-
protected _createUnionType(definition: UnionNode): ts.TypeAliasDeclaration
|
|
14
|
-
protected _createEnumType(definition: EnumNode): ts.TypeAliasDeclaration
|
|
13
|
+
protected _createUnionType(definition: UnionNode): ts.TypeAliasDeclaration;
|
|
14
|
+
protected _createEnumType(definition: EnumNode): ts.TypeAliasDeclaration;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=TypesGeneratorBase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypesGeneratorBase.d.ts","sourceRoot":"","sources":["../../../src/base/TypesGeneratorBase/TypesGeneratorBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EACL,QAAQ,EACR,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"TypesGeneratorBase.d.ts","sourceRoot":"","sources":["../../../src/base/TypesGeneratorBase/TypesGeneratorBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EACL,QAAQ,EACR,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EAKb,UAAU,EACV,QAAQ,EACR,SAAS,EACV,MAAM,0BAA0B,CAAC;AAKlC,8BAAsB,kBAAmB,SAAQ,qBAAqB;IACpE,SAAS,CAAC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU;IA2CpE,SAAS,CAAC,yBAAyB,CACjC,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,QAAQ,EACnB,KAAK,SAAI,GACR,EAAE,CAAC,QAAQ;IAuBd,SAAS,CAAC,8BAA8B,CACtC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,QAAQ,EACnB,KAAK,SAAI,GACR,EAAE,CAAC,QAAQ;IAuBd,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa;IAmCpE,SAAS,CAAC,wBAAwB,CAAC,UAAU,EAAE,eAAe;IAuB9D,SAAS,CAAC,sBAAsB,CAAC,UAAU,EAAE,eAAe;IAa5D,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU;IAalD,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,aAAa;IAcxD,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS;IAsBhD,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ;CAqB/C"}
|
|
@@ -2,10 +2,10 @@ import ts from "typescript";
|
|
|
2
2
|
import { TransformerPluginBase } from "@gqlbase/core";
|
|
3
3
|
import { isBuildInScalar } from "@gqlbase/shared/definition";
|
|
4
4
|
import { getTypeHint } from "@gqlbase/core/plugins";
|
|
5
|
-
import { ListTypeNode, NonNullTypeNode, } from "@gqlbase/core/definition";
|
|
6
|
-
import {
|
|
7
|
-
import { isNullable, isSemanticNullable } from "../RfcFeaturesPlugin/index.js";
|
|
5
|
+
import { isNullableTypeNode, isScalarNode, ListTypeNode, NonNullTypeNode, } from "@gqlbase/core/definition";
|
|
6
|
+
import { isSemanticNullable } from "../RfcFeaturesPlugin/index.js";
|
|
8
7
|
import { isRelationField } from "../RelationsPlugin/index.js";
|
|
8
|
+
import { TransformerPluginExecutionError } from "@gqlbase/shared/errors";
|
|
9
9
|
export class TypesGeneratorBase extends TransformerPluginBase {
|
|
10
10
|
_createTypeNameIdentifier(typeName) {
|
|
11
11
|
if (isBuildInScalar(typeName)) {
|
|
@@ -21,7 +21,7 @@ export class TypesGeneratorBase extends TransformerPluginBase {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
const typeDef = this.context.document.getNodeOrThrow(typeName);
|
|
24
|
-
if (
|
|
24
|
+
if (isScalarNode(typeDef)) {
|
|
25
25
|
const hint = getTypeHint(typeDef);
|
|
26
26
|
switch (hint) {
|
|
27
27
|
case "id":
|
|
@@ -66,12 +66,12 @@ export class TypesGeneratorBase extends TransformerPluginBase {
|
|
|
66
66
|
if (fieldType instanceof ListTypeNode) {
|
|
67
67
|
const elementType = this._createInputValueTypeReference(field, fieldType.type, level + 1);
|
|
68
68
|
const arrayType = ts.factory.createArrayTypeNode(elementType);
|
|
69
|
-
return
|
|
69
|
+
return isNullableTypeNode(field.type, level)
|
|
70
70
|
? ts.factory.createTypeReferenceNode("Maybe", [arrayType])
|
|
71
71
|
: arrayType;
|
|
72
72
|
}
|
|
73
73
|
const baseType = ts.factory.createTypeReferenceNode(this._createTypeNameIdentifier(fieldType.name));
|
|
74
|
-
return
|
|
74
|
+
return isNullableTypeNode(field.type, level)
|
|
75
75
|
? ts.factory.createTypeReferenceNode("Maybe", [baseType])
|
|
76
76
|
: baseType;
|
|
77
77
|
}
|
|
@@ -100,7 +100,7 @@ export class TypesGeneratorBase extends TransformerPluginBase {
|
|
|
100
100
|
_createInputValueMembers(definition) {
|
|
101
101
|
const members = [];
|
|
102
102
|
for (const field of definition.fields ?? []) {
|
|
103
|
-
const questionToken =
|
|
103
|
+
const questionToken = isNullableTypeNode(field.type)
|
|
104
104
|
? ts.factory.createToken(ts.SyntaxKind.QuestionToken)
|
|
105
105
|
: undefined;
|
|
106
106
|
const typeNode = this._createInputValueTypeReference(field, field.type);
|
|
@@ -133,8 +133,7 @@ export class TypesGeneratorBase extends TransformerPluginBase {
|
|
|
133
133
|
}
|
|
134
134
|
_createUnionType(definition) {
|
|
135
135
|
if (!definition.types?.length) {
|
|
136
|
-
this.
|
|
137
|
-
return;
|
|
136
|
+
throw new TransformerPluginExecutionError(this.name, `Union type ${definition.name} must have at least one member type.`);
|
|
138
137
|
}
|
|
139
138
|
const refs = definition.types.map((type) => ts.factory.createTypeReferenceNode(ts.factory.createIdentifier(type.name)));
|
|
140
139
|
const unionType = ts.factory.createTypeAliasDeclaration(
|
|
@@ -144,8 +143,7 @@ export class TypesGeneratorBase extends TransformerPluginBase {
|
|
|
144
143
|
}
|
|
145
144
|
_createEnumType(definition) {
|
|
146
145
|
if (!definition.values?.length) {
|
|
147
|
-
this.
|
|
148
|
-
return;
|
|
146
|
+
throw new TransformerPluginExecutionError(this.name, `Enum type ${definition.name} must have at least one value.`);
|
|
149
147
|
}
|
|
150
148
|
const members = definition.values.map((value) => ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(value.name)));
|
|
151
149
|
const enumType = ts.factory.createTypeAliasDeclaration(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypesGeneratorBase.js","sourceRoot":"","sources":["../../../src/base/TypesGeneratorBase/TypesGeneratorBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAML,YAAY,EACZ,eAAe,GAIhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TypesGeneratorBase.js","sourceRoot":"","sources":["../../../src/base/TypesGeneratorBase/TypesGeneratorBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/base/TypesGeneratorBase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/base/TypesGeneratorBase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/base/TypesGeneratorBase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/base/TypesGeneratorBase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UtilitiesPlugin.d.ts","sourceRoot":"","sources":["../../../src/base/UtilitiesPlugin/UtilitiesPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAuB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACL,cAAc,EAEd,aAAa,EACb,UAAU,
|
|
1
|
+
{"version":3,"file":"UtilitiesPlugin.d.ts","sourceRoot":"","sources":["../../../src/base/UtilitiesPlugin/UtilitiesPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAuB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACL,cAAc,EAEd,aAAa,EACb,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAGlC;;GAEG;AAEH,qBAAa,eAAgB,YAAW,kBAAkB;IACxD,SAAgB,IAAI,qBAAqB;IACzC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAE1B,OAAO,EAAE,mBAAmB;IAIjC,IAAI,IAAI,IAAI;IA2EZ,KAAK,CAAC,UAAU,EAAE,cAAc;IAQhC,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAgCrD,KAAK,IAAI,IAAI;CAUrB;AAED,eAAO,MAAM,WAAW,uEAAuC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createPluginFactory } from "@gqlbase/core/plugins";
|
|
2
|
-
import { DirectiveDefinitionNode, InterfaceNode, ObjectNode, } from "@gqlbase/core/definition";
|
|
2
|
+
import { DirectiveDefinitionNode, InterfaceNode, ObjectNode, ValueNode, } from "@gqlbase/core/definition";
|
|
3
3
|
import { UtilityDirective } from "./UtilitiesPlugin.utils.js";
|
|
4
4
|
/**
|
|
5
5
|
* Adds utility directives to the schema that can be used to mark fields as server-only, client-only, read-only, write-only, filter-only, create-only, or update-only.
|
|
@@ -12,13 +12,17 @@ export class UtilitiesPlugin {
|
|
|
12
12
|
}
|
|
13
13
|
init() {
|
|
14
14
|
this.context.base
|
|
15
|
-
.addNode(DirectiveDefinitionNode.create(UtilityDirective.READ_ONLY, ["FIELD_DEFINITION"]))
|
|
16
|
-
.addNode(DirectiveDefinitionNode.create(UtilityDirective.WRITE_ONLY, ["FIELD_DEFINITION"]))
|
|
17
|
-
.addNode(DirectiveDefinitionNode.create(UtilityDirective.SERVER_ONLY, ["FIELD_DEFINITION"]))
|
|
18
|
-
.addNode(DirectiveDefinitionNode.create(UtilityDirective.CLIENT_ONLY,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
.addNode(DirectiveDefinitionNode.create(UtilityDirective.READ_ONLY, ValueNode.string("Marks a field as read-only, meaning it should only be included in output types and not in input types.", true), ["FIELD_DEFINITION"]))
|
|
16
|
+
.addNode(DirectiveDefinitionNode.create(UtilityDirective.WRITE_ONLY, ValueNode.string("Marks a field as write-only, meaning it should only be included in input types and not in output types.", true), ["FIELD_DEFINITION"]))
|
|
17
|
+
.addNode(DirectiveDefinitionNode.create(UtilityDirective.SERVER_ONLY, ValueNode.string("Marks a field as server-only, meaning it should only be included in the persistence layer and not exposed in final GraphQL schema.", true), ["FIELD_DEFINITION"]))
|
|
18
|
+
.addNode(DirectiveDefinitionNode.create(UtilityDirective.CLIENT_ONLY, ValueNode.string(`Marks a field as client-only, meaning the output value for this field is computed at runtime, and should not be included in the persistence layer.
|
|
19
|
+
|
|
20
|
+
This is useful for fields that are computed from other fields, or for fields that are only relevant to the client and should not be stored in the database.
|
|
21
|
+
|
|
22
|
+
The field will not be included in input objects.`, true), ["FIELD_DEFINITION"]))
|
|
23
|
+
.addNode(DirectiveDefinitionNode.create(UtilityDirective.FILTER_ONLY, ValueNode.string("The field will be preserved in the output type but only included in the filter input."), ["FIELD_DEFINITION"]))
|
|
24
|
+
.addNode(DirectiveDefinitionNode.create(UtilityDirective.CREATE_ONLY, ValueNode.string("The field will be preserved in the output type but only included in the create input."), ["FIELD_DEFINITION"]))
|
|
25
|
+
.addNode(DirectiveDefinitionNode.create(UtilityDirective.UPDATE_ONLY, ValueNode.string("The field will be preserved in the output type but only included in the update input."), ["FIELD_DEFINITION"]));
|
|
22
26
|
}
|
|
23
27
|
match(definition) {
|
|
24
28
|
if (definition instanceof ObjectNode || definition instanceof InterfaceNode) {
|
|
@@ -31,23 +35,23 @@ export class UtilitiesPlugin {
|
|
|
31
35
|
if (field.hasDirective(UtilityDirective.READ_ONLY)) {
|
|
32
36
|
field.removeDirective(UtilityDirective.READ_ONLY);
|
|
33
37
|
}
|
|
38
|
+
if (field.hasDirective(UtilityDirective.WRITE_ONLY)) {
|
|
39
|
+
definition.removeField(field.name);
|
|
40
|
+
}
|
|
41
|
+
if (field.hasDirective(UtilityDirective.SERVER_ONLY)) {
|
|
42
|
+
definition.removeField(field.name);
|
|
43
|
+
}
|
|
34
44
|
if (field.hasDirective(UtilityDirective.CLIENT_ONLY)) {
|
|
35
45
|
field.removeDirective(UtilityDirective.CLIENT_ONLY);
|
|
36
46
|
}
|
|
37
47
|
if (field.hasDirective(UtilityDirective.FILTER_ONLY)) {
|
|
38
|
-
|
|
48
|
+
field.removeDirective(UtilityDirective.FILTER_ONLY);
|
|
39
49
|
}
|
|
40
50
|
if (field.hasDirective(UtilityDirective.CREATE_ONLY)) {
|
|
41
|
-
|
|
51
|
+
field.removeDirective(UtilityDirective.CREATE_ONLY);
|
|
42
52
|
}
|
|
43
53
|
if (field.hasDirective(UtilityDirective.UPDATE_ONLY)) {
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
if (field.hasDirective(UtilityDirective.WRITE_ONLY)) {
|
|
47
|
-
definition.removeField(field.name);
|
|
48
|
-
}
|
|
49
|
-
if (field.hasDirective(UtilityDirective.SERVER_ONLY)) {
|
|
50
|
-
definition.removeField(field.name);
|
|
54
|
+
field.removeDirective(UtilityDirective.UPDATE_ONLY);
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UtilitiesPlugin.js","sourceRoot":"","sources":["../../../src/base/UtilitiesPlugin/UtilitiesPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAEL,uBAAuB,EACvB,aAAa,EACb,UAAU,
|
|
1
|
+
{"version":3,"file":"UtilitiesPlugin.js","sourceRoot":"","sources":["../../../src/base/UtilitiesPlugin/UtilitiesPlugin.ts"],"names":[],"mappings":"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"}
|
package/dist/base/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { TypesGeneratorBase
|
|
2
|
-
export { ModelPlugin, type ModelPluginOptions, ModelDirective, ModelOperation, modelPlugin, isModel,
|
|
1
|
+
export { TypesGeneratorBase } from "./TypesGeneratorBase/index.js";
|
|
2
|
+
export { ModelPlugin, type ModelPluginOptions, ModelDirective, ModelOperation, modelPlugin, isModel, } from "./ModelPlugin/index.js";
|
|
3
3
|
export { RelationsPlugin, relationPlugin, RelationDirective, isRelationField, isOneRelationship, isManyRelationship, type FieldRelationship, type RelationPluginOptions, } from "./RelationsPlugin/index.js";
|
|
4
4
|
export { UtilitiesPlugin, UtilityDirective, utilsPlugin, isReadOnly, isClientOnly, isCreateOnly, isFilterOnly, isServerOnly, isUpdateOnly, isWriteOnly, } from "./UtilitiesPlugin/index.js";
|
|
5
|
-
export { RfcFeaturesPlugin, RfcDirective, rfcFeaturesPlugin,
|
|
5
|
+
export { RfcFeaturesPlugin, RfcDirective, rfcFeaturesPlugin, isSemanticNullable, } from "./RfcFeaturesPlugin/index.js";
|
|
6
6
|
export { ScalarsPlugin, BaseScalar, scalarsPlugin, isBaseScalar, type BaseScalarName, } from "./ScalarsPlugin/index.js";
|
|
7
7
|
export { SchemaGeneratorPlugin, schemaGeneratorPlugin } from "./SchemaGeneratorPlugin.js";
|
|
8
8
|
export { ModelTypesGeneratorPlugin, modelTypesGeneratorPlugin, } from "./ModelTypesGeneratorPlugin/index.js";
|