@orion-js/graphql 3.12.0 → 3.13.1
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/LICENSE +21 -0
- package/jest.config.js +8 -0
- package/lib/buildSchema/getArgs/getField.d.ts +1 -0
- package/lib/buildSchema/getArgs/getField.js +49 -0
- package/lib/buildSchema/getArgs/index.d.ts +1 -0
- package/lib/buildSchema/getArgs/index.js +24 -0
- package/lib/buildSchema/getMutation.d.ts +3 -0
- package/lib/buildSchema/getMutation.js +18 -0
- package/lib/buildSchema/getQuery.d.ts +3 -0
- package/lib/buildSchema/getQuery.js +18 -0
- package/lib/buildSchema/getResolvers/index.d.ts +3 -0
- package/lib/buildSchema/getResolvers/index.js +43 -0
- package/lib/buildSchema/getResolvers/index.test.d.ts +1 -0
- package/lib/buildSchema/getResolvers/index.test.js +65 -0
- package/lib/buildSchema/getResolvers/resolversStore.d.ts +3 -0
- package/lib/buildSchema/getResolvers/resolversStore.js +5 -0
- package/lib/buildSchema/getSubscription.d.ts +3 -0
- package/lib/buildSchema/getSubscription.js +17 -0
- package/lib/buildSchema/getSubscriptions/index.d.ts +2 -0
- package/lib/buildSchema/getSubscriptions/index.js +26 -0
- package/lib/buildSchema/getSubscriptions/index.test.d.ts +1 -0
- package/lib/buildSchema/getSubscriptions/index.test.js +52 -0
- package/lib/buildSchema/getType/BigIntScalar.d.ts +3 -0
- package/lib/buildSchema/getType/BigIntScalar.js +35 -0
- package/lib/buildSchema/getType/DateScalar.d.ts +3 -0
- package/lib/buildSchema/getType/DateScalar.js +10 -0
- package/lib/buildSchema/getType/JSONScalar.d.ts +3 -0
- package/lib/buildSchema/getType/JSONScalar.js +42 -0
- package/lib/buildSchema/getType/enum.test.d.ts +1 -0
- package/lib/buildSchema/getType/enum.test.js +80 -0
- package/lib/buildSchema/getType/getScalar.d.ts +1 -0
- package/lib/buildSchema/getType/getScalar.js +58 -0
- package/lib/buildSchema/getType/getTypeAsResolver.d.ts +10 -0
- package/lib/buildSchema/getType/getTypeAsResolver.js +26 -0
- package/lib/buildSchema/getType/index.d.ts +2 -0
- package/lib/buildSchema/getType/index.js +86 -0
- package/lib/buildSchema/index.d.ts +3 -0
- package/lib/buildSchema/index.js +17 -0
- package/lib/cleanResolvers.d.ts +1 -0
- package/lib/cleanResolvers.js +8 -0
- package/lib/errorHandler.d.ts +1 -0
- package/lib/errorHandler.js +42 -0
- package/lib/getApolloOptions/formatError.d.ts +1 -0
- package/lib/getApolloOptions/formatError.js +14 -0
- package/lib/getApolloOptions/index.d.ts +3 -0
- package/lib/getApolloOptions/index.js +26 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.js +51 -0
- package/lib/pubsub.d.ts +3 -0
- package/lib/pubsub.js +12 -0
- package/lib/resolversSchemas/ResolverParamsInfo.d.ts +9 -0
- package/lib/resolversSchemas/ResolverParamsInfo.js +47 -0
- package/lib/resolversSchemas/getBasicResultQuery.d.ts +1 -0
- package/lib/resolversSchemas/getBasicResultQuery.js +24 -0
- package/lib/resolversSchemas/getDynamicFields.d.ts +2 -0
- package/lib/resolversSchemas/getDynamicFields.js +19 -0
- package/lib/resolversSchemas/getField.d.ts +1 -0
- package/lib/resolversSchemas/getField.js +50 -0
- package/lib/resolversSchemas/getField.test.d.ts +1 -0
- package/lib/resolversSchemas/getField.test.js +56 -0
- package/lib/resolversSchemas/getModelLoadedResolvers.d.ts +3 -0
- package/lib/resolversSchemas/getModelLoadedResolvers.js +21 -0
- package/lib/resolversSchemas/getStaticFields.d.ts +3 -0
- package/lib/resolversSchemas/getStaticFields.js +20 -0
- package/lib/resolversSchemas/index.d.ts +7 -0
- package/lib/resolversSchemas/index.js +9 -0
- package/lib/resolversSchemas/params.d.ts +5 -0
- package/lib/resolversSchemas/params.js +31 -0
- package/lib/resolversSchemas/params.test.d.ts +1 -0
- package/lib/resolversSchemas/params.test.js +131 -0
- package/lib/resolversSchemas/serializeSchema.d.ts +2 -0
- package/lib/resolversSchemas/serializeSchema.js +22 -0
- package/lib/resolversSchemas/serializeSchema.test.d.ts +1 -0
- package/lib/resolversSchemas/serializeSchema.test.js +56 -0
- package/lib/service/global.d.ts +10 -0
- package/lib/service/global.js +60 -0
- package/lib/service/index.d.ts +4 -0
- package/lib/service/index.js +20 -0
- package/lib/service/index.test.d.ts +1 -0
- package/lib/service/index.test.js +63 -0
- package/lib/service/middlewares.test.d.ts +1 -0
- package/lib/service/middlewares.test.js +125 -0
- package/lib/service/model.d.ts +14 -0
- package/lib/service/model.js +48 -0
- package/lib/service/model.test.d.ts +1 -0
- package/lib/service/model.test.js +126 -0
- package/lib/service/otherParams.d.ts +7 -0
- package/lib/service/otherParams.js +28 -0
- package/lib/service/subscription.d.ts +6 -0
- package/lib/service/subscription.js +43 -0
- package/lib/service/subscription.test.d.ts +1 -0
- package/lib/service/subscription.test.js +55 -0
- package/lib/startGraphQL.d.ts +2 -0
- package/lib/startGraphQL.js +43 -0
- package/lib/startGraphQL.test.d.ts +1 -0
- package/lib/startGraphQL.test.js +414 -0
- package/lib/startGraphiQL.d.ts +3 -0
- package/lib/startGraphiQL.js +207 -0
- package/lib/startWebsocket.d.ts +11 -0
- package/lib/startWebsocket.js +48 -0
- package/lib/startWebsocket.test.d.ts +1 -0
- package/lib/startWebsocket.test.js +303 -0
- package/lib/subscription/getChannelName.d.ts +1 -0
- package/lib/subscription/getChannelName.js +9 -0
- package/lib/subscription/getChannelName.test.d.ts +1 -0
- package/lib/subscription/getChannelName.test.js +26 -0
- package/lib/subscription/index.d.ts +3 -0
- package/lib/subscription/index.js +34 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/index.js +19 -0
- package/lib/types/startGraphQL.d.ts +41 -0
- package/lib/types/startGraphQL.js +2 -0
- package/lib/types/subscription.d.ts +15 -0
- package/lib/types/subscription.js +2 -0
- package/lib/websockerViewer.d.ts +2 -0
- package/lib/websockerViewer.js +20 -0
- package/package.json +22 -31
- package/tsconfig.json +20 -0
- package/dist/index.cjs +0 -107852
- package/dist/index.d.ts +0 -116
- package/dist/index.js +0 -107825
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getArgs_1 = __importDefault(require("../getArgs"));
|
|
7
|
+
const errorHandler_1 = __importDefault(require("../../errorHandler"));
|
|
8
|
+
function default_1({ resolver, getGraphQLType, options, model }) {
|
|
9
|
+
const type = getGraphQLType(resolver.returns, options);
|
|
10
|
+
const args = (0, getArgs_1.default)(resolver.params);
|
|
11
|
+
return {
|
|
12
|
+
type,
|
|
13
|
+
args,
|
|
14
|
+
async resolve(item, params, context, info) {
|
|
15
|
+
try {
|
|
16
|
+
const result = await resolver.resolve(item, params, context, info);
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
(0, errorHandler_1.default)(error, { context, resolver, options, model });
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.default = default_1;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const isPlainObject_1 = __importDefault(require("lodash/isPlainObject"));
|
|
7
|
+
const isArray_1 = __importDefault(require("lodash/isArray"));
|
|
8
|
+
const graphql_1 = require("graphql");
|
|
9
|
+
const schema_1 = require("@orion-js/schema");
|
|
10
|
+
const getScalar_1 = __importDefault(require("./getScalar"));
|
|
11
|
+
const getTypeAsResolver_1 = __importDefault(require("./getTypeAsResolver"));
|
|
12
|
+
const getStaticFields_1 = require("../../resolversSchemas/getStaticFields");
|
|
13
|
+
const getDynamicFields_1 = require("../../resolversSchemas/getDynamicFields");
|
|
14
|
+
const getModelLoadedResolvers_1 = require("../../resolversSchemas/getModelLoadedResolvers");
|
|
15
|
+
function getGraphQLType(type, options) {
|
|
16
|
+
if (!type) {
|
|
17
|
+
throw new Error('Type is undefined');
|
|
18
|
+
}
|
|
19
|
+
if ((0, isArray_1.default)(type)) {
|
|
20
|
+
const graphQLType = getGraphQLType(type[0], options);
|
|
21
|
+
return new graphql_1.GraphQLList(graphQLType);
|
|
22
|
+
}
|
|
23
|
+
else if (typeof type === 'function' && type.getModel && type.__schemaId) {
|
|
24
|
+
return getGraphQLType(type.getModel(), options);
|
|
25
|
+
}
|
|
26
|
+
else if (!type._isFieldType && ((0, isPlainObject_1.default)(type) || type.__isModel)) {
|
|
27
|
+
const model = type.__isModel ? type : type.__model;
|
|
28
|
+
if (!model || !model.__isModel)
|
|
29
|
+
throw new Error('Type is not a Model');
|
|
30
|
+
if (model.graphQLType)
|
|
31
|
+
return model.graphQLType;
|
|
32
|
+
model.graphQLType = new graphql_1.GraphQLObjectType({
|
|
33
|
+
name: model.name,
|
|
34
|
+
fields: () => {
|
|
35
|
+
const fields = {};
|
|
36
|
+
for (const field of (0, getStaticFields_1.getStaticFields)(model)) {
|
|
37
|
+
try {
|
|
38
|
+
/**
|
|
39
|
+
* For fields that have custom "to client" resolvers and serverside are static
|
|
40
|
+
*/
|
|
41
|
+
if (field.graphQLResolver) {
|
|
42
|
+
fields[field.key] = (0, getTypeAsResolver_1.default)({
|
|
43
|
+
resolver: field.graphQLResolver,
|
|
44
|
+
getGraphQLType,
|
|
45
|
+
options,
|
|
46
|
+
model
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
fields[field.key] = {
|
|
51
|
+
type: getGraphQLType(field.type, options)
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
throw new Error(`Error getting type for ${field.key} ${error.message}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
for (const resolver of (0, getDynamicFields_1.getDynamicFields)(model)) {
|
|
60
|
+
try {
|
|
61
|
+
fields[resolver.key] = (0, getTypeAsResolver_1.default)({ resolver, getGraphQLType, options, model });
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
throw new Error(`Error getting resolver type for resolver "${resolver.key}": ${error.message}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
for (const resolver of (0, getModelLoadedResolvers_1.getModelLoadedResolvers)(model, options)) {
|
|
68
|
+
try {
|
|
69
|
+
fields[resolver.key] = (0, getTypeAsResolver_1.default)({ resolver, getGraphQLType, options, model });
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
throw new Error(`Error getting resolver type for resolver "${resolver.key}": ${error.message}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return fields;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
return model.graphQLType;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const schemaType = (0, schema_1.getFieldType)(type);
|
|
82
|
+
const graphQLType = (0, getScalar_1.default)(schemaType);
|
|
83
|
+
return graphQLType;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.default = getGraphQLType;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const graphql_1 = require("graphql");
|
|
7
|
+
const getQuery_1 = __importDefault(require("./getQuery"));
|
|
8
|
+
const getMutation_1 = __importDefault(require("./getMutation"));
|
|
9
|
+
const getSubscription_1 = __importDefault(require("./getSubscription"));
|
|
10
|
+
async function default_1(options) {
|
|
11
|
+
const query = await (0, getQuery_1.default)(options);
|
|
12
|
+
const mutation = await (0, getMutation_1.default)(options);
|
|
13
|
+
const subscription = await (0, getSubscription_1.default)(options);
|
|
14
|
+
const schema = new graphql_1.GraphQLSchema({ query, mutation, subscription });
|
|
15
|
+
return schema;
|
|
16
|
+
}
|
|
17
|
+
exports.default = default_1;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const cleanResolvers: () => void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cleanResolvers = void 0;
|
|
4
|
+
const cleanResolvers = function () {
|
|
5
|
+
global.graphQLSubscriptions = {};
|
|
6
|
+
global.graphQLResolvers = {};
|
|
7
|
+
};
|
|
8
|
+
exports.cleanResolvers = cleanResolvers;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function errorHandler(error: any, data: any): void;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
7
|
+
const graphql_1 = require("graphql");
|
|
8
|
+
function errorHandler(error, data) {
|
|
9
|
+
const message = `Error in resolver "${data.name}" ${data.model ? `of model "${data.model.name}"` : ''}`;
|
|
10
|
+
const hash = crypto_1.default
|
|
11
|
+
.createHash('sha1')
|
|
12
|
+
.update(error.message, 'utf8')
|
|
13
|
+
.digest('hex')
|
|
14
|
+
.substring(0, 10);
|
|
15
|
+
error.hash = hash;
|
|
16
|
+
if (error && error.isOrionError) {
|
|
17
|
+
console.warn(message, error);
|
|
18
|
+
throw new graphql_1.GraphQLError(error.message, {
|
|
19
|
+
originalError: error,
|
|
20
|
+
extensions: {
|
|
21
|
+
isOrionError: !!error.isOrionError,
|
|
22
|
+
isValidationError: !!error.isValidationError,
|
|
23
|
+
code: error.code,
|
|
24
|
+
hash,
|
|
25
|
+
info: error.getInfo()
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
console.error(message, error);
|
|
31
|
+
throw new graphql_1.GraphQLError(`${error.message} [${hash}]`, {
|
|
32
|
+
// originalError: error,
|
|
33
|
+
extensions: {
|
|
34
|
+
isOrionError: false,
|
|
35
|
+
isValidationError: false,
|
|
36
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
37
|
+
hash: hash
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.default = errorHandler;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (apolloError: any): any;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function default_1(apolloError) {
|
|
4
|
+
let response = { ...apolloError };
|
|
5
|
+
const error = apolloError.originalError;
|
|
6
|
+
if (error && error.isValidationError) {
|
|
7
|
+
response.validationErrors = error.validationErrors;
|
|
8
|
+
}
|
|
9
|
+
if (error && error.getInfo) {
|
|
10
|
+
response = error.getInfo();
|
|
11
|
+
}
|
|
12
|
+
return response;
|
|
13
|
+
}
|
|
14
|
+
exports.default = default_1;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const buildSchema_1 = __importDefault(require("../buildSchema"));
|
|
7
|
+
const formatError_1 = __importDefault(require("./formatError"));
|
|
8
|
+
const lodash_1 = require("lodash");
|
|
9
|
+
async function default_1(options) {
|
|
10
|
+
const schema = await (0, buildSchema_1.default)(options);
|
|
11
|
+
const passedOptions = (0, lodash_1.omit)(options, [
|
|
12
|
+
'resolvers',
|
|
13
|
+
'modelResolvers',
|
|
14
|
+
'subscriptions',
|
|
15
|
+
'executeGraphQLCache',
|
|
16
|
+
'useGraphiql',
|
|
17
|
+
'app',
|
|
18
|
+
'pubsub'
|
|
19
|
+
]);
|
|
20
|
+
return {
|
|
21
|
+
...passedOptions,
|
|
22
|
+
schema,
|
|
23
|
+
formatError: formatError_1.default
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.default = default_1;
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import subscription from './subscription';
|
|
2
|
+
import startGraphQL from './startGraphQL';
|
|
3
|
+
import startGraphiQL from './startGraphiQL';
|
|
4
|
+
import resolversSchemas from './resolversSchemas';
|
|
5
|
+
import ResolverParamsInfo from './resolversSchemas/ResolverParamsInfo';
|
|
6
|
+
import serializeSchema from './resolversSchemas/serializeSchema';
|
|
7
|
+
import getBasicResultQuery from './resolversSchemas/getBasicResultQuery';
|
|
8
|
+
import * as GraphQL from 'graphql';
|
|
9
|
+
export { GraphQL, startGraphQL, startGraphiQL, resolversSchemas, ResolverParamsInfo, serializeSchema, subscription, getBasicResultQuery };
|
|
10
|
+
export * from './types';
|
|
11
|
+
export * from './service';
|
|
12
|
+
export * from './websockerViewer';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
|
+
};
|
|
28
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
29
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.getBasicResultQuery = exports.subscription = exports.serializeSchema = exports.ResolverParamsInfo = exports.resolversSchemas = exports.startGraphiQL = exports.startGraphQL = exports.GraphQL = void 0;
|
|
33
|
+
const subscription_1 = __importDefault(require("./subscription"));
|
|
34
|
+
exports.subscription = subscription_1.default;
|
|
35
|
+
const startGraphQL_1 = __importDefault(require("./startGraphQL"));
|
|
36
|
+
exports.startGraphQL = startGraphQL_1.default;
|
|
37
|
+
const startGraphiQL_1 = __importDefault(require("./startGraphiQL"));
|
|
38
|
+
exports.startGraphiQL = startGraphiQL_1.default;
|
|
39
|
+
const resolversSchemas_1 = __importDefault(require("./resolversSchemas"));
|
|
40
|
+
exports.resolversSchemas = resolversSchemas_1.default;
|
|
41
|
+
const ResolverParamsInfo_1 = __importDefault(require("./resolversSchemas/ResolverParamsInfo"));
|
|
42
|
+
exports.ResolverParamsInfo = ResolverParamsInfo_1.default;
|
|
43
|
+
const serializeSchema_1 = __importDefault(require("./resolversSchemas/serializeSchema"));
|
|
44
|
+
exports.serializeSchema = serializeSchema_1.default;
|
|
45
|
+
const getBasicResultQuery_1 = __importDefault(require("./resolversSchemas/getBasicResultQuery"));
|
|
46
|
+
exports.getBasicResultQuery = getBasicResultQuery_1.default;
|
|
47
|
+
const GraphQL = __importStar(require("graphql"));
|
|
48
|
+
exports.GraphQL = GraphQL;
|
|
49
|
+
__exportStar(require("./types"), exports);
|
|
50
|
+
__exportStar(require("./service"), exports);
|
|
51
|
+
__exportStar(require("./websockerViewer"), exports);
|
package/lib/pubsub.d.ts
ADDED
package/lib/pubsub.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPubsub = exports.setPubsub = void 0;
|
|
4
|
+
let pubsub = null;
|
|
5
|
+
const setPubsub = function (newPubsub) {
|
|
6
|
+
pubsub = newPubsub;
|
|
7
|
+
};
|
|
8
|
+
exports.setPubsub = setPubsub;
|
|
9
|
+
const getPubsub = function () {
|
|
10
|
+
return pubsub;
|
|
11
|
+
};
|
|
12
|
+
exports.getPubsub = getPubsub;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const serializeSchema_1 = __importDefault(require("./serializeSchema"));
|
|
7
|
+
const getBasicResultQuery_1 = __importDefault(require("./getBasicResultQuery"));
|
|
8
|
+
const models_1 = require("@orion-js/models");
|
|
9
|
+
const resolvers_1 = require("@orion-js/resolvers");
|
|
10
|
+
const lodash_1 = require("lodash");
|
|
11
|
+
const resolverReturnsIsModel = (returns) => {
|
|
12
|
+
return returns && returns.__isModel;
|
|
13
|
+
};
|
|
14
|
+
exports.default = (0, models_1.createModel)({
|
|
15
|
+
name: 'ResolverParams',
|
|
16
|
+
schema: {
|
|
17
|
+
name: {
|
|
18
|
+
type: String
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
resolvers: {
|
|
22
|
+
params: (0, resolvers_1.resolver)({
|
|
23
|
+
returns: 'blackbox',
|
|
24
|
+
resolve: async function ({ resolver }) {
|
|
25
|
+
return await (0, serializeSchema_1.default)(resolver.params);
|
|
26
|
+
}
|
|
27
|
+
}),
|
|
28
|
+
result: (0, resolvers_1.resolver)({
|
|
29
|
+
returns: String,
|
|
30
|
+
resolve: async function ({ resolver }) {
|
|
31
|
+
const returns = (0, lodash_1.isArray)(resolver.returns) ? resolver.returns[0] : resolver.returns;
|
|
32
|
+
if (resolverReturnsIsModel(returns))
|
|
33
|
+
return returns.name;
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}),
|
|
37
|
+
basicResultQuery: (0, resolvers_1.resolver)({
|
|
38
|
+
returns: String,
|
|
39
|
+
resolve: async function ({ resolver }) {
|
|
40
|
+
const returns = (0, lodash_1.isArray)(resolver.returns) ? resolver.returns[0] : resolver.returns;
|
|
41
|
+
return await (0, getBasicResultQuery_1.default)({
|
|
42
|
+
type: resolverReturnsIsModel(returns) ? returns.getSchema() : ''
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
}
|
|
47
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getBasicQuery(field: any): Promise<any>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const isArray_1 = __importDefault(require("lodash/isArray"));
|
|
7
|
+
const getStaticFields_1 = require("./getStaticFields");
|
|
8
|
+
async function getBasicQuery(field) {
|
|
9
|
+
if (!field.type)
|
|
10
|
+
return '';
|
|
11
|
+
if (((0, isArray_1.default)(field.type) && field.type[0].__model) || field.type.__model) {
|
|
12
|
+
const model = (0, isArray_1.default)(field.type) ? field.type[0].__model : field.type.__model;
|
|
13
|
+
const fields = [];
|
|
14
|
+
for (const field of (0, getStaticFields_1.getStaticFields)(model)) {
|
|
15
|
+
fields.push(await getBasicQuery(field));
|
|
16
|
+
}
|
|
17
|
+
const key = field.key ? `${field.key} ` : '';
|
|
18
|
+
return `${key}{ ${fields.join(' ')} }`;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
return field.key;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = getBasicQuery;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDynamicFields = void 0;
|
|
4
|
+
function getDynamicFields(model) {
|
|
5
|
+
const resolvers = model.getResolvers();
|
|
6
|
+
if (!resolvers)
|
|
7
|
+
return [];
|
|
8
|
+
const keys = Object.keys(resolvers);
|
|
9
|
+
return keys
|
|
10
|
+
.map(key => {
|
|
11
|
+
const resolver = resolvers[key];
|
|
12
|
+
return {
|
|
13
|
+
...resolver,
|
|
14
|
+
key
|
|
15
|
+
};
|
|
16
|
+
})
|
|
17
|
+
.filter(resolver => !resolver.private);
|
|
18
|
+
}
|
|
19
|
+
exports.getDynamicFields = getDynamicFields;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getParams(field: any): any;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const isPlainObject_1 = __importDefault(require("lodash/isPlainObject"));
|
|
7
|
+
const isArray_1 = __importDefault(require("lodash/isArray"));
|
|
8
|
+
const schema_1 = require("@orion-js/schema");
|
|
9
|
+
const omit_1 = __importDefault(require("lodash/omit"));
|
|
10
|
+
const getScalar_1 = __importDefault(require("../buildSchema/getType/getScalar"));
|
|
11
|
+
const getStaticFields_1 = require("./getStaticFields");
|
|
12
|
+
async function getParams(field) {
|
|
13
|
+
let { type } = field;
|
|
14
|
+
if (typeof type === 'function' && type.getModel && type.__schemaId) {
|
|
15
|
+
const model = type.getModel();
|
|
16
|
+
return await getParams({ ...field, type: model });
|
|
17
|
+
}
|
|
18
|
+
else if ((0, isArray_1.default)(type)) {
|
|
19
|
+
const serialized = await getParams({ ...field, type: type[0] });
|
|
20
|
+
return {
|
|
21
|
+
...serialized,
|
|
22
|
+
type: [serialized.type],
|
|
23
|
+
__graphQLType: `[${serialized.__graphQLType}]`
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
else if (!type._isFieldType && ((0, isPlainObject_1.default)(type) || type.__isModel)) {
|
|
27
|
+
const model = type.__isModel ? type : type.__model;
|
|
28
|
+
if (!model || !model.__isModel)
|
|
29
|
+
throw new Error('Type is not a Model');
|
|
30
|
+
const fields = {};
|
|
31
|
+
for (const field of (0, getStaticFields_1.getStaticFields)(model)) {
|
|
32
|
+
fields[field.key] = await getParams(field);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
...(0, omit_1.default)(field, 'key'),
|
|
36
|
+
type: fields,
|
|
37
|
+
__graphQLType: model.name + 'Input'
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const schemaType = await (0, schema_1.getFieldType)(type);
|
|
42
|
+
const graphQLType = await (0, getScalar_1.default)(schemaType);
|
|
43
|
+
return {
|
|
44
|
+
...(0, omit_1.default)(field, 'key'),
|
|
45
|
+
type: schemaType.name,
|
|
46
|
+
__graphQLType: graphQLType.name
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.default = getParams;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const typed_model_1 = require("@orion-js/typed-model");
|
|
16
|
+
const getField_1 = __importDefault(require("./getField"));
|
|
17
|
+
describe('Field serialization', () => {
|
|
18
|
+
it('should return a valid serialization of the field', async () => {
|
|
19
|
+
const schema = {
|
|
20
|
+
name: {
|
|
21
|
+
type: String,
|
|
22
|
+
a: '1234'
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const result = await (0, getField_1.default)(schema.name);
|
|
26
|
+
expect(result).toEqual({ type: 'string', a: '1234', __graphQLType: 'String' });
|
|
27
|
+
});
|
|
28
|
+
it('should pass field options with simple array fields', async () => {
|
|
29
|
+
const schema = {
|
|
30
|
+
name: {
|
|
31
|
+
type: [String],
|
|
32
|
+
a: '1234'
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const result = await (0, getField_1.default)(schema.name);
|
|
36
|
+
expect(result.a).toEqual(schema.name.a);
|
|
37
|
+
});
|
|
38
|
+
it('Should allow serialization of typed models', async () => {
|
|
39
|
+
let Point = class Point {
|
|
40
|
+
};
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, typed_model_1.Prop)({ label: 'Name' }),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], Point.prototype, "name", void 0);
|
|
45
|
+
Point = __decorate([
|
|
46
|
+
(0, typed_model_1.TypedModel)()
|
|
47
|
+
], Point);
|
|
48
|
+
const schema = {
|
|
49
|
+
point: {
|
|
50
|
+
type: Point
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const result = await (0, getField_1.default)(schema.point);
|
|
54
|
+
expect(result.type.name).toEqual({ type: 'string', label: 'Name', __graphQLType: 'String' });
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getModelLoadedResolvers = void 0;
|
|
4
|
+
function getModelLoadedResolvers(model, options) {
|
|
5
|
+
if (!options.modelResolvers)
|
|
6
|
+
return [];
|
|
7
|
+
const resolvers = options.modelResolvers[model.name];
|
|
8
|
+
if (!resolvers)
|
|
9
|
+
return [];
|
|
10
|
+
const keys = Object.keys(resolvers);
|
|
11
|
+
return keys
|
|
12
|
+
.map(key => {
|
|
13
|
+
const resolver = resolvers[key];
|
|
14
|
+
return {
|
|
15
|
+
...resolver,
|
|
16
|
+
key
|
|
17
|
+
};
|
|
18
|
+
})
|
|
19
|
+
.filter(resolver => !resolver.private);
|
|
20
|
+
}
|
|
21
|
+
exports.getModelLoadedResolvers = getModelLoadedResolvers;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStaticFields = void 0;
|
|
4
|
+
function getStaticFields(model) {
|
|
5
|
+
const schema = model.getSchema();
|
|
6
|
+
if (!schema)
|
|
7
|
+
return [];
|
|
8
|
+
const keys = Object.keys(schema).filter(key => !key.startsWith('__'));
|
|
9
|
+
return (keys
|
|
10
|
+
.map((key) => {
|
|
11
|
+
const field = schema[key];
|
|
12
|
+
return {
|
|
13
|
+
...field,
|
|
14
|
+
key
|
|
15
|
+
};
|
|
16
|
+
})
|
|
17
|
+
// there is a compile error if we don't do this
|
|
18
|
+
.filter(field => !field.private));
|
|
19
|
+
}
|
|
20
|
+
exports.getStaticFields = getStaticFields;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
params: import("@orion-js/resolvers").Resolver<({ mutation, name }: any, viewer: any) => Promise<{
|
|
3
|
+
resolver: import("@orion-js/resolvers").Resolver<import("@orion-js/resolvers").GlobalResolverResolve, undefined>;
|
|
4
|
+
name: any;
|
|
5
|
+
}>, undefined>;
|
|
6
|
+
};
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const params_1 = __importDefault(require("./params"));
|
|
7
|
+
exports.default = {
|
|
8
|
+
params: params_1.default
|
|
9
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const _default: import("@orion-js/resolvers").Resolver<({ mutation, name }: any, viewer: any) => Promise<{
|
|
2
|
+
resolver: import("@orion-js/resolvers").Resolver<import("@orion-js/resolvers").GlobalResolverResolve, undefined>;
|
|
3
|
+
name: any;
|
|
4
|
+
}>, undefined>;
|
|
5
|
+
export default _default;
|