@sqb/connect 4.2.1 → 4.5.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.
Files changed (154) hide show
  1. package/README.md +67 -0
  2. package/{dist/client/Adapter.js → cjs/client/adapter.js} +0 -0
  3. package/{dist/client/CursorStream.js → cjs/client/cursor-stream.js} +5 -2
  4. package/{dist/client/Cursor.js → cjs/client/cursor.js} +18 -11
  5. package/{dist → cjs}/client/extensions.js +0 -0
  6. package/{dist/client/FieldInfoMap.js → cjs/client/field-info-map.js} +2 -0
  7. package/{dist → cjs}/client/helpers.js +2 -2
  8. package/{dist/client/SqbClient.js → cjs/client/sqb-client.js} +16 -10
  9. package/{dist/client/SqbConnection.js → cjs/client/sqb-connection.js} +17 -14
  10. package/{dist → cjs}/client/types.js +0 -0
  11. package/cjs/index.js +42 -0
  12. package/{dist → cjs}/orm/backward.js +8 -8
  13. package/{dist → cjs}/orm/base-entity.js +8 -7
  14. package/{dist → cjs}/orm/commands/command.helper.js +9 -9
  15. package/{dist → cjs}/orm/commands/count.command.js +2 -2
  16. package/{dist → cjs}/orm/commands/create.command.js +12 -12
  17. package/{dist → cjs}/orm/commands/destroy.command.js +2 -2
  18. package/{dist → cjs}/orm/commands/find.command.js +100 -88
  19. package/{dist → cjs}/orm/commands/row-converter.js +10 -7
  20. package/{dist → cjs}/orm/commands/update.command.js +10 -10
  21. package/{dist → cjs}/orm/decorators/column.decorator.js +3 -3
  22. package/{dist → cjs}/orm/decorators/embedded.decorator.js +3 -3
  23. package/cjs/orm/decorators/entity.decorator.js +179 -0
  24. package/{dist → cjs}/orm/decorators/events.decorator.js +13 -13
  25. package/{dist → cjs}/orm/decorators/foreignkey.decorator.js +3 -3
  26. package/{dist → cjs}/orm/decorators/index.decorator.js +5 -5
  27. package/cjs/orm/decorators/link.decorator.js +70 -0
  28. package/{dist → cjs}/orm/decorators/primarykey.decorator.js +7 -7
  29. package/{dist → cjs}/orm/decorators/transform.decorator.js +5 -5
  30. package/cjs/orm/model/association-field-metadata.js +24 -0
  31. package/{dist → cjs}/orm/model/association-node.js +5 -2
  32. package/{dist → cjs}/orm/model/association.js +31 -39
  33. package/{dist/orm/model/column-element-metadata.js → cjs/orm/model/column-field-metadata.js} +8 -8
  34. package/{dist/orm/model/embedded-element-metadata.js → cjs/orm/model/embedded-field-metadata.js} +8 -8
  35. package/{dist → cjs}/orm/model/entity-metadata.js +90 -91
  36. package/{dist/orm/model/element-metadata.js → cjs/orm/model/field-metadata.js} +0 -0
  37. package/{dist → cjs}/orm/model/index-metadata.js +0 -0
  38. package/{dist → cjs}/orm/model/link-chain.js +12 -15
  39. package/{dist → cjs}/orm/orm.const.js +0 -0
  40. package/{dist → cjs}/orm/orm.type.js +0 -0
  41. package/{dist → cjs}/orm/repository.class.js +25 -22
  42. package/{dist → cjs}/orm/util/apply-mixins.js +0 -0
  43. package/{dist → cjs}/orm/util/extract-keyvalues.js +5 -5
  44. package/{dist → cjs}/orm/util/orm.helper.js +10 -10
  45. package/{dist/orm/util/serialize-element.js → cjs/orm/util/serialize-field.js} +2 -2
  46. package/cjs/package.json +3 -0
  47. package/{dist → cjs}/types.js +0 -0
  48. package/{dist/client/Adapter.d.ts → esm/client/adapter.d.ts} +1 -1
  49. package/esm/client/adapter.js +1 -0
  50. package/{dist/client/CursorStream.d.ts → esm/client/cursor-stream.d.ts} +1 -1
  51. package/esm/client/cursor-stream.js +96 -0
  52. package/{dist/client/Cursor.d.ts → esm/client/cursor.d.ts} +5 -5
  53. package/esm/client/cursor.js +252 -0
  54. package/{dist → esm}/client/extensions.d.ts +1 -1
  55. package/esm/client/extensions.js +9 -0
  56. package/{dist/client/FieldInfoMap.d.ts → esm/client/field-info-map.d.ts} +1 -1
  57. package/esm/client/field-info-map.js +50 -0
  58. package/{dist → esm}/client/helpers.d.ts +3 -3
  59. package/esm/client/helpers.js +125 -0
  60. package/{dist/client/SqbClient.d.ts → esm/client/sqb-client.d.ts} +4 -10
  61. package/esm/client/sqb-client.js +166 -0
  62. package/{dist/client/SqbConnection.d.ts → esm/client/sqb-connection.d.ts} +4 -4
  63. package/esm/client/sqb-connection.js +270 -0
  64. package/{dist → esm}/client/types.d.ts +5 -13
  65. package/esm/client/types.js +1 -0
  66. package/esm/index.d.ts +33 -0
  67. package/esm/index.js +32 -0
  68. package/{dist → esm}/orm/backward.d.ts +1 -1
  69. package/esm/orm/backward.js +17 -0
  70. package/{dist → esm}/orm/base-entity.d.ts +1 -1
  71. package/esm/orm/base-entity.js +25 -0
  72. package/{dist → esm}/orm/commands/command.helper.d.ts +2 -2
  73. package/esm/orm/commands/command.helper.js +135 -0
  74. package/{dist → esm}/orm/commands/count.command.d.ts +3 -3
  75. package/esm/orm/commands/count.command.js +26 -0
  76. package/{dist → esm}/orm/commands/create.command.d.ts +2 -2
  77. package/esm/orm/commands/create.command.js +85 -0
  78. package/{dist → esm}/orm/commands/destroy.command.d.ts +3 -3
  79. package/esm/orm/commands/destroy.command.js +26 -0
  80. package/{dist → esm}/orm/commands/find.command.d.ts +9 -9
  81. package/esm/orm/commands/find.command.js +318 -0
  82. package/{dist → esm}/orm/commands/row-converter.d.ts +5 -5
  83. package/esm/orm/commands/row-converter.js +186 -0
  84. package/{dist → esm}/orm/commands/update.command.d.ts +3 -3
  85. package/esm/orm/commands/update.command.js +80 -0
  86. package/esm/orm/decorators/column.decorator.d.ts +4 -0
  87. package/esm/orm/decorators/column.decorator.js +19 -0
  88. package/esm/orm/decorators/embedded.decorator.d.ts +3 -0
  89. package/esm/orm/decorators/embedded.decorator.js +12 -0
  90. package/{dist → esm}/orm/decorators/entity.decorator.d.ts +17 -17
  91. package/esm/orm/decorators/entity.decorator.js +175 -0
  92. package/{dist → esm}/orm/decorators/events.decorator.d.ts +0 -0
  93. package/esm/orm/decorators/events.decorator.js +55 -0
  94. package/{dist → esm}/orm/decorators/foreignkey.decorator.d.ts +1 -1
  95. package/esm/orm/decorators/foreignkey.decorator.js +9 -0
  96. package/{dist → esm}/orm/decorators/index.decorator.d.ts +1 -1
  97. package/esm/orm/decorators/index.decorator.js +17 -0
  98. package/esm/orm/decorators/link.decorator.d.ts +13 -0
  99. package/esm/orm/decorators/link.decorator.js +66 -0
  100. package/{dist → esm}/orm/decorators/primarykey.decorator.d.ts +1 -1
  101. package/esm/orm/decorators/primarykey.decorator.js +20 -0
  102. package/{dist → esm}/orm/decorators/transform.decorator.d.ts +1 -1
  103. package/esm/orm/decorators/transform.decorator.js +19 -0
  104. package/esm/orm/model/association-field-metadata.d.ts +12 -0
  105. package/esm/orm/model/association-field-metadata.js +20 -0
  106. package/{dist → esm}/orm/model/association-node.d.ts +1 -1
  107. package/esm/orm/model/association-node.js +24 -0
  108. package/{dist → esm}/orm/model/association.d.ts +6 -7
  109. package/esm/orm/model/association.js +118 -0
  110. package/{dist/orm/model/column-element-metadata.d.ts → esm/orm/model/column-field-metadata.d.ts} +10 -14
  111. package/esm/orm/model/column-field-metadata.js +28 -0
  112. package/esm/orm/model/embedded-field-metadata.d.ts +14 -0
  113. package/esm/orm/model/embedded-field-metadata.js +25 -0
  114. package/esm/orm/model/entity-metadata.d.ts +50 -0
  115. package/esm/orm/model/entity-metadata.js +337 -0
  116. package/esm/orm/model/field-metadata.d.ts +16 -0
  117. package/esm/orm/model/field-metadata.js +1 -0
  118. package/{dist → esm}/orm/model/index-metadata.d.ts +0 -0
  119. package/esm/orm/model/index-metadata.js +1 -0
  120. package/esm/orm/model/link-chain.d.ts +13 -0
  121. package/esm/orm/model/link-chain.js +43 -0
  122. package/{dist → esm}/orm/orm.const.d.ts +0 -0
  123. package/esm/orm/orm.const.js +2 -0
  124. package/{dist → esm}/orm/orm.type.d.ts +3 -4
  125. package/esm/orm/orm.type.js +1 -0
  126. package/{dist → esm}/orm/repository.class.d.ts +31 -31
  127. package/esm/orm/repository.class.js +238 -0
  128. package/{dist → esm}/orm/util/apply-mixins.d.ts +0 -0
  129. package/esm/orm/util/apply-mixins.js +9 -0
  130. package/{dist → esm}/orm/util/extract-keyvalues.d.ts +1 -1
  131. package/esm/orm/util/extract-keyvalues.js +57 -0
  132. package/esm/orm/util/orm.helper.d.ts +13 -0
  133. package/esm/orm/util/orm.helper.js +28 -0
  134. package/esm/orm/util/serialize-field.d.ts +2 -0
  135. package/esm/orm/util/serialize-field.js +39 -0
  136. package/esm/types.d.ts +8 -0
  137. package/esm/types.js +1 -0
  138. package/package.json +53 -40
  139. package/dist/index.d.ts +0 -33
  140. package/dist/index.js +0 -42
  141. package/dist/orm/decorators/column.decorator.d.ts +0 -4
  142. package/dist/orm/decorators/embedded.decorator.d.ts +0 -3
  143. package/dist/orm/decorators/entity.decorator.js +0 -179
  144. package/dist/orm/decorators/link.decorator.d.ts +0 -23
  145. package/dist/orm/decorators/link.decorator.js +0 -88
  146. package/dist/orm/model/association-element-metadata.d.ts +0 -10
  147. package/dist/orm/model/association-element-metadata.js +0 -15
  148. package/dist/orm/model/element-metadata.d.ts +0 -7
  149. package/dist/orm/model/embedded-element-metadata.d.ts +0 -14
  150. package/dist/orm/model/entity-metadata.d.ts +0 -50
  151. package/dist/orm/model/link-chain.d.ts +0 -15
  152. package/dist/orm/util/orm.helper.d.ts +0 -13
  153. package/dist/orm/util/serialize-element.d.ts +0 -2
  154. package/dist/types.d.ts +0 -2
@@ -1,179 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Entity = void 0;
4
- const entity_metadata_1 = require("../model/entity-metadata");
5
- const apply_mixins_1 = require("../util/apply-mixins");
6
- function Entity(options) {
7
- return function (target) {
8
- const opts = typeof options === 'object' ? options : {};
9
- const tableName = typeof options === 'string' ? options : opts.tableName;
10
- const entity = entity_metadata_1.EntityMetadata.define(target);
11
- entity.tableName = tableName || target.name;
12
- if (opts.schema)
13
- entity.schema = opts.schema;
14
- if (opts.comment)
15
- entity.comment = opts.comment;
16
- };
17
- }
18
- exports.Entity = Entity;
19
- (function (Entity) {
20
- Entity.getMetadata = entity_metadata_1.EntityMetadata.get;
21
- Entity.getOwnMetadata = entity_metadata_1.EntityMetadata.getOwn;
22
- function getElement(ctor, key) {
23
- const model = entity_metadata_1.EntityMetadata.get(ctor);
24
- return model && entity_metadata_1.EntityMetadata.getElement(model, key);
25
- }
26
- Entity.getElement = getElement;
27
- function getColumnElement(ctor, key) {
28
- const model = entity_metadata_1.EntityMetadata.get(ctor);
29
- return model && entity_metadata_1.EntityMetadata.getColumnElement(model, key);
30
- }
31
- Entity.getColumnElement = getColumnElement;
32
- function getEmbeddedElement(ctor, key) {
33
- const model = entity_metadata_1.EntityMetadata.get(ctor);
34
- return model && entity_metadata_1.EntityMetadata.getEmbeddedElement(model, key);
35
- }
36
- Entity.getEmbeddedElement = getEmbeddedElement;
37
- function getAssociationElement(ctor, key) {
38
- const model = entity_metadata_1.EntityMetadata.get(ctor);
39
- return model && entity_metadata_1.EntityMetadata.getAssociationElement(model, key);
40
- }
41
- Entity.getAssociationElement = getAssociationElement;
42
- function getColumnElementByFieldName(ctor, fieldName) {
43
- const model = entity_metadata_1.EntityMetadata.get(ctor);
44
- return model && entity_metadata_1.EntityMetadata.getColumnElementByFieldName(model, fieldName);
45
- }
46
- Entity.getColumnElementByFieldName = getColumnElementByFieldName;
47
- function find(ctor, predicate) {
48
- const model = entity_metadata_1.EntityMetadata.get(ctor);
49
- return model && entity_metadata_1.EntityMetadata.findElement(model, predicate);
50
- }
51
- Entity.find = find;
52
- function getElementNames(ctor, filter) {
53
- const model = entity_metadata_1.EntityMetadata.get(ctor);
54
- return (model && entity_metadata_1.EntityMetadata.getElementNames(model, filter)) || [];
55
- }
56
- Entity.getElementNames = getElementNames;
57
- function getColumnNames(ctor) {
58
- const model = entity_metadata_1.EntityMetadata.get(ctor);
59
- return (model && entity_metadata_1.EntityMetadata.getColumnNames(model)) || [];
60
- }
61
- Entity.getColumnNames = getColumnNames;
62
- function getEmbeddedElementNames(ctor) {
63
- const model = entity_metadata_1.EntityMetadata.get(ctor);
64
- return (model && entity_metadata_1.EntityMetadata.getEmbeddedElementNames(model)) || [];
65
- }
66
- Entity.getEmbeddedElementNames = getEmbeddedElementNames;
67
- function getAssociationElementNames(ctor) {
68
- const model = entity_metadata_1.EntityMetadata.get(ctor);
69
- return (model && entity_metadata_1.EntityMetadata.getAssociationElementNames(model)) || [];
70
- }
71
- Entity.getAssociationElementNames = getAssociationElementNames;
72
- function getNonAssociationElementNames(ctor) {
73
- const model = entity_metadata_1.EntityMetadata.get(ctor);
74
- return (model && entity_metadata_1.EntityMetadata.getNonAssociationElementNames(model)) || [];
75
- }
76
- Entity.getNonAssociationElementNames = getNonAssociationElementNames;
77
- function getInsertColumnNames(ctor) {
78
- const model = entity_metadata_1.EntityMetadata.get(ctor);
79
- return (model && entity_metadata_1.EntityMetadata.getInsertColumnNames(model)) || [];
80
- }
81
- Entity.getInsertColumnNames = getInsertColumnNames;
82
- function getUpdateColumnNames(ctor) {
83
- const model = entity_metadata_1.EntityMetadata.get(ctor);
84
- return (model && entity_metadata_1.EntityMetadata.getUpdateColumnNames(model)) || [];
85
- }
86
- Entity.getUpdateColumnNames = getUpdateColumnNames;
87
- function getPrimaryIndex(ctor) {
88
- const model = entity_metadata_1.EntityMetadata.define(ctor);
89
- return entity_metadata_1.EntityMetadata.getPrimaryIndex(model);
90
- }
91
- Entity.getPrimaryIndex = getPrimaryIndex;
92
- function getPrimaryIndexColumns(ctor) {
93
- const model = entity_metadata_1.EntityMetadata.define(ctor);
94
- return entity_metadata_1.EntityMetadata.getPrimaryIndexColumns(model);
95
- }
96
- Entity.getPrimaryIndexColumns = getPrimaryIndexColumns;
97
- function mixin(derivedCtor, ...bases) {
98
- for (const base of bases) {
99
- if (!base)
100
- continue;
101
- (0, apply_mixins_1.applyMixins)(derivedCtor, base);
102
- const srcMeta = entity_metadata_1.EntityMetadata.get(base);
103
- if (srcMeta) {
104
- const trgMeta = entity_metadata_1.EntityMetadata.define(derivedCtor);
105
- entity_metadata_1.EntityMetadata.mixin(trgMeta, srcMeta);
106
- }
107
- }
108
- return derivedCtor;
109
- }
110
- Entity.mixin = mixin;
111
- function Pick(classRef, keys) {
112
- const PickEntityClass = class {
113
- constructor(...args) {
114
- applyConstructorProperties(this, classRef, args);
115
- }
116
- };
117
- const pickKeys = keys.map(x => x.toLowerCase());
118
- const filter = (k) => pickKeys.includes(k.toLowerCase());
119
- (0, apply_mixins_1.applyMixins)(PickEntityClass, classRef, filter);
120
- const srcMeta = entity_metadata_1.EntityMetadata.get(classRef);
121
- if (srcMeta) {
122
- const trgMeta = entity_metadata_1.EntityMetadata.define(PickEntityClass);
123
- entity_metadata_1.EntityMetadata.mixin(trgMeta, srcMeta, filter);
124
- }
125
- return PickEntityClass;
126
- }
127
- Entity.Pick = Pick;
128
- function Omit(classRef, keys) {
129
- const OmitEntityClass = class {
130
- constructor(...args) {
131
- applyConstructorProperties(this, classRef, args);
132
- }
133
- };
134
- const omitKeys = keys.map(x => x.toLowerCase());
135
- const filter = (k) => !omitKeys.includes(k.toLowerCase());
136
- (0, apply_mixins_1.applyMixins)(OmitEntityClass, classRef, filter);
137
- const srcMeta = entity_metadata_1.EntityMetadata.get(classRef);
138
- if (srcMeta) {
139
- const trgMeta = entity_metadata_1.EntityMetadata.define(OmitEntityClass);
140
- entity_metadata_1.EntityMetadata.mixin(trgMeta, srcMeta, filter);
141
- }
142
- return OmitEntityClass;
143
- }
144
- Entity.Omit = Omit;
145
- function Union(...bases) {
146
- const UnionClass = class {
147
- constructor(...args) {
148
- for (const c of bases)
149
- applyConstructorProperties(this, c, args);
150
- }
151
- };
152
- for (const base of bases) {
153
- (0, apply_mixins_1.applyMixins)(UnionClass, base);
154
- const srcMeta = entity_metadata_1.EntityMetadata.get(base);
155
- if (srcMeta) {
156
- const trgMeta = entity_metadata_1.EntityMetadata.define(UnionClass);
157
- entity_metadata_1.EntityMetadata.mixin(trgMeta, srcMeta);
158
- }
159
- }
160
- return UnionClass;
161
- }
162
- Entity.Union = Union;
163
- })(Entity = exports.Entity || (exports.Entity = {}));
164
- function applyConstructorProperties(target, sourceClass, constructorArgs, isPropertyInherited) {
165
- try {
166
- const tempInstance = new sourceClass(...constructorArgs);
167
- const keys = Object.getOwnPropertyNames(tempInstance);
168
- for (const key of keys) {
169
- const srcDesc = Object.getOwnPropertyDescriptor(tempInstance, key);
170
- const trgDesc = Object.getOwnPropertyDescriptor(target, key);
171
- if (!srcDesc || trgDesc || (isPropertyInherited && !isPropertyInherited(key)))
172
- continue;
173
- Object.defineProperty(target, key, srcDesc);
174
- }
175
- }
176
- catch {
177
- //
178
- }
179
- }
@@ -1,23 +0,0 @@
1
- import { LinkChain } from '../model/link-chain';
2
- import { TypeThunk } from '../orm.type';
3
- export declare function Link(chain: LinkChain<any>): PropertyDecorator;
4
- export declare function LinkToOne(type?: TypeThunk, targetKey?: string, sourceKey?: string): PropertyDecorator;
5
- export declare function LinkToMany(type: TypeThunk, targetKey?: string, sourceKey?: string): PropertyDecorator;
6
- export declare function LinkFromOne(type?: TypeThunk, targetKey?: string, sourceKey?: string): PropertyDecorator;
7
- export declare function LinkFromMany(type?: TypeThunk, targetKey?: string, sourceKey?: string): PropertyDecorator;
8
- /**
9
- * Crates an Link Chain object
10
- */
11
- export declare function linkToOne<T>(type: TypeThunk<T>, targetKey?: keyof T, sourceKey?: string): LinkChain<T>;
12
- /**
13
- * Crates an Link Chain object
14
- */
15
- export declare function linkToMany<T>(type: TypeThunk<T>, targetKey?: keyof T, sourceKey?: string): LinkChain<T>;
16
- /**
17
- * Crates an Link Chain object
18
- */
19
- export declare function linkFromOne<T>(type: TypeThunk<T>, targetKey?: keyof T, sourceKey?: string): LinkChain<T>;
20
- /**
21
- * Crates an Link Chain object
22
- */
23
- export declare function linkFromMany<T>(type: TypeThunk<T>, targetKey?: keyof T, sourceKey?: string): LinkChain<T>;
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.linkFromMany = exports.linkFromOne = exports.linkToMany = exports.linkToOne = exports.LinkFromMany = exports.LinkFromOne = exports.LinkToMany = exports.LinkToOne = exports.Link = void 0;
4
- const entity_metadata_1 = require("../model/entity-metadata");
5
- const link_chain_1 = require("../model/link-chain");
6
- function Link(chain) {
7
- return (target, propertyKey) => {
8
- if (typeof propertyKey !== 'string')
9
- throw new Error('You can define a column for only string properties');
10
- if (chain.first.returnsMany() &&
11
- Reflect.getMetadata("design:type", target, propertyKey) !== Array)
12
- throw new Error(`Returning type of property (${propertyKey}) must be an array`);
13
- const entity = entity_metadata_1.EntityMetadata.define(target.constructor);
14
- // @ts-ignore
15
- // noinspection JSConstantReassignment
16
- chain.first.source = entity.ctor;
17
- entity_metadata_1.EntityMetadata.defineAssociationElement(entity, propertyKey, chain.first);
18
- };
19
- }
20
- exports.Link = Link;
21
- function LinkToOne(type, targetKey, sourceKey) {
22
- return (target, propertyKey) => {
23
- type = type || Reflect.getMetadata("design:type", target, propertyKey);
24
- if (!type || type === Array)
25
- throw new Error('You must provide "type"');
26
- const chain = linkToOne(type, targetKey, sourceKey);
27
- Link(chain)(target, propertyKey);
28
- };
29
- }
30
- exports.LinkToOne = LinkToOne;
31
- function LinkToMany(type, targetKey, sourceKey) {
32
- return (target, propertyKey) => {
33
- type = type || Reflect.getMetadata("design:type", target, propertyKey);
34
- if (!type || type === Array)
35
- throw new Error('You must provide "type"');
36
- const chain = linkToMany(type, targetKey, sourceKey);
37
- Link(chain)(target, propertyKey);
38
- };
39
- }
40
- exports.LinkToMany = LinkToMany;
41
- function LinkFromOne(type, targetKey, sourceKey) {
42
- return (target, propertyKey) => {
43
- type = type || Reflect.getMetadata("design:type", target, propertyKey);
44
- if (!type || type === Array)
45
- throw new Error('You must provide "type"');
46
- const chain = linkFromOne(type, targetKey, sourceKey);
47
- Link(chain)(target, propertyKey);
48
- };
49
- }
50
- exports.LinkFromOne = LinkFromOne;
51
- function LinkFromMany(type, targetKey, sourceKey) {
52
- return (target, propertyKey) => {
53
- type = type || Reflect.getMetadata("design:type", target, propertyKey);
54
- if (!type || type === Array)
55
- throw new Error('You must provide "type"');
56
- const chain = linkFromMany(type, targetKey, sourceKey);
57
- Link(chain)(target, propertyKey);
58
- };
59
- }
60
- exports.LinkFromMany = LinkFromMany;
61
- /**
62
- * Crates an Link Chain object
63
- */
64
- function linkToOne(type, targetKey, sourceKey) {
65
- return new link_chain_1.LinkChain(type, 'to', targetKey, sourceKey);
66
- }
67
- exports.linkToOne = linkToOne;
68
- /**
69
- * Crates an Link Chain object
70
- */
71
- function linkToMany(type, targetKey, sourceKey) {
72
- return new link_chain_1.LinkChain(type, 'to-many', targetKey, sourceKey);
73
- }
74
- exports.linkToMany = linkToMany;
75
- /**
76
- * Crates an Link Chain object
77
- */
78
- function linkFromOne(type, targetKey, sourceKey) {
79
- return new link_chain_1.LinkChain(type, 'from', targetKey, sourceKey);
80
- }
81
- exports.linkFromOne = linkFromOne;
82
- /**
83
- * Crates an Link Chain object
84
- */
85
- function linkFromMany(type, targetKey, sourceKey) {
86
- return new link_chain_1.LinkChain(type, 'from-many', targetKey, sourceKey);
87
- }
88
- exports.linkFromMany = linkFromMany;
@@ -1,10 +0,0 @@
1
- import { AssociationNode } from './association-node';
2
- import { ElementMetadata } from './element-metadata';
3
- import type { EntityMetadata } from './entity-metadata';
4
- export interface AssociationElementMetadata extends ElementMetadata {
5
- readonly kind: 'association';
6
- readonly association: AssociationNode;
7
- }
8
- export declare namespace AssociationElementMetadata {
9
- function create(entity: EntityMetadata, name: string, association: AssociationNode): AssociationElementMetadata;
10
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AssociationElementMetadata = void 0;
4
- var AssociationElementMetadata;
5
- (function (AssociationElementMetadata) {
6
- function create(entity, name, association) {
7
- return {
8
- kind: 'association',
9
- entity,
10
- name,
11
- association
12
- };
13
- }
14
- AssociationElementMetadata.create = create;
15
- })(AssociationElementMetadata = exports.AssociationElementMetadata || (exports.AssociationElementMetadata = {}));
@@ -1,7 +0,0 @@
1
- import type { ElementKind } from '../orm.type';
2
- import type { EntityMetadata } from './entity-metadata';
3
- export interface ElementMetadata {
4
- readonly entity: EntityMetadata;
5
- readonly name: string;
6
- readonly kind: ElementKind;
7
- }
@@ -1,14 +0,0 @@
1
- import { TypeThunk } from '../orm.type';
2
- import { ElementMetadata } from './element-metadata';
3
- import type { EntityMetadata } from './entity-metadata';
4
- export declare type EmbeddedElementOptions = Partial<Omit<EmbeddedElementMetadata, 'entity' | 'name' | 'kind' | 'type'>>;
5
- export interface EmbeddedElementMetadata extends ElementMetadata {
6
- readonly kind: 'object';
7
- type: TypeThunk;
8
- fieldNamePrefix?: string;
9
- fieldNameSuffix?: string;
10
- }
11
- export declare namespace EmbeddedElementMetadata {
12
- function create(entity: EntityMetadata, name: string, type: TypeThunk, options?: EmbeddedElementOptions): EmbeddedElementMetadata;
13
- function resolveType(meta: EmbeddedElementMetadata): Promise<EntityMetadata>;
14
- }
@@ -1,50 +0,0 @@
1
- import { Maybe, Type } from 'ts-gems';
2
- import { Ctor, TypeThunk } from '../orm.type';
3
- import { Association } from './association';
4
- import { AssociationElementMetadata } from './association-element-metadata';
5
- import { AssociationNode } from './association-node';
6
- import { ColumnElementMetadata, ColumnElementOptions } from './column-element-metadata';
7
- import { EmbeddedElementMetadata, EmbeddedElementOptions } from './embedded-element-metadata';
8
- import { IndexMetadata } from './index-metadata';
9
- export declare type AnyElementMetadata = ColumnElementMetadata | EmbeddedElementMetadata | AssociationElementMetadata;
10
- export declare type EntityOptions = Partial<Pick<EntityMetadata, 'name' | 'schema' | 'comment' | 'tableName'>>;
11
- export interface EntityMetadata {
12
- readonly ctor: Type;
13
- readonly name: string;
14
- tableName?: string;
15
- schema?: string;
16
- comment?: string;
17
- elements: Record<string, AnyElementMetadata>;
18
- indexes: IndexMetadata[];
19
- foreignKeys: Association[];
20
- eventListeners: Record<string, Function[]>;
21
- }
22
- export declare namespace EntityMetadata {
23
- function define(ctor: Ctor): EntityMetadata;
24
- function get(ctor: Ctor): Maybe<EntityMetadata>;
25
- function getOwn(ctor: Ctor): Maybe<EntityMetadata>;
26
- function getElement(entity: EntityMetadata, elementName: string): Maybe<AnyElementMetadata>;
27
- function getColumnElement(entity: EntityMetadata, elementName: string): Maybe<ColumnElementMetadata>;
28
- function getEmbeddedElement(entity: EntityMetadata, elementName: string): Maybe<EmbeddedElementMetadata>;
29
- function getAssociationElement(entity: EntityMetadata, elementName: string): Maybe<AssociationElementMetadata>;
30
- function findElement(entity: EntityMetadata, predicate: (el: AnyElementMetadata) => boolean): Maybe<AnyElementMetadata>;
31
- function getColumnElementByFieldName(entity: EntityMetadata, fieldName: string): Maybe<ColumnElementMetadata>;
32
- function getElementNames(entity: EntityMetadata, filter?: (el: AnyElementMetadata) => boolean): string[];
33
- function getColumnNames(entity: EntityMetadata): string[];
34
- function getEmbeddedElementNames(entity: EntityMetadata): string[];
35
- function getAssociationElementNames(entity: EntityMetadata): string[];
36
- function getNonAssociationElementNames(entity: EntityMetadata): string[];
37
- function getInsertColumnNames(entity: EntityMetadata): string[];
38
- function getUpdateColumnNames(entity: EntityMetadata): string[];
39
- function getPrimaryIndex(entity: EntityMetadata): Maybe<IndexMetadata>;
40
- function getPrimaryIndexColumns(entity: EntityMetadata): ColumnElementMetadata[];
41
- function getForeignKeyFor(src: EntityMetadata, trg: EntityMetadata): Promise<Maybe<Association>>;
42
- function addIndex(entity: EntityMetadata, index: IndexMetadata): void;
43
- function addForeignKey(entity: EntityMetadata, propertyKey: string, target: TypeThunk, targetKey?: string): void;
44
- function addEventListener(entity: EntityMetadata, event: string, fn: Function): void;
45
- function defineColumnElement(entity: EntityMetadata, name: string, options?: ColumnElementOptions): ColumnElementMetadata;
46
- function defineEmbeddedElement(entity: EntityMetadata, name: string, type: TypeThunk, options?: EmbeddedElementOptions): EmbeddedElementMetadata;
47
- function defineAssociationElement(entity: EntityMetadata, propertyKey: string, association: AssociationNode): AssociationElementMetadata;
48
- function setPrimaryKeys(entity: EntityMetadata, column: string | string[], options?: Omit<IndexMetadata, 'columns' | 'unique' | 'primary'>): void;
49
- function mixin(derived: EntityMetadata, base: EntityMetadata, filter?: (n: string) => boolean): void;
50
- }
@@ -1,15 +0,0 @@
1
- import { Type } from 'ts-gems';
2
- import { AssociationKind, TypeResolver, TypeThunk } from '../orm.type';
3
- import { AssociationNode } from './association-node';
4
- export declare class LinkChain<T> {
5
- target: TypeThunk<T>;
6
- first: AssociationNode;
7
- current: AssociationNode;
8
- constructor(target: TypeThunk<T>, kind: AssociationKind, targetKey?: keyof T, sourceKey?: string);
9
- where(conditions: object | object[]): this;
10
- linkToOne<K>(target: Type<K> | TypeResolver<K>, targetColumn?: keyof K, parentColumn?: keyof T): LinkChain<K>;
11
- linkToMany<K>(target: Type<K> | TypeResolver<K>, targetColumn?: keyof K, parentColumn?: keyof T): LinkChain<K>;
12
- linkFromOne<K>(target: Type<K> | TypeResolver<K>, targetColumn?: keyof K, parentColumn?: keyof T): LinkChain<K>;
13
- linkFromMany<K>(target: Type<K> | TypeResolver<K>, targetColumn?: keyof K, parentColumn?: keyof T): LinkChain<K>;
14
- private _newNode;
15
- }
@@ -1,13 +0,0 @@
1
- import { Type } from 'ts-gems';
2
- import { AssociationElementMetadata } from '../model/association-element-metadata';
3
- import type { ColumnElementMetadata } from '../model/column-element-metadata';
4
- import { EmbeddedElementMetadata } from '../model/embedded-element-metadata';
5
- import type { EntityMetadata } from '../model/entity-metadata';
6
- import type { TypeThunk } from '../orm.type';
7
- export declare function isClass(fn: any): fn is Type;
8
- export declare function isEntityClass(fn: any): fn is Type;
9
- export declare function isColumnElement(f: any): f is ColumnElementMetadata;
10
- export declare const isEmbeddedElement: (f: any) => f is EmbeddedElementMetadata;
11
- export declare const isAssociationElement: (f: any) => f is AssociationElementMetadata;
12
- export declare function resolveEntity(ctorThunk: TypeThunk): Promise<Type | undefined>;
13
- export declare function resolveEntityMeta(ctorThunk: TypeThunk): Promise<EntityMetadata | undefined>;
@@ -1,2 +0,0 @@
1
- import { ElementMetadata } from '../model/element-metadata';
2
- export declare function serializeColumn(col: ElementMetadata, v: any): any;
package/dist/types.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import { DeepPartial, DeepPickWritable } from 'ts-gems';
2
- export declare type InstanceValues<T> = DeepPartial<DeepPickWritable<T>>;