@webda/graphql 4.0.0-beta.6 → 4.0.0-beta.7
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 +5 -4
- package/lib/graphql.service.d.ts +91 -3
- package/lib/graphql.service.d.ts.map +1 -1
- package/lib/graphql.service.js +299 -31
- package/lib/graphql.service.js.map +1 -1
- package/lib/mutations.d.ts +8 -0
- package/lib/mutations.d.ts.map +1 -1
- package/lib/mutations.js +27 -0
- package/lib/mutations.js.map +1 -1
- package/lib/operations.d.ts +110 -0
- package/lib/operations.d.ts.map +1 -0
- package/lib/operations.js +221 -0
- package/lib/operations.js.map +1 -0
- package/lib/types/any.d.ts.map +1 -1
- package/lib/types/any.js +27 -19
- package/lib/types/any.js.map +1 -1
- package/lib/types/date.d.ts.map +1 -1
- package/lib/types/date.js +4 -2
- package/lib/types/date.js.map +1 -1
- package/package.json +11 -6
- package/webda.module.json +10 -0
package/lib/types/any.js
CHANGED
|
@@ -1,26 +1,34 @@
|
|
|
1
|
-
import { GraphQLScalarType, Kind } from "graphql";
|
|
1
|
+
import { GraphQLScalarType, Kind, valueFromASTUntyped } from "graphql";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* @param value -
|
|
5
|
-
* @returns parsed
|
|
3
|
+
* Read a string as JSON when it looks like a JSON object or array
|
|
4
|
+
* @param value - the string
|
|
5
|
+
* @returns the parsed value, or the string itself
|
|
6
6
|
*/
|
|
7
|
-
function
|
|
8
|
-
|
|
7
|
+
function fromJSONString(value) {
|
|
8
|
+
const text = value.trim();
|
|
9
|
+
if (!text.startsWith("{") && !text.startsWith("[")) {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
return JSON.parse(text);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Values pass through unchanged (objects, arrays, numbers, booleans, strings)
|
|
21
|
+
* @param value - value to pass
|
|
22
|
+
* @returns the value, null for undefined
|
|
23
|
+
*/
|
|
24
|
+
function passThrough(value) {
|
|
25
|
+
return value === undefined ? null : value;
|
|
9
26
|
}
|
|
10
27
|
export const AnyScalarType = new GraphQLScalarType({
|
|
11
28
|
name: "Object",
|
|
12
|
-
description: "Arbitrary object",
|
|
13
|
-
parseValue:
|
|
14
|
-
serialize:
|
|
15
|
-
parseLiteral: ast =>
|
|
16
|
-
switch (ast.kind) {
|
|
17
|
-
case Kind.STRING:
|
|
18
|
-
return JSON.parse(ast.value);
|
|
19
|
-
case Kind.OBJECT:
|
|
20
|
-
throw new Error(`Not sure what to do with OBJECT for ObjectScalarType`);
|
|
21
|
-
default:
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
29
|
+
description: "Arbitrary value: object, array, number, boolean or string",
|
|
30
|
+
parseValue: passThrough,
|
|
31
|
+
serialize: passThrough,
|
|
32
|
+
parseLiteral: (ast, variables) => ast.kind === Kind.STRING ? fromJSONString(ast.value) : valueFromASTUntyped(ast, variables)
|
|
25
33
|
});
|
|
26
34
|
//# sourceMappingURL=any.js.map
|
package/lib/types/any.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"any.js","sourceRoot":"","sources":["../../src/types/any.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"any.js","sourceRoot":"","sources":["../../src/types/any.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEvE;;;;GAIG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAU;IAC7B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC;IACjD,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,2DAA2D;IACxE,UAAU,EAAE,WAAW;IACvB,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAC/B,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,CAAC;CAC7F,CAAC,CAAC"}
|
package/lib/types/date.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/types/date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAQ,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/types/date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAQ,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,UAAU,iCAyBrB,CAAC"}
|
package/lib/types/date.js
CHANGED
|
@@ -3,8 +3,10 @@ export const DateScalar = new GraphQLScalarType({
|
|
|
3
3
|
name: "Date",
|
|
4
4
|
description: "Date custom scalar type",
|
|
5
5
|
serialize(value) {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
// Stores serializing to JSON return dates as ISO strings or timestamps
|
|
7
|
+
const date = typeof value === "string" || typeof value === "number" ? new Date(value) : value;
|
|
8
|
+
if (date instanceof Date && !isNaN(date.getTime())) {
|
|
9
|
+
return date.toISOString();
|
|
8
10
|
}
|
|
9
11
|
throw Error("GraphQL Date Scalar serializer expected a `Date` object");
|
|
10
12
|
},
|
package/lib/types/date.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/types/date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC;IAC9C,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,yBAAyB;IACtC,SAAS,CAAC,KAAK;QACb,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/types/date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC;IAC9C,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,yBAAyB;IACtC,SAAS,CAAC,KAAK;QACb,uEAAuE;QACvE,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9F,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;IACD,UAAU,CAAC,KAAK;QACd,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,mCAAmC;QAC7D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,YAAY,CAAC,GAAG;QACd,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,4DAA4D;YAC5D,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,4CAA4C;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webda/graphql",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.7",
|
|
4
4
|
"description": "GraphQL endpoint for your Webda Application",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -18,12 +18,15 @@
|
|
|
18
18
|
"graphql-ws": "^6.0.8",
|
|
19
19
|
"json-schema": "^0.4.0",
|
|
20
20
|
"ws": "^8.20.0",
|
|
21
|
-
"@webda/
|
|
22
|
-
"@webda/
|
|
23
|
-
"@webda/
|
|
21
|
+
"@webda/core": "4.0.0-beta.7",
|
|
22
|
+
"@webda/runtime": "4.0.0-beta.7",
|
|
23
|
+
"@webda/utils": "4.0.0-beta.7",
|
|
24
|
+
"@webda/ql": "4.0.0-beta.6",
|
|
25
|
+
"@webda/workout": "4.0.0-beta.5"
|
|
24
26
|
},
|
|
25
27
|
"devDependencies": {
|
|
26
28
|
"@types/node": "25.5.0",
|
|
29
|
+
"@vitest/coverage-v8": "^4.1.2",
|
|
27
30
|
"c8": "^11.0.0",
|
|
28
31
|
"glob": "^13.0.6",
|
|
29
32
|
"js-beautify": "^1.15.4",
|
|
@@ -32,7 +35,9 @@
|
|
|
32
35
|
"skott": "^0.35.8",
|
|
33
36
|
"source-map-support": "^0.5.21",
|
|
34
37
|
"vite": "^6.0.0",
|
|
35
|
-
"
|
|
38
|
+
"vitest": "^4.0.0",
|
|
39
|
+
"@webda/compiler": "^4.0.0-beta.7",
|
|
40
|
+
"@webda/test": "^4.0.0-beta.6"
|
|
36
41
|
},
|
|
37
42
|
"webda": {
|
|
38
43
|
"namespace": "Webda"
|
|
@@ -59,7 +64,7 @@
|
|
|
59
64
|
"scripts": {
|
|
60
65
|
"build": "webdac build",
|
|
61
66
|
"pretest": "npm run build",
|
|
62
|
-
"test": "
|
|
67
|
+
"test": "vitest run",
|
|
63
68
|
"new-model": "webda init webda:model",
|
|
64
69
|
"new-service": "webda init webda:service",
|
|
65
70
|
"lint": "eslint",
|
package/webda.module.json
CHANGED
|
@@ -20,6 +20,16 @@
|
|
|
20
20
|
"description": "Expose current user in the context with me",
|
|
21
21
|
"type": "boolean"
|
|
22
22
|
},
|
|
23
|
+
"exposeOperations": {
|
|
24
|
+
"default": [
|
|
25
|
+
"*"
|
|
26
|
+
],
|
|
27
|
+
"description": "Operations exposed as GraphQL fields next to the model schema, with the operation transports' patterns:\n`\"*\"`, `\"Service.*\"`, an exact id, `\"!Id\"` to exclude; `[]` exposes no operation",
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"type": "array"
|
|
32
|
+
},
|
|
23
33
|
"globalSubscription": {
|
|
24
34
|
"default": false,
|
|
25
35
|
"description": "Expose a aggregation of all available subscriptions",
|