@warlock.js/cascade 1.0.4 → 1.0.5

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 (300) hide show
  1. package/cjs/commands/create-new-app/get-app-path.d.ts +2 -0
  2. package/cjs/commands/create-new-app/get-app-path.d.ts.map +1 -0
  3. package/cjs/commands/create-new-app/get-app-path.js +8 -0
  4. package/cjs/commands/create-new-app/get-app-path.js.map +1 -0
  5. package/cjs/commands/create-new-app/index.d.ts +2 -0
  6. package/cjs/commands/create-new-app/index.d.ts.map +1 -0
  7. package/cjs/commands/create-new-app/index.js +44 -0
  8. package/cjs/commands/create-new-app/index.js.map +1 -0
  9. package/cjs/commands/create-new-app/select-app-type.d.ts +2 -0
  10. package/cjs/commands/create-new-app/select-app-type.d.ts.map +1 -0
  11. package/cjs/commands/create-new-app/types.d.ts +9 -0
  12. package/cjs/commands/create-new-app/types.d.ts.map +1 -0
  13. package/cjs/commands/create-warlock-app/index.d.ts +3 -0
  14. package/cjs/commands/create-warlock-app/index.d.ts.map +1 -0
  15. package/cjs/commands/create-warlock-app/index.js +18 -0
  16. package/cjs/commands/create-warlock-app/index.js.map +1 -0
  17. package/cjs/helpers/app.d.ts +51 -0
  18. package/cjs/helpers/app.d.ts.map +1 -0
  19. package/cjs/helpers/app.js +127 -0
  20. package/cjs/helpers/app.js.map +1 -0
  21. package/cjs/helpers/exec.d.ts +10 -0
  22. package/cjs/helpers/exec.d.ts.map +1 -0
  23. package/cjs/helpers/exec.js +69 -0
  24. package/cjs/helpers/exec.js.map +1 -0
  25. package/cjs/helpers/package-manager.d.ts +6 -0
  26. package/cjs/helpers/package-manager.d.ts.map +1 -0
  27. package/cjs/helpers/package-manager.js +22 -0
  28. package/cjs/helpers/package-manager.js.map +1 -0
  29. package/cjs/helpers/paths.d.ts +4 -0
  30. package/cjs/helpers/paths.d.ts.map +1 -0
  31. package/cjs/helpers/paths.js +8 -0
  32. package/cjs/helpers/paths.js.map +1 -0
  33. package/cjs/helpers/project-builder-helpers.d.ts +7 -0
  34. package/cjs/helpers/project-builder-helpers.d.ts.map +1 -0
  35. package/cjs/helpers/project-builder-helpers.js +44 -0
  36. package/cjs/helpers/project-builder-helpers.js.map +1 -0
  37. package/cjs/index.d.ts +1 -11
  38. package/cjs/index.d.ts.map +1 -1
  39. package/cjs/index.js +5 -1
  40. package/cjs/index.js.map +1 -1
  41. package/esm/blueprint/blueprint.d.ts +2 -2
  42. package/esm/blueprint/blueprint.d.ts.map +1 -1
  43. package/esm/blueprint/blueprint.js +2 -0
  44. package/esm/blueprint/blueprint.js.map +1 -1
  45. package/esm/migration/migrate.d.ts.map +1 -1
  46. package/esm/migration/migrate.js +2 -6
  47. package/esm/migration/migrate.js.map +1 -1
  48. package/esm/migration/migration-office.d.ts +3 -3
  49. package/esm/migration/migration-office.d.ts.map +1 -1
  50. package/esm/migration/migration-office.js +15 -1
  51. package/esm/migration/migration-office.js.map +1 -1
  52. package/esm/migration/types.d.ts +10 -0
  53. package/esm/migration/types.d.ts.map +1 -1
  54. package/esm/model/ModelAggregate.js +1 -1
  55. package/esm/model/ModelAggregate.js.map +1 -1
  56. package/esm/model/base-model.d.ts +2 -2
  57. package/esm/model/base-model.d.ts.map +1 -1
  58. package/esm/model/base-model.js +14 -4
  59. package/esm/model/base-model.js.map +1 -1
  60. package/esm/model/model.d.ts +13 -2
  61. package/esm/model/model.d.ts.map +1 -1
  62. package/esm/model/model.js +41 -3
  63. package/esm/model/model.js.map +1 -1
  64. package/esm/types.d.ts +30 -0
  65. package/esm/types.d.ts.map +1 -1
  66. package/esm/utils/deep-diff.d.ts +9 -0
  67. package/esm/utils/deep-diff.d.ts.map +1 -0
  68. package/esm/utils/deep-diff.js +42 -0
  69. package/esm/utils/deep-diff.js.map +1 -0
  70. package/package.json +1 -1
  71. package/cjs/aggregate/DeselectPipeline.d.ts +0 -10
  72. package/cjs/aggregate/DeselectPipeline.d.ts.map +0 -1
  73. package/cjs/aggregate/DeselectPipeline.js +0 -17
  74. package/cjs/aggregate/DeselectPipeline.js.map +0 -1
  75. package/cjs/aggregate/GeoNearPipeline.d.ts +0 -34
  76. package/cjs/aggregate/GeoNearPipeline.d.ts.map +0 -1
  77. package/cjs/aggregate/GeoNearPipeline.js +0 -44
  78. package/cjs/aggregate/GeoNearPipeline.js.map +0 -1
  79. package/cjs/aggregate/GroupByPipeline.d.ts +0 -12
  80. package/cjs/aggregate/GroupByPipeline.d.ts.map +0 -1
  81. package/cjs/aggregate/GroupByPipeline.js +0 -28
  82. package/cjs/aggregate/GroupByPipeline.js.map +0 -1
  83. package/cjs/aggregate/LimitPipeline.d.ts +0 -10
  84. package/cjs/aggregate/LimitPipeline.d.ts.map +0 -1
  85. package/cjs/aggregate/LimitPipeline.js +0 -14
  86. package/cjs/aggregate/LimitPipeline.js.map +0 -1
  87. package/cjs/aggregate/LookupPipeline.d.ts +0 -19
  88. package/cjs/aggregate/LookupPipeline.d.ts.map +0 -1
  89. package/cjs/aggregate/LookupPipeline.js +0 -19
  90. package/cjs/aggregate/LookupPipeline.js.map +0 -1
  91. package/cjs/aggregate/OrWherePipeline.d.ts +0 -23
  92. package/cjs/aggregate/OrWherePipeline.d.ts.map +0 -1
  93. package/cjs/aggregate/OrWherePipeline.js +0 -42
  94. package/cjs/aggregate/OrWherePipeline.js.map +0 -1
  95. package/cjs/aggregate/SelectPipeline.d.ts +0 -10
  96. package/cjs/aggregate/SelectPipeline.d.ts.map +0 -1
  97. package/cjs/aggregate/SelectPipeline.js +0 -26
  98. package/cjs/aggregate/SelectPipeline.js.map +0 -1
  99. package/cjs/aggregate/SkipPipeline.d.ts +0 -10
  100. package/cjs/aggregate/SkipPipeline.d.ts.map +0 -1
  101. package/cjs/aggregate/SkipPipeline.js +0 -14
  102. package/cjs/aggregate/SkipPipeline.js.map +0 -1
  103. package/cjs/aggregate/SortByPipeline.d.ts +0 -10
  104. package/cjs/aggregate/SortByPipeline.d.ts.map +0 -1
  105. package/cjs/aggregate/SortByPipeline.js +0 -18
  106. package/cjs/aggregate/SortByPipeline.js.map +0 -1
  107. package/cjs/aggregate/SortPipeline.d.ts +0 -11
  108. package/cjs/aggregate/SortPipeline.d.ts.map +0 -1
  109. package/cjs/aggregate/SortPipeline.js +0 -18
  110. package/cjs/aggregate/SortPipeline.js.map +0 -1
  111. package/cjs/aggregate/SortRandomPipeline.d.ts +0 -10
  112. package/cjs/aggregate/SortRandomPipeline.d.ts.map +0 -1
  113. package/cjs/aggregate/SortRandomPipeline.js +0 -16
  114. package/cjs/aggregate/SortRandomPipeline.js.map +0 -1
  115. package/cjs/aggregate/UnwindPipeline.d.ts +0 -14
  116. package/cjs/aggregate/UnwindPipeline.d.ts.map +0 -1
  117. package/cjs/aggregate/UnwindPipeline.js +0 -19
  118. package/cjs/aggregate/UnwindPipeline.js.map +0 -1
  119. package/cjs/aggregate/WhereExpression.d.ts +0 -17
  120. package/cjs/aggregate/WhereExpression.d.ts.map +0 -1
  121. package/cjs/aggregate/WhereExpression.js +0 -149
  122. package/cjs/aggregate/WhereExpression.js.map +0 -1
  123. package/cjs/aggregate/WhereExpressionPipeline.d.ts +0 -10
  124. package/cjs/aggregate/WhereExpressionPipeline.d.ts.map +0 -1
  125. package/cjs/aggregate/WhereExpressionPipeline.js +0 -15
  126. package/cjs/aggregate/WhereExpressionPipeline.js.map +0 -1
  127. package/cjs/aggregate/WherePipeline.d.ts +0 -13
  128. package/cjs/aggregate/WherePipeline.d.ts.map +0 -1
  129. package/cjs/aggregate/WherePipeline.js +0 -12
  130. package/cjs/aggregate/WherePipeline.js.map +0 -1
  131. package/cjs/aggregate/aggregate.d.ts +0 -358
  132. package/cjs/aggregate/aggregate.d.ts.map +0 -1
  133. package/cjs/aggregate/aggregate.js +0 -680
  134. package/cjs/aggregate/aggregate.js.map +0 -1
  135. package/cjs/aggregate/expressions.d.ts +0 -361
  136. package/cjs/aggregate/expressions.d.ts.map +0 -1
  137. package/cjs/aggregate/expressions.js +0 -536
  138. package/cjs/aggregate/expressions.js.map +0 -1
  139. package/cjs/aggregate/index.d.ts +0 -21
  140. package/cjs/aggregate/index.d.ts.map +0 -1
  141. package/cjs/aggregate/parsePipelines.d.ts +0 -5
  142. package/cjs/aggregate/parsePipelines.d.ts.map +0 -1
  143. package/cjs/aggregate/parsePipelines.js +0 -6
  144. package/cjs/aggregate/parsePipelines.js.map +0 -1
  145. package/cjs/aggregate/pipeline.d.ts +0 -31
  146. package/cjs/aggregate/pipeline.d.ts.map +0 -1
  147. package/cjs/aggregate/pipeline.js +0 -42
  148. package/cjs/aggregate/pipeline.js.map +0 -1
  149. package/cjs/aggregate/types.d.ts +0 -8
  150. package/cjs/aggregate/types.d.ts.map +0 -1
  151. package/cjs/aggregate/types.js +0 -31
  152. package/cjs/aggregate/types.js.map +0 -1
  153. package/cjs/blueprint/blueprint-column.d.ts +0 -82
  154. package/cjs/blueprint/blueprint-column.d.ts.map +0 -1
  155. package/cjs/blueprint/blueprint.d.ts +0 -162
  156. package/cjs/blueprint/blueprint.d.ts.map +0 -1
  157. package/cjs/blueprint/blueprint.js +0 -338
  158. package/cjs/blueprint/blueprint.js.map +0 -1
  159. package/cjs/blueprint/index.d.ts +0 -3
  160. package/cjs/blueprint/index.d.ts.map +0 -1
  161. package/cjs/blueprint/model-blueprint.d.ts +0 -15
  162. package/cjs/blueprint/model-blueprint.d.ts.map +0 -1
  163. package/cjs/blueprint/model-blueprint.js +0 -16
  164. package/cjs/blueprint/model-blueprint.js.map +0 -1
  165. package/cjs/casts/arrayOf.d.ts +0 -5
  166. package/cjs/casts/arrayOf.d.ts.map +0 -1
  167. package/cjs/casts/arrayOf.js +0 -18
  168. package/cjs/casts/arrayOf.js.map +0 -1
  169. package/cjs/casts/cast-email.d.ts +0 -2
  170. package/cjs/casts/cast-email.d.ts.map +0 -1
  171. package/cjs/casts/cast-email.js +0 -5
  172. package/cjs/casts/cast-email.js.map +0 -1
  173. package/cjs/casts/castModel.d.ts +0 -3
  174. package/cjs/casts/castModel.d.ts.map +0 -1
  175. package/cjs/casts/castModel.js +0 -49
  176. package/cjs/casts/castModel.js.map +0 -1
  177. package/cjs/casts/expiresAfter.d.ts +0 -3
  178. package/cjs/casts/expiresAfter.d.ts.map +0 -1
  179. package/cjs/casts/expiresAfter.js +0 -5
  180. package/cjs/casts/expiresAfter.js.map +0 -1
  181. package/cjs/casts/index.d.ts +0 -9
  182. package/cjs/casts/index.d.ts.map +0 -1
  183. package/cjs/casts/oneOf.d.ts +0 -3
  184. package/cjs/casts/oneOf.d.ts.map +0 -1
  185. package/cjs/casts/oneOf.js +0 -22
  186. package/cjs/casts/oneOf.js.map +0 -1
  187. package/cjs/casts/random-string.d.ts +0 -2
  188. package/cjs/casts/random-string.d.ts.map +0 -1
  189. package/cjs/casts/random-string.js +0 -5
  190. package/cjs/casts/random-string.js.map +0 -1
  191. package/cjs/casts/randomInteger.d.ts +0 -2
  192. package/cjs/casts/randomInteger.d.ts.map +0 -1
  193. package/cjs/casts/randomInteger.js +0 -7
  194. package/cjs/casts/randomInteger.js.map +0 -1
  195. package/cjs/casts/shapedArray.d.ts +0 -26
  196. package/cjs/casts/shapedArray.d.ts.map +0 -1
  197. package/cjs/casts/shapedArray.js +0 -100
  198. package/cjs/casts/shapedArray.js.map +0 -1
  199. package/cjs/config.d.ts +0 -4
  200. package/cjs/config.d.ts.map +0 -1
  201. package/cjs/config.js +0 -10
  202. package/cjs/config.js.map +0 -1
  203. package/cjs/connection.d.ts +0 -45
  204. package/cjs/connection.d.ts.map +0 -1
  205. package/cjs/connection.js +0 -98
  206. package/cjs/connection.js.map +0 -1
  207. package/cjs/database.d.ts +0 -49
  208. package/cjs/database.d.ts.map +0 -1
  209. package/cjs/database.js +0 -85
  210. package/cjs/database.js.map +0 -1
  211. package/cjs/migration/index.d.ts +0 -4
  212. package/cjs/migration/index.d.ts.map +0 -1
  213. package/cjs/migration/migrate.d.ts +0 -13
  214. package/cjs/migration/migrate.d.ts.map +0 -1
  215. package/cjs/migration/migrate.js +0 -76
  216. package/cjs/migration/migrate.js.map +0 -1
  217. package/cjs/migration/migration-office.d.ts +0 -21
  218. package/cjs/migration/migration-office.d.ts.map +0 -1
  219. package/cjs/migration/migration-office.js +0 -26
  220. package/cjs/migration/migration-office.js.map +0 -1
  221. package/cjs/migration/migration-officer.d.ts +0 -33
  222. package/cjs/migration/migration-officer.d.ts.map +0 -1
  223. package/cjs/migration/migration-officer.js +0 -55
  224. package/cjs/migration/migration-officer.js.map +0 -1
  225. package/cjs/migration/types.d.ts +0 -24
  226. package/cjs/migration/types.d.ts.map +0 -1
  227. package/cjs/model/ModelAggregate.d.ts +0 -84
  228. package/cjs/model/ModelAggregate.d.ts.map +0 -1
  229. package/cjs/model/ModelAggregate.js +0 -164
  230. package/cjs/model/ModelAggregate.js.map +0 -1
  231. package/cjs/model/ModelSync.d.ts +0 -74
  232. package/cjs/model/ModelSync.d.ts.map +0 -1
  233. package/cjs/model/ModelSync.js +0 -215
  234. package/cjs/model/ModelSync.js.map +0 -1
  235. package/cjs/model/RelationshipWithMany.d.ts +0 -24
  236. package/cjs/model/RelationshipWithMany.d.ts.map +0 -1
  237. package/cjs/model/RelationshipWithMany.js +0 -42
  238. package/cjs/model/RelationshipWithMany.js.map +0 -1
  239. package/cjs/model/base-model.d.ts +0 -155
  240. package/cjs/model/base-model.d.ts.map +0 -1
  241. package/cjs/model/base-model.js +0 -220
  242. package/cjs/model/base-model.js.map +0 -1
  243. package/cjs/model/crud-model.d.ts +0 -117
  244. package/cjs/model/crud-model.d.ts.map +0 -1
  245. package/cjs/model/crud-model.js +0 -352
  246. package/cjs/model/crud-model.js.map +0 -1
  247. package/cjs/model/index.d.ts +0 -10
  248. package/cjs/model/index.d.ts.map +0 -1
  249. package/cjs/model/joinable.d.ts +0 -87
  250. package/cjs/model/joinable.d.ts.map +0 -1
  251. package/cjs/model/joinable.js +0 -155
  252. package/cjs/model/joinable.js.map +0 -1
  253. package/cjs/model/master-mind.d.ts +0 -44
  254. package/cjs/model/master-mind.d.ts.map +0 -1
  255. package/cjs/model/master-mind.js +0 -129
  256. package/cjs/model/master-mind.js.map +0 -1
  257. package/cjs/model/model-events.d.ts +0 -57
  258. package/cjs/model/model-events.d.ts.map +0 -1
  259. package/cjs/model/model-events.js +0 -102
  260. package/cjs/model/model-events.js.map +0 -1
  261. package/cjs/model/model.d.ts +0 -390
  262. package/cjs/model/model.d.ts.map +0 -1
  263. package/cjs/model/model.js +0 -990
  264. package/cjs/model/model.js.map +0 -1
  265. package/cjs/model/types.d.ts +0 -113
  266. package/cjs/model/types.d.ts.map +0 -1
  267. package/cjs/model/types.js +0 -11
  268. package/cjs/model/types.js.map +0 -1
  269. package/cjs/query/index.d.ts +0 -2
  270. package/cjs/query/index.d.ts.map +0 -1
  271. package/cjs/query/query.d.ts +0 -228
  272. package/cjs/query/query.d.ts.map +0 -1
  273. package/cjs/query/query.js +0 -675
  274. package/cjs/query/query.js.map +0 -1
  275. package/cjs/query/types.d.ts +0 -56
  276. package/cjs/query/types.d.ts.map +0 -1
  277. package/cjs/types.d.ts +0 -32
  278. package/cjs/types.d.ts.map +0 -1
  279. package/cjs/utils/connectToDatabase.d.ts +0 -3
  280. package/cjs/utils/connectToDatabase.d.ts.map +0 -1
  281. package/cjs/utils/connectToDatabase.js +0 -3
  282. package/cjs/utils/connectToDatabase.js.map +0 -1
  283. package/cjs/utils/dropAllDatabaseIndexes.d.ts +0 -2
  284. package/cjs/utils/dropAllDatabaseIndexes.d.ts.map +0 -1
  285. package/cjs/utils/dropAllDatabaseIndexes.js +0 -10
  286. package/cjs/utils/dropAllDatabaseIndexes.js.map +0 -1
  287. package/cjs/utils/index.d.ts +0 -5
  288. package/cjs/utils/index.d.ts.map +0 -1
  289. package/cjs/utils/joinable-proxy.d.ts +0 -3
  290. package/cjs/utils/joinable-proxy.d.ts.map +0 -1
  291. package/cjs/utils/joinable-proxy.js +0 -14
  292. package/cjs/utils/joinable-proxy.js.map +0 -1
  293. package/cjs/utils/listDatabaseIndexes.d.ts +0 -4
  294. package/cjs/utils/listDatabaseIndexes.d.ts.map +0 -1
  295. package/cjs/utils/listDatabaseIndexes.js +0 -101
  296. package/cjs/utils/listDatabaseIndexes.js.map +0 -1
  297. package/cjs/utils/onceConnected.d.ts +0 -2
  298. package/cjs/utils/onceConnected.d.ts.map +0 -1
  299. package/cjs/utils/onceConnected.js +0 -8
  300. package/cjs/utils/onceConnected.js.map +0 -1
@@ -1,220 +0,0 @@
1
- 'use strict';var faker=require('@faker-js/faker'),reinforcements=require('@mongez/reinforcements'),modelBlueprint=require('../blueprint/model-blueprint.js'),database=require('../database.js'),query=require('../query/query.js'),masterMind=require('./master-mind.js'),modelEvents$1=require('./model-events.js'),types=require('./types.js');const modelEvents = new Map();
2
- const getModelEvent = (collection) => {
3
- let eventsInstance = modelEvents.get(collection);
4
- if (!eventsInstance) {
5
- eventsInstance = new modelEvents$1.ModelEvents(collection);
6
- modelEvents.set(collection, eventsInstance);
7
- }
8
- return eventsInstance;
9
- };
10
- class BaseModel {
11
- /**
12
- * Collection Name
13
- */
14
- static collection;
15
- /**
16
- * Connection instance
17
- */
18
- static database = database.database;
19
- /**
20
- * Model associated output
21
- */
22
- static output;
23
- /**
24
- * Missing key symbol
25
- */
26
- static MISSING_KEY = Symbol("MISSING_KEY");
27
- /**
28
- * Define the initial value of the id
29
- */
30
- static initialId;
31
- /**
32
- * Define the amount to eb incremented by for the next generated id
33
- */
34
- static incrementIdBy;
35
- /**
36
- * Primary id column
37
- */
38
- static get primaryIdColumn() {
39
- return "id";
40
- }
41
- /**
42
- * A flag to determine whether to auto generate id on insertion or not
43
- *
44
- * @default true
45
- */
46
- static autoGenerateId = true;
47
- /**
48
- * Query instance
49
- */
50
- static query = query.query;
51
- /**
52
- * Define the delete method
53
- *
54
- * @default true
55
- */
56
- static deleteStrategy = types.ModelDeleteStrategy.moveToTrash;
57
- /**
58
- * Items per page
59
- */
60
- static perPage = 15;
61
- /**
62
- * If set to true, then only the original data and the data in the casts property will be saved
63
- * If set to false, all data will be saved
64
- */
65
- static isStrict = true;
66
- /**
67
- * Get increment id by
68
- */
69
- static getIncrementIdBy() {
70
- if (this.incrementIdBy)
71
- return this.incrementIdBy;
72
- // return Random number
73
- return reinforcements.Random.int(1, 999);
74
- }
75
- /**
76
- * Get initial id
77
- */
78
- static getInitialId() {
79
- if (this.initialId)
80
- return this.initialId;
81
- // return Random number
82
- return reinforcements.Random.int(10000, 499999);
83
- }
84
- /**
85
- * Generate next id
86
- */
87
- static async genNextId() {
88
- return await masterMind.masterMind.generateNextId(this.collection, this.getIncrementIdBy(), this.getInitialId());
89
- }
90
- /**
91
- * Get last id of current model
92
- */
93
- static async getLastId() {
94
- return await masterMind.masterMind.getLastId(this.collection);
95
- }
96
- /**
97
- * Get an instance of child class
98
- */
99
- static self(data) {
100
- return new this(data);
101
- }
102
- /**
103
- * Get collection name
104
- */
105
- getCollection() {
106
- return this.getStaticProperty("collection");
107
- }
108
- /**
109
- * Get collection query
110
- */
111
- getQuery() {
112
- return this.getStaticProperty("query");
113
- }
114
- /**
115
- * Get database instance
116
- */
117
- getDatabase() {
118
- return this.getStaticProperty("database");
119
- }
120
- /**
121
- * Get static property
122
- */
123
- getStaticProperty(property) {
124
- return this.constructor[property];
125
- }
126
- /**
127
- * Prepare model for response
128
- */
129
- async toJSON() {
130
- // get static output class
131
- const Output = this.getStaticProperty("output");
132
- // if the model has a Output class
133
- if (Output) {
134
- // then return the Output instance and call `toJSON` method
135
- return await new Output(reinforcements.clone(this.data)).toJSON();
136
- }
137
- // otherwise return the data object
138
- return this.publicData;
139
- }
140
- /**
141
- * Get current output instance
142
- */
143
- getOutput(data) {
144
- // get static output class
145
- const Output = this.getStaticProperty("output");
146
- return Output ? new Output(data) : data;
147
- }
148
- /**
149
- * Get model events instance
150
- */
151
- static events() {
152
- return getModelEvent(this.collection ?? "__baseModel__");
153
- }
154
- /**
155
- * Get model events for current model
156
- */
157
- getModelEvents() {
158
- return getModelEvent(this.getCollection());
159
- }
160
- /**
161
- * Get base model events
162
- */
163
- getBaseModelEvents() {
164
- return getModelEvent("__baseModel__");
165
- }
166
- /**
167
- * Get model blueprint
168
- */
169
- static blueprint() {
170
- return modelBlueprint.modelBlueprint(this);
171
- }
172
- /**
173
- * Define what columns should be embedded when model document is embedded in another document.
174
- */
175
- static embedOnly(...columns) {
176
- return {
177
- model: this,
178
- embeddedKey: columns,
179
- };
180
- }
181
- /**
182
- * Define the embedded getter key to be used when embedding the model
183
- */
184
- static embed(key) {
185
- return {
186
- model: this,
187
- embeddedKey: key,
188
- };
189
- }
190
- /**
191
- * Embed only id
192
- */
193
- static get embedOnlyId() {
194
- return {
195
- model: this,
196
- embeddedKey: "onlyId",
197
- };
198
- }
199
- /**
200
- * Document Factory
201
- */
202
- static documentFactory = (_faker, _index) => {
203
- throw new Error("Document factory is not defined, pass a callback to `factory.create` method or define `documentFactory` method in the model class");
204
- };
205
- /**
206
- * Get user factory
207
- */
208
- static get factory() {
209
- return {
210
- /**
211
- * Create documents based on the given number of records
212
- */
213
- create: async (size, recordCallback = this.documentFactory) => {
214
- for (let i = 0; i < size; i++) {
215
- await this.create(recordCallback(faker.faker, i));
216
- }
217
- },
218
- };
219
- }
220
- }exports.BaseModel=BaseModel;//# sourceMappingURL=base-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-model.js","sources":["../../src/model/base-model.ts"],"sourcesContent":[null],"names":["ModelEvents","database","query","ModelDeleteStrategy","Random","masterMind","clone","modelBlueprint","faker"],"mappings":"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"}
@@ -1,117 +0,0 @@
1
- import { BaseModel } from "./base-model";
2
- import type { ChildModel, ChunkCallback, Document, Filter, FindOrCreateOptions, PaginationListing, PrimaryIdType } from "./types";
3
- export declare abstract class CrudModel extends BaseModel {
4
- /**
5
- * Create a new record in the database for the current model (child class of this one)
6
- * and return a new instance of it with the created data and the new generated id
7
- */
8
- static create<T>(this: ChildModel<T>, data: Document): Promise<T>;
9
- /**
10
- * Called before creating a new record
11
- */
12
- protected beforeCreating<T>(this: ChildModel<T>, _data: Document): Promise<void>;
13
- /**
14
- * Called after creating a new record
15
- */
16
- protected onCreate<T>(this: ChildModel<T>): Promise<void>;
17
- /**
18
- * Update model by the given id
19
- */
20
- static update<T>(this: ChildModel<T>, id: PrimaryIdType, data: Document): Promise<T | null>;
21
- /**
22
- * Replace the entire document for the given document id with the given new data
23
- */
24
- static replace<T>(this: ChildModel<T>, id: PrimaryIdType, data: Document): Promise<T | null>;
25
- /**
26
- * Restore the document from trash
27
- */
28
- static restore<T>(this: ChildModel<T>, id: PrimaryIdType): Promise<T | null>;
29
- /**
30
- * Restore all documents from trash or by the given filter
31
- */
32
- static restoreAll<T>(this: ChildModel<T>, filter?: Filter): Promise<any>;
33
- /**
34
- * Get deleted document by id
35
- */
36
- static getDeleted<T>(this: ChildModel<T>, id: PrimaryIdType): Promise<T | null>;
37
- /**
38
- * Get all deleted documents
39
- */
40
- static getAllDeleted<T>(this: ChildModel<T>, filter?: Filter): Promise<any>;
41
- /**
42
- * Find and update the document for the given filter with the given data or create a new document/record
43
- * if filter has no matching
44
- */
45
- static upsert<T>(this: ChildModel<T>, filter: Filter, data: Document): Promise<T>;
46
- /**
47
- * Find document by id
48
- */
49
- static find<T>(this: ChildModel<T>, id: PrimaryIdType): Promise<T>;
50
- /**
51
- * Find document by the given column and value
52
- */
53
- static findBy<T>(this: ChildModel<T>, column: string, value: any): Promise<T | null>;
54
- /**
55
- * Create an explain plan for the given filter
56
- */
57
- static explain<T>(this: ChildModel<T>, filter?: Filter): Promise<any>;
58
- /**
59
- * List multiple documents based on the given filter
60
- */
61
- static list<T>(this: ChildModel<T>, filter?: Filter): Promise<T[]>;
62
- /**
63
- * Paginate records based on the given filter
64
- */
65
- static paginate<T>(this: ChildModel<T>, filter: Filter, page?: number, limit?: number): Promise<PaginationListing<T>>;
66
- /**
67
- * Find or create a new document based on the given filter and data
68
- * If the document is not found, it will be created
69
- * otherwise, just return the found document
70
- */
71
- static findOrCreate<T>(this: ChildModel<T>, filter: Filter, data: Document, { merge }?: FindOrCreateOptions): Promise<T>;
72
- /**
73
- * Update or create a new document based on the given filter and data
74
- */
75
- static updateOrCreate<T>(this: ChildModel<T>, filter: Filter, data: Document): Promise<T>;
76
- /**
77
- * Count total documents based on the given filter
78
- */
79
- static count(filter?: Filter): Promise<any>;
80
- /**
81
- * Get first model for the given filter
82
- */
83
- static first<T>(this: ChildModel<T>, filter?: Filter): Promise<T | null>;
84
- /**
85
- * Get last model for the given filter
86
- */
87
- static last<T>(this: ChildModel<T>, filter?: Filter): Promise<T | null>;
88
- /**
89
- * Get latest documents
90
- */
91
- static latest<T>(this: ChildModel<T>, filter?: Filter): Promise<T[]>;
92
- /**
93
- * Delete single document if the given filter is an ObjectId of mongodb
94
- * Otherwise, delete multiple documents based on the given filter object
95
- */
96
- static delete<T>(this: ChildModel<T>, filter?: PrimaryIdType | Filter): Promise<number>;
97
- /**
98
- * Chunk the documents
99
- */
100
- static chunk<T>(this: ChildModel<T>, limit: number, callback: ChunkCallback<T>): Promise<void>;
101
- static chunk<T>(this: ChildModel<T>, filter: Filter & {
102
- limit: number;
103
- }, callback: ChunkCallback<T>): Promise<void>;
104
- /**
105
- * Check if document exists for the given filter
106
- */
107
- static exists<T>(this: ChildModel<T>, filter?: Filter): Promise<boolean>;
108
- /**
109
- * Get distinct values for the given column
110
- */
111
- static distinct<T>(this: ChildModel<T>, column: string, filter?: Filter): Promise<any[]>;
112
- /**
113
- * Prepare filters
114
- */
115
- protected static prepareFilters(filters?: Filter): Promise<Filter>;
116
- }
117
- //# sourceMappingURL=crud-model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crud-model.d.ts","sourceRoot":"","sources":["../../src/model/crud-model.ts"],"names":[],"mappings":"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"}