@kiwano/core 2.2.0-beta.2 → 3.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/LICENSE +21 -0
  2. package/dist/index.cjs +2250 -0
  3. package/dist/index.js +2118 -35
  4. package/dist/{Builder.d.ts → types/Builder.d.ts} +5 -5
  5. package/dist/{argument.d.ts → types/argument.d.ts} +3 -3
  6. package/dist/{common.d.ts → types/common.d.ts} +2 -2
  7. package/dist/{entity → types/entity}/createInputObjectType.d.ts +3 -3
  8. package/dist/{entity → types/entity}/entitySchema.d.ts +4 -4
  9. package/dist/{entity → types/entity}/updateInputObjectType.d.ts +3 -3
  10. package/dist/{enumType.d.ts → types/enumType.d.ts} +3 -3
  11. package/dist/{enumValue.d.ts → types/enumValue.d.ts} +3 -3
  12. package/dist/{field.d.ts → types/field.d.ts} +7 -7
  13. package/dist/{inputField.d.ts → types/inputField.d.ts} +3 -3
  14. package/dist/{inputObjectType.d.ts → types/inputObjectType.d.ts} +5 -5
  15. package/dist/{naming → types/naming}/common.d.ts +1 -2
  16. package/dist/{naming → types/naming}/compact.d.ts +1 -1
  17. package/dist/{naming → types/naming}/descriptive.d.ts +1 -1
  18. package/dist/{objectType.d.ts → types/objectType.d.ts} +4 -4
  19. package/dist/{plugin → types/plugin}/MultiPlugin.d.ts +14 -14
  20. package/dist/{plugin → types/plugin}/acl/acl.d.ts +5 -5
  21. package/dist/{plugin → types/plugin}/acl/middleware.d.ts +4 -4
  22. package/dist/{plugin → types/plugin}/common.d.ts +13 -13
  23. package/dist/{plugin → types/plugin}/filter/equals.d.ts +5 -5
  24. package/dist/{plugin → types/plugin}/filter/search.d.ts +3 -3
  25. package/dist/{plugin → types/plugin}/pagination/connection.d.ts +3 -3
  26. package/dist/{plugin → types/plugin}/pagination/firstAfter.d.ts +3 -3
  27. package/dist/{plugin → types/plugin}/pagination/items.d.ts +3 -3
  28. package/dist/{plugin → types/plugin}/pagination/offsetLimit.d.ts +3 -3
  29. package/dist/{plugin → types/plugin}/pagination/simple.d.ts +1 -1
  30. package/dist/{plugin → types/plugin}/sort/sort.d.ts +5 -5
  31. package/dist/{schema.d.ts → types/schema.d.ts} +9 -9
  32. package/dist/{unionType.d.ts → types/unionType.d.ts} +3 -3
  33. package/dist/{util.d.ts → types/util.d.ts} +4 -4
  34. package/package.json +43 -34
  35. package/dist/Builder.js +0 -113
  36. package/dist/argument.js +0 -100
  37. package/dist/common.js +0 -2
  38. package/dist/entity/createInputObjectType.js +0 -55
  39. package/dist/entity/entitySchema.js +0 -212
  40. package/dist/entity/index.js +0 -24
  41. package/dist/entity/updateInputObjectType.js +0 -55
  42. package/dist/enumType.js +0 -126
  43. package/dist/enumValue.js +0 -60
  44. package/dist/error/FrameworkError.js +0 -12
  45. package/dist/error/index.js +0 -18
  46. package/dist/error/resolver/DataError.js +0 -11
  47. package/dist/error/resolver/ForbiddenError.js +0 -11
  48. package/dist/error/resolver/InvalidInputError.js +0 -11
  49. package/dist/error/resolver/NotFoundError.js +0 -11
  50. package/dist/error/resolver/ResolverError.js +0 -11
  51. package/dist/error/resolver/index.js +0 -21
  52. package/dist/field.js +0 -193
  53. package/dist/inputField.js +0 -100
  54. package/dist/inputObjectType.js +0 -119
  55. package/dist/naming/common.js +0 -2
  56. package/dist/naming/compact.js +0 -54
  57. package/dist/naming/descriptive.js +0 -54
  58. package/dist/naming/index.js +0 -20
  59. package/dist/naming/util.js +0 -22
  60. package/dist/objectType.js +0 -140
  61. package/dist/plugin/MultiPlugin.js +0 -147
  62. package/dist/plugin/PluginError.js +0 -11
  63. package/dist/plugin/acl/acl.js +0 -205
  64. package/dist/plugin/acl/index.js +0 -18
  65. package/dist/plugin/acl/middleware.js +0 -48
  66. package/dist/plugin/common.js +0 -2
  67. package/dist/plugin/filter/equals.js +0 -124
  68. package/dist/plugin/filter/index.js +0 -18
  69. package/dist/plugin/filter/search.js +0 -24
  70. package/dist/plugin/index.js +0 -23
  71. package/dist/plugin/pagination/connection.js +0 -115
  72. package/dist/plugin/pagination/firstAfter.js +0 -19
  73. package/dist/plugin/pagination/index.js +0 -22
  74. package/dist/plugin/pagination/items.js +0 -78
  75. package/dist/plugin/pagination/offsetLimit.js +0 -19
  76. package/dist/plugin/pagination/relay.js +0 -26
  77. package/dist/plugin/pagination/simple.js +0 -20
  78. package/dist/plugin/sort/index.js +0 -22
  79. package/dist/plugin/sort/sort.js +0 -151
  80. package/dist/schema.js +0 -380
  81. package/dist/unionType.js +0 -75
  82. package/dist/util.js +0 -142
  83. /package/dist/{entity → types/entity}/index.d.ts +0 -0
  84. /package/dist/{error → types/error}/FrameworkError.d.ts +0 -0
  85. /package/dist/{error → types/error}/index.d.ts +0 -0
  86. /package/dist/{error → types/error}/resolver/DataError.d.ts +0 -0
  87. /package/dist/{error → types/error}/resolver/ForbiddenError.d.ts +0 -0
  88. /package/dist/{error → types/error}/resolver/InvalidInputError.d.ts +0 -0
  89. /package/dist/{error → types/error}/resolver/NotFoundError.d.ts +0 -0
  90. /package/dist/{error → types/error}/resolver/ResolverError.d.ts +0 -0
  91. /package/dist/{error → types/error}/resolver/index.d.ts +0 -0
  92. /package/dist/{index.d.ts → types/index.d.ts} +0 -0
  93. /package/dist/{naming → types/naming}/index.d.ts +0 -0
  94. /package/dist/{naming → types/naming}/util.d.ts +0 -0
  95. /package/dist/{plugin → types/plugin}/PluginError.d.ts +0 -0
  96. /package/dist/{plugin → types/plugin}/acl/index.d.ts +0 -0
  97. /package/dist/{plugin → types/plugin}/filter/index.d.ts +0 -0
  98. /package/dist/{plugin → types/plugin}/index.d.ts +0 -0
  99. /package/dist/{plugin → types/plugin}/pagination/index.d.ts +0 -0
  100. /package/dist/{plugin → types/plugin}/pagination/relay.d.ts +0 -0
  101. /package/dist/{plugin → types/plugin}/sort/index.d.ts +0 -0
package/dist/Builder.js DELETED
@@ -1,113 +0,0 @@
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
- exports.FinalizeContext = exports.BuildContext = exports.BuilderError = void 0;
7
- exports.resolveName = resolveName;
8
- const lodash_1 = require("lodash");
9
- const graphql_1 = require("graphql");
10
- const FrameworkError_1 = __importDefault(require("./error/FrameworkError"));
11
- class BuilderError extends FrameworkError_1.default {
12
- }
13
- exports.BuilderError = BuilderError;
14
- class Builder {
15
- constructor(name = null) {
16
- this._plugins = [];
17
- this._finalized = false;
18
- this._name = name;
19
- }
20
- use(...plugins) {
21
- plugins.forEach(plugin => this._plugins.push(plugin));
22
- return this;
23
- }
24
- async _executePlugins(methodName, fn) {
25
- for (let plugin of this._plugins) {
26
- if (plugin[methodName]) {
27
- await fn(plugin);
28
- }
29
- }
30
- }
31
- _executePluginsSync(methodName, fn) {
32
- for (let plugin of this._plugins) {
33
- if (plugin[methodName]) {
34
- fn(plugin);
35
- }
36
- }
37
- }
38
- get name() {
39
- return resolveName(this._name);
40
- }
41
- async finalize(context) {
42
- if (this._finalized) {
43
- return;
44
- }
45
- await this.finalizeBuilder(context);
46
- this._finalized = true;
47
- }
48
- }
49
- exports.default = Builder;
50
- class BuildContext {
51
- constructor(schema, rootSchema, resolvedTypes) {
52
- this.schema = schema;
53
- this.rootSchema = rootSchema;
54
- this.resolvedTypes = resolvedTypes;
55
- }
56
- getType(name) {
57
- var _a;
58
- if (this.resolvedTypes.has(name)) {
59
- return this.resolvedTypes.get(name);
60
- }
61
- const typeResult = (_a = this.schema.locateType(name, false)) !== null && _a !== void 0 ? _a : this.rootSchema.locateType(name, true);
62
- if (!typeResult) {
63
- return null;
64
- }
65
- const { type, schema } = typeResult;
66
- let resolvedType = null;
67
- if (type instanceof Builder) {
68
- let context = this;
69
- if (schema != this.schema) {
70
- context = new BuildContext(schema, this.rootSchema, this.resolvedTypes);
71
- }
72
- resolvedType = type.build(context);
73
- }
74
- else if (type instanceof graphql_1.GraphQLScalarType) {
75
- resolvedType = type;
76
- }
77
- if (!resolvedType) {
78
- throw new BuilderError(`Type ${name} not found`);
79
- }
80
- this.resolvedTypes.set(name, resolvedType);
81
- return resolvedType;
82
- }
83
- getResolver(typeName, fieldName) {
84
- return this.schema.findResolver(typeName, fieldName);
85
- }
86
- }
87
- exports.BuildContext = BuildContext;
88
- class FinalizeContext {
89
- constructor(schema, rootSchema) {
90
- this.schema = schema;
91
- this.rootSchema = rootSchema;
92
- }
93
- async getType(name) {
94
- var _a;
95
- const typeResult = (_a = this.schema.locateType(name, false)) !== null && _a !== void 0 ? _a : this.rootSchema.locateType(name, true);
96
- if (!typeResult) {
97
- return null;
98
- }
99
- const { type, schema } = typeResult;
100
- if (type instanceof Builder) {
101
- let context = this;
102
- if (schema != this.schema) {
103
- context = new FinalizeContext(schema, this.rootSchema);
104
- }
105
- await type.finalize(context);
106
- }
107
- return type;
108
- }
109
- }
110
- exports.FinalizeContext = FinalizeContext;
111
- function resolveName(name) {
112
- return (0, lodash_1.isFunction)(name) ? name() : name;
113
- }
package/dist/argument.js DELETED
@@ -1,100 +0,0 @@
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
- exports.ArgumentBuilder = void 0;
7
- exports.argument = argument;
8
- const lodash_1 = require("lodash");
9
- const graphql_1 = require("graphql");
10
- const Builder_1 = __importDefault(require("./Builder"));
11
- const util_1 = require("./util");
12
- class ArgumentBuilder extends Builder_1.default {
13
- constructor(name, type) {
14
- super(name);
15
- this._extensions = new Map();
16
- this._nonNull = false;
17
- this._nonNullList = false;
18
- this._list = false;
19
- this.type(type);
20
- }
21
- type(type) {
22
- const resolvedType = (0, util_1.resolveType)(type);
23
- this._type = resolvedType.type;
24
- if (resolvedType.nonNull)
25
- this.nonNull();
26
- if (resolvedType.list)
27
- this.list();
28
- if (resolvedType.nonNullList)
29
- this.nonNullList();
30
- return this;
31
- }
32
- description(description) {
33
- this._description = description;
34
- return this;
35
- }
36
- extension(name, value) {
37
- this._extensions.set(name, value);
38
- return this;
39
- }
40
- nonNull(nonNull = true) {
41
- this._nonNull = nonNull;
42
- return this;
43
- }
44
- list(list = true) {
45
- this._list = list;
46
- return this;
47
- }
48
- nonNullList(nonNullList = true) {
49
- if (nonNullList) {
50
- this.list();
51
- }
52
- this._nonNullList = nonNullList;
53
- return this;
54
- }
55
- async finalizeBuilder(context) {
56
- const info = this.info();
57
- await this._executePlugins('beforeFinalizeArgument', plugin => plugin.beforeFinalizeArgument(this, context, info));
58
- await this.finalizeArgument(context, info);
59
- await this._executePlugins('afterFinalizeArgument', plugin => plugin.afterFinalizeArgument(this, context, info));
60
- }
61
- async finalizeArgument(context, info) { }
62
- build(context) {
63
- const info = this.info();
64
- this._executePluginsSync('beforeBuildArgument', plugin => plugin.beforeBuildArgument(this, context, info));
65
- let type = (0, lodash_1.isString)(this._type) ? context.getType(this._type) : this._type;
66
- if (this._list) {
67
- if (this._nonNullList) {
68
- type = new graphql_1.GraphQLNonNull(type);
69
- }
70
- type = new graphql_1.GraphQLList(type);
71
- }
72
- if (this._nonNull) {
73
- type = new graphql_1.GraphQLNonNull(type);
74
- }
75
- const argument = {
76
- type,
77
- description: this._description,
78
- extensions: Object.assign({}, Object.fromEntries(this._extensions))
79
- };
80
- this._executePluginsSync('afterBuildArgument', plugin => plugin.afterBuildArgument(this, context, info, argument));
81
- return argument;
82
- }
83
- info() {
84
- return {
85
- name: this.name,
86
- type: this._type,
87
- description: this._description,
88
- extensions: new Map(this._extensions),
89
- nonNull: this._nonNull,
90
- nonNullList: this._nonNullList,
91
- list: this._list,
92
- plugins: (0, lodash_1.clone)(this._plugins)
93
- };
94
- }
95
- }
96
- exports.ArgumentBuilder = ArgumentBuilder;
97
- function argument(name, type) {
98
- return new ArgumentBuilder(name, type);
99
- }
100
- exports.default = argument;
package/dist/common.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreateInputObjectTypeBuilder = void 0;
4
- exports.createInputObjectType = createInputObjectType;
5
- const inputObjectType_1 = require("../inputObjectType");
6
- const objectType_1 = require("../objectType");
7
- const inputField_1 = require("../inputField");
8
- const util_1 = require("../util");
9
- class CreateInputObjectTypeBuilder extends inputObjectType_1.InputObjectTypeBuilder {
10
- constructor(name, entityType) {
11
- super(name);
12
- this._exclude = new Set();
13
- this._include = new Set();
14
- this._entityObjectType = entityType;
15
- }
16
- exclude(...fieldNames) {
17
- fieldNames.forEach(name => this._exclude.add(name));
18
- return this;
19
- }
20
- include(...fieldNames) {
21
- fieldNames.forEach(name => this._include.add(name));
22
- return this;
23
- }
24
- async finalizeInputObjectType(context, info) {
25
- await super.finalizeInputObjectType(context, info);
26
- const entity = this._entityObjectType instanceof objectType_1.ObjectTypeBuilder ? this._entityObjectType : this._entityObjectType();
27
- const entityInfo = entity.info();
28
- const existingFieldNames = info.fields.map(field => field.name);
29
- for (let field of entityInfo.fields) {
30
- const fieldInfo = field.info();
31
- if (!(0, util_1.isTypeInput)(fieldInfo.type, context.rootSchema) || (0, util_1.isFieldId)(fieldInfo) || existingFieldNames.indexOf(fieldInfo.name) >= 0) {
32
- continue;
33
- }
34
- if (this._exclude.has(fieldInfo.name) || (this._include.size > 0 && !this._include.has(fieldInfo.name))) {
35
- continue;
36
- }
37
- const inputField = new inputField_1.InputFieldBuilder(fieldInfo.name, fieldInfo.type);
38
- if (fieldInfo.nonNull) {
39
- inputField.nonNull();
40
- }
41
- if (fieldInfo.list) {
42
- inputField.list();
43
- }
44
- if (fieldInfo.nonNullList) {
45
- inputField.nonNullList();
46
- }
47
- this.field(inputField);
48
- }
49
- }
50
- }
51
- exports.CreateInputObjectTypeBuilder = CreateInputObjectTypeBuilder;
52
- function createInputObjectType(name, entityType) {
53
- return new CreateInputObjectTypeBuilder(name, entityType);
54
- }
55
- exports.default = createInputObjectType;
@@ -1,212 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntitySchemaBuilder = exports.AbstractEntitySchemaBuilder = exports.AbstractEntitySchemaBuilderBase = exports.entityFieldTypeExtensionName = exports.EntityFieldType = void 0;
4
- exports.entitySchema = entitySchema;
5
- const objectType_1 = require("../objectType");
6
- const field_1 = require("../field");
7
- const naming_1 = require("../naming");
8
- const schema_1 = require("../schema");
9
- const util_1 = require("../util");
10
- const createInputObjectType_1 = require("./createInputObjectType");
11
- const updateInputObjectType_1 = require("./updateInputObjectType");
12
- var EntityFieldType;
13
- (function (EntityFieldType) {
14
- EntityFieldType["ALL"] = "ALL";
15
- EntityFieldType["FIND"] = "FIND";
16
- EntityFieldType["CREATE"] = "CREATE";
17
- EntityFieldType["UPDATE"] = "UPDATE";
18
- EntityFieldType["DELETE"] = "DELETE";
19
- EntityFieldType["RESTORE"] = "RESTORE";
20
- EntityFieldType["RELATION"] = "RELATION";
21
- })(EntityFieldType || (exports.EntityFieldType = EntityFieldType = {}));
22
- exports.entityFieldTypeExtensionName = "$entityFieldType";
23
- class AbstractEntitySchemaBuilderBase extends schema_1.AbstractSchemaBuilder {
24
- constructor() {
25
- super(...arguments);
26
- this._allowedEntityRoles = new Set();
27
- this._deniedEntityRoles = new Set();
28
- }
29
- entity(builderOrConfiguratorOrName, configurator = null) {
30
- let resolvedArgs = (0, util_1.resolveAutoBuilderArgs)(builderOrConfiguratorOrName, configurator, objectType_1.ObjectTypeBuilder);
31
- const defaultName = () => this.namingStrategy.entityObject(this.name);
32
- this._entityObjectType = (0, util_1.resolveBuilder)(resolvedArgs, name => this.createEntityObjectType(name || defaultName));
33
- return this;
34
- }
35
- all(builderOrConfiguratorOrName = null, configurator = null) {
36
- let resolvedArgs = (0, util_1.resolveAutoBuilderArgs)(builderOrConfiguratorOrName, configurator, field_1.FieldBuilder);
37
- const defaultName = () => this.namingStrategy.allField(this.name);
38
- this._allField = (0, util_1.resolveBuilder)(resolvedArgs, name => this.createAllField(name || defaultName));
39
- return this;
40
- }
41
- find(builderOrConfiguratorOrName = null, configurator = null) {
42
- let resolvedArgs = (0, util_1.resolveAutoBuilderArgs)(builderOrConfiguratorOrName, configurator, field_1.FieldBuilder);
43
- const defaultName = () => this.namingStrategy.findField(this.name);
44
- this._findField = (0, util_1.resolveBuilder)(resolvedArgs, name => this.createFindField(name || defaultName));
45
- return this;
46
- }
47
- create(builderOrConfiguratorOrName = null, configurator = null) {
48
- let resolvedArgs = (0, util_1.resolveAutoBuilderArgs)(builderOrConfiguratorOrName, configurator, field_1.FieldBuilder);
49
- const defaultName = () => this.namingStrategy.createField(this.name);
50
- this._createField = (0, util_1.resolveBuilder)(resolvedArgs, name => this.createCreateField(name || defaultName));
51
- return this;
52
- }
53
- update(builderOrConfiguratorOrName = null, configurator = null) {
54
- let resolvedArgs = (0, util_1.resolveAutoBuilderArgs)(builderOrConfiguratorOrName, configurator, field_1.FieldBuilder);
55
- const defaultName = () => this.namingStrategy.updateField(this.name);
56
- this._updateField = (0, util_1.resolveBuilder)(resolvedArgs, name => this.createUpdateField(name || defaultName));
57
- return this;
58
- }
59
- delete(builderOrConfiguratorOrName = null, configurator = null) {
60
- let resolvedArgs = (0, util_1.resolveAutoBuilderArgs)(builderOrConfiguratorOrName, configurator, field_1.FieldBuilder);
61
- const defaultName = () => this.namingStrategy.deleteField(this.name);
62
- this._deleteField = (0, util_1.resolveBuilder)(resolvedArgs, name => this.createDeleteField(name || defaultName));
63
- return this;
64
- }
65
- restore(builderOrConfiguratorOrName = null, configurator = null) {
66
- let resolvedArgs = (0, util_1.resolveAutoBuilderArgs)(builderOrConfiguratorOrName, configurator, field_1.FieldBuilder);
67
- const defaultName = () => this.namingStrategy.restoreField(this.name);
68
- this._restoreField = (0, util_1.resolveBuilder)(resolvedArgs, name => this.createRestoreField(name || defaultName));
69
- return this;
70
- }
71
- allowEntity(...roles) {
72
- roles.forEach(role => this._allowedEntityRoles.add(role));
73
- return this;
74
- }
75
- denyEntity(...roles) {
76
- roles.forEach(role => this._deniedEntityRoles.add(role));
77
- return this;
78
- }
79
- entityResolvers(resolvers) {
80
- this._entityResolvers = resolvers;
81
- return this;
82
- }
83
- async finalizeSchema() {
84
- await super.finalizeSchema();
85
- // Create default entity object when no object provided
86
- if (!this._entityObjectType) {
87
- this._entityObjectType = this.createEntityObjectType(this.namingStrategy.entityObject(this.name));
88
- }
89
- // Add rules & plugins
90
- this._entityObjectType.allow(...Array.from(this._allowedEntityRoles)).deny(...Array.from(this._deniedEntityRoles));
91
- this.object(this._entityObjectType);
92
- // Set type in fields
93
- if (this._allField) {
94
- this._allField.type(this._entityObjectType.name);
95
- this._allField.extension(exports.entityFieldTypeExtensionName, EntityFieldType.ALL);
96
- this.query(this._allField);
97
- }
98
- if (this._findField) {
99
- this._findField.type(this._entityObjectType.name);
100
- this._findField.extension(exports.entityFieldTypeExtensionName, EntityFieldType.FIND);
101
- this.query(this._findField);
102
- }
103
- if (this._createField) {
104
- this._createField.type(this._entityObjectType.name);
105
- this._createField.extension(exports.entityFieldTypeExtensionName, EntityFieldType.CREATE);
106
- this.mutation(this._createField);
107
- }
108
- if (this._updateField) {
109
- this._updateField.type(this._entityObjectType.name);
110
- this._updateField.extension(exports.entityFieldTypeExtensionName, EntityFieldType.UPDATE);
111
- this.mutation(this._updateField);
112
- }
113
- if (this._deleteField) {
114
- this._deleteField.extension(exports.entityFieldTypeExtensionName, EntityFieldType.DELETE);
115
- this.mutation(this._deleteField);
116
- }
117
- if (this._restoreField) {
118
- this._restoreField.type(this._entityObjectType.name);
119
- this._restoreField.extension(exports.entityFieldTypeExtensionName, EntityFieldType.RESTORE);
120
- this.mutation(this._restoreField);
121
- }
122
- // Entity resolvers
123
- if (this._entityResolvers) {
124
- this._resolvers = Object.assign({ [this._entityObjectType.name]: (0, util_1.ensureInstantiated)(this._entityResolvers) }, this._resolvers);
125
- }
126
- }
127
- }
128
- exports.AbstractEntitySchemaBuilderBase = AbstractEntitySchemaBuilderBase;
129
- class AbstractEntitySchemaBuilder extends AbstractEntitySchemaBuilderBase {
130
- createInput(builderOrConfiguratorOrName = null, configurator = null) {
131
- let resolvedArgs = (0, util_1.resolveAutoBuilderArgs)(builderOrConfiguratorOrName, configurator, field_1.FieldBuilder);
132
- const defaultName = () => this.namingStrategy.createInputObject(this.name);
133
- this._createInputObject = (0, util_1.resolveBuilder)(resolvedArgs, name => this.createCreateInputObject(name || defaultName));
134
- return this;
135
- }
136
- updateInput(builderOrConfiguratorOrName = null, configurator = null) {
137
- let resolvedArgs = (0, util_1.resolveAutoBuilderArgs)(builderOrConfiguratorOrName, configurator, field_1.FieldBuilder);
138
- const defaultName = () => this.namingStrategy.updateInputObject(this.name);
139
- this._updateInputObject = (0, util_1.resolveBuilder)(resolvedArgs, name => this.createUpdateInputObject(name || defaultName));
140
- return this;
141
- }
142
- async finalizeSchema() {
143
- await super.finalizeSchema();
144
- if (this._findField) {
145
- this._findField.arg(this.namingStrategy.findFieldIdArgument(this.name), 'ID', _ => _.nonNull());
146
- }
147
- if (this._deleteField) {
148
- this._deleteField.arg(this.namingStrategy.deleteFieldIdArgument(this.name), 'ID', _ => _.nonNull());
149
- }
150
- if (this._restoreField) {
151
- this._restoreField.arg(this.namingStrategy.restoreFieldIdArgument(this.name), 'ID', _ => _.nonNull());
152
- }
153
- if (this._createField) {
154
- if (!this._createInputObject) {
155
- this._createInputObject = this.createCreateInputObject(this.namingStrategy.createInputObject(this.name));
156
- }
157
- this._createField.arg(this.namingStrategy.createFieldInputArgument(this.name), this._createInputObject.name, _ => _.nonNull());
158
- }
159
- if (this._createInputObject) {
160
- this.inputObject(this._createInputObject);
161
- }
162
- if (this._updateField) {
163
- if (!this._updateInputObject) {
164
- this._updateInputObject = this.createUpdateInputObject(this.namingStrategy.updateInputObject(this.name));
165
- }
166
- this._updateField.arg(this.namingStrategy.updateFieldInputArgument(this.name), this._updateInputObject.name, _ => _.nonNull());
167
- }
168
- if (this._updateInputObject) {
169
- this.inputObject(this._updateInputObject);
170
- }
171
- }
172
- }
173
- exports.AbstractEntitySchemaBuilder = AbstractEntitySchemaBuilder;
174
- class EntitySchemaBuilder extends AbstractEntitySchemaBuilder {
175
- constructor(name = null) {
176
- super(name);
177
- this._defaultNamingStrategy = EntitySchemaBuilder.defaultNamingStrategy;
178
- }
179
- createEntityObjectType(name) {
180
- return new objectType_1.ObjectTypeBuilder(name);
181
- }
182
- createAllField(name) {
183
- return new field_1.FieldBuilder(name).list();
184
- }
185
- createFindField(name) {
186
- return new field_1.FieldBuilder(name);
187
- }
188
- createCreateField(name) {
189
- return new field_1.FieldBuilder(name);
190
- }
191
- createUpdateField(name) {
192
- return new field_1.FieldBuilder(name);
193
- }
194
- createDeleteField(name) {
195
- return new field_1.FieldBuilder(name, 'Boolean');
196
- }
197
- createRestoreField(name) {
198
- return new field_1.FieldBuilder(name);
199
- }
200
- createCreateInputObject(name) {
201
- return new createInputObjectType_1.CreateInputObjectTypeBuilder(name, () => this._entityObjectType);
202
- }
203
- createUpdateInputObject(name) {
204
- return new updateInputObjectType_1.UpdateInputObjectTypeBuilder(name, () => this._entityObjectType);
205
- }
206
- }
207
- exports.EntitySchemaBuilder = EntitySchemaBuilder;
208
- EntitySchemaBuilder.defaultNamingStrategy = (0, naming_1.compactNamingStrategy)();
209
- function entitySchema(name) {
210
- return new EntitySchemaBuilder(name);
211
- }
212
- exports.default = entitySchema;
@@ -1,24 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- const entitySchema_1 = __importDefault(require("./entitySchema"));
21
- __exportStar(require("./createInputObjectType"), exports);
22
- __exportStar(require("./entitySchema"), exports);
23
- __exportStar(require("./updateInputObjectType"), exports);
24
- exports.default = entitySchema_1.default;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UpdateInputObjectTypeBuilder = void 0;
4
- exports.updateInputObjectType = updateInputObjectType;
5
- const inputObjectType_1 = require("../inputObjectType");
6
- const objectType_1 = require("../objectType");
7
- const inputField_1 = require("../inputField");
8
- const util_1 = require("../util");
9
- class UpdateInputObjectTypeBuilder extends inputObjectType_1.InputObjectTypeBuilder {
10
- constructor(name, entityType) {
11
- super(name);
12
- this._exclude = new Set();
13
- this._include = new Set();
14
- this._entityObjectType = entityType;
15
- }
16
- exclude(...fieldNames) {
17
- fieldNames.forEach(name => this._exclude.add(name));
18
- return this;
19
- }
20
- include(...fieldNames) {
21
- fieldNames.forEach(name => this._include.add(name));
22
- return this;
23
- }
24
- async finalizeInputObjectType(context, info) {
25
- await super.finalizeInputObjectType(context, info);
26
- const entity = this._entityObjectType instanceof objectType_1.ObjectTypeBuilder ? this._entityObjectType : this._entityObjectType();
27
- const entityInfo = entity.info();
28
- const existingFieldNames = info.fields.map(field => field.name);
29
- for (let field of entityInfo.fields) {
30
- const fieldInfo = field.info();
31
- if (!(0, util_1.isTypeInput)(fieldInfo.type, context.rootSchema) || existingFieldNames.indexOf(fieldInfo.name) >= 0) {
32
- continue;
33
- }
34
- if (this._exclude.has(fieldInfo.name) || (this._include.size > 0 && !this._include.has(fieldInfo.name))) {
35
- continue;
36
- }
37
- const inputField = new inputField_1.InputFieldBuilder(fieldInfo.name, fieldInfo.type);
38
- if ((0, util_1.isFieldId)(fieldInfo)) {
39
- inputField.nonNull();
40
- }
41
- if (fieldInfo.list) {
42
- inputField.list();
43
- }
44
- if (fieldInfo.nonNullList) {
45
- inputField.nonNullList();
46
- }
47
- this.field(inputField);
48
- }
49
- }
50
- }
51
- exports.UpdateInputObjectTypeBuilder = UpdateInputObjectTypeBuilder;
52
- function updateInputObjectType(name, entityType) {
53
- return new UpdateInputObjectTypeBuilder(name, entityType);
54
- }
55
- exports.default = updateInputObjectType;