@typetron/framework 0.3.17 → 0.3.18

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 (428) hide show
  1. package/Cache/Cache.d.ts +9 -0
  2. package/Cache/Cache.d.ts.map +1 -0
  3. package/Cache/Cache.js +7 -0
  4. package/Cache/Cache.js.map +1 -0
  5. package/Cache/CacheLoader.d.ts +8 -0
  6. package/Cache/CacheLoader.d.ts.map +1 -0
  7. package/Cache/CacheLoader.js +55 -0
  8. package/Cache/CacheLoader.js.map +1 -0
  9. package/Cache/Consumers/Cache.d.ts +18 -0
  10. package/Cache/Consumers/Cache.d.ts.map +1 -0
  11. package/Cache/Consumers/Cache.js +99 -0
  12. package/Cache/Consumers/Cache.js.map +1 -0
  13. package/Cache/Contracts/CacheInterface.d.ts +14 -0
  14. package/Cache/Contracts/CacheInterface.d.ts.map +1 -0
  15. package/Cache/Contracts/CacheInterface.js +3 -0
  16. package/Cache/Contracts/CacheInterface.js.map +1 -0
  17. package/Cache/Contracts/EngineInterface.d.ts +8 -0
  18. package/Cache/Contracts/EngineInterface.d.ts.map +1 -0
  19. package/Cache/Contracts/EngineInterface.js +3 -0
  20. package/Cache/Contracts/EngineInterface.js.map +1 -0
  21. package/Cache/Contracts/ServiceInterface.d.ts +8 -0
  22. package/Cache/Contracts/ServiceInterface.d.ts.map +1 -0
  23. package/Cache/Contracts/ServiceInterface.js +3 -0
  24. package/Cache/Contracts/ServiceInterface.js.map +1 -0
  25. package/Cache/Engines/DatabaseCache.d.ts +11 -0
  26. package/Cache/Engines/DatabaseCache.d.ts.map +1 -0
  27. package/Cache/Engines/DatabaseCache.js +40 -0
  28. package/Cache/Engines/DatabaseCache.js.map +1 -0
  29. package/Cache/Engines/FileCache.d.ts +22 -0
  30. package/Cache/Engines/FileCache.d.ts.map +1 -0
  31. package/Cache/Engines/FileCache.js +107 -0
  32. package/Cache/Engines/FileCache.js.map +1 -0
  33. package/Cache/Services/DatabaseCacheService.d.ts +13 -0
  34. package/Cache/Services/DatabaseCacheService.d.ts.map +1 -0
  35. package/Cache/Services/DatabaseCacheService.js +74 -0
  36. package/Cache/Services/DatabaseCacheService.js.map +1 -0
  37. package/Cache/Services/FileCacheService.d.ts +13 -0
  38. package/Cache/Services/FileCacheService.d.ts.map +1 -0
  39. package/Cache/Services/FileCacheService.js +60 -0
  40. package/Cache/Services/FileCacheService.js.map +1 -0
  41. package/Cache/Stores/DatabaseStore.d.ts +16 -0
  42. package/Cache/Stores/DatabaseStore.d.ts.map +1 -0
  43. package/Cache/Stores/DatabaseStore.js +208 -0
  44. package/Cache/Stores/DatabaseStore.js.map +1 -0
  45. package/Cache/Stores/FileStore.d.ts +16 -0
  46. package/Cache/Stores/FileStore.d.ts.map +1 -0
  47. package/Cache/Stores/FileStore.js +63 -0
  48. package/Cache/Stores/FileStore.js.map +1 -0
  49. package/Cache/Stores/MemoryStore.d.ts +13 -0
  50. package/Cache/Stores/MemoryStore.d.ts.map +1 -0
  51. package/Cache/Stores/MemoryStore.js +60 -0
  52. package/Cache/Stores/MemoryStore.js.map +1 -0
  53. package/Cache/index.d.ts +6 -0
  54. package/Cache/index.d.ts.map +1 -0
  55. package/Cache/index.js +18 -0
  56. package/Cache/index.js.map +1 -0
  57. package/Cache/types.d.ts +5 -0
  58. package/Cache/types.d.ts.map +1 -0
  59. package/Cache/types.js +3 -0
  60. package/Cache/types.js.map +1 -0
  61. package/Container/ClassResolver.d.ts +8 -8
  62. package/Container/ClassResolver.d.ts.map +1 -1
  63. package/Container/ClassResolver.js +89 -87
  64. package/Container/ClassResolver.js.map +1 -1
  65. package/Container/Container.d.ts +24 -24
  66. package/Container/Container.d.ts.map +1 -1
  67. package/Container/Container.js +118 -118
  68. package/Container/Container.js.map +1 -1
  69. package/Container/Contracts.d.ts +2 -2
  70. package/Container/Contracts.js +2 -2
  71. package/Container/Decorators.d.ts +4 -4
  72. package/Container/Decorators.js +21 -21
  73. package/Container/Metadata.d.ts +20 -20
  74. package/Container/Metadata.js +18 -18
  75. package/Container/Resolver.d.ts +18 -18
  76. package/Container/Resolver.js +15 -15
  77. package/Container/index.d.ts +5 -5
  78. package/Container/index.js +17 -17
  79. package/Database/Clauses/Where.js +1 -1
  80. package/Database/Connection.d.ts +20 -20
  81. package/Database/Connection.js +42 -42
  82. package/Database/Decorators.d.ts +36 -36
  83. package/Database/Decorators.js +116 -116
  84. package/Database/Drivers/DatabaseDriver.d.ts +28 -28
  85. package/Database/Drivers/DatabaseDriver.js +6 -6
  86. package/Database/Drivers/MySQL/Alter/index.d.ts +33 -33
  87. package/Database/Drivers/MySQL/Alter/index.js +61 -61
  88. package/Database/Drivers/MySQL/ColumnDefinition.d.ts +6 -6
  89. package/Database/Drivers/MySQL/ColumnDefinition.js +17 -17
  90. package/Database/Drivers/MySQL/Create.d.ts +9 -9
  91. package/Database/Drivers/MySQL/Create.js +37 -37
  92. package/Database/Drivers/MySQL/MysqlDriver.d.ts +41 -41
  93. package/Database/Drivers/MySQL/MysqlDriver.js +76 -76
  94. package/Database/Drivers/MySQL/Schema.d.ts +15 -15
  95. package/Database/Drivers/MySQL/Schema.js +65 -65
  96. package/Database/Drivers/MySQL/index.d.ts +1 -1
  97. package/Database/Drivers/MySQL/index.js +15 -15
  98. package/Database/Drivers/SQL/Schema.d.ts +6 -6
  99. package/Database/Drivers/SQL/Schema.js +57 -57
  100. package/Database/Drivers/SQL/Statements/Alter.d.ts +7 -7
  101. package/Database/Drivers/SQL/Statements/Alter.js +17 -17
  102. package/Database/Drivers/SQL/Statements/BaseStatement.d.ts +12 -12
  103. package/Database/Drivers/SQL/Statements/BaseStatement.js +46 -46
  104. package/Database/Drivers/SQL/Statements/Delete.d.ts +5 -5
  105. package/Database/Drivers/SQL/Statements/Delete.js +16 -16
  106. package/Database/Drivers/SQL/Statements/Insert.d.ts +6 -6
  107. package/Database/Drivers/SQL/Statements/Insert.js +23 -23
  108. package/Database/Drivers/SQL/Statements/Select.d.ts +7 -7
  109. package/Database/Drivers/SQL/Statements/Select.js +44 -44
  110. package/Database/Drivers/SQL/Statements/Update.d.ts +6 -6
  111. package/Database/Drivers/SQL/Statements/Update.js +27 -27
  112. package/Database/Drivers/SQL/index.d.ts +8 -8
  113. package/Database/Drivers/SQL/index.js +2 -2
  114. package/Database/Drivers/SQLite/Create.d.ts +9 -9
  115. package/Database/Drivers/SQLite/Create.js +36 -36
  116. package/Database/Drivers/SQLite/Schema.d.ts +15 -15
  117. package/Database/Drivers/SQLite/Schema.js +44 -44
  118. package/Database/Drivers/SQLite/SqliteDriver.d.ts +42 -42
  119. package/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -1
  120. package/Database/Drivers/SQLite/SqliteDriver.js +102 -102
  121. package/Database/Drivers/SQLite/SqliteDriver.js.map +1 -1
  122. package/Database/Drivers/SQLite/index.d.ts +2 -2
  123. package/Database/Drivers/SQLite/index.js +26 -26
  124. package/Database/Drivers/SchemaContract.d.ts +8 -8
  125. package/Database/Drivers/SchemaContract.js +9 -9
  126. package/Database/Drivers/Statement.d.ts +9 -9
  127. package/Database/Drivers/Statement.js +15 -15
  128. package/Database/Drivers/index.d.ts +4 -4
  129. package/Database/Drivers/index.js +16 -16
  130. package/Database/Entity.d.ts +64 -64
  131. package/Database/Entity.d.ts.map +1 -1
  132. package/Database/Entity.js +252 -252
  133. package/Database/Entity.js.map +1 -1
  134. package/Database/EntityNotFoundError.d.ts +5 -5
  135. package/Database/EntityNotFoundError.js +10 -10
  136. package/Database/EntityProxyHandler.d.ts +5 -5
  137. package/Database/EntityProxyHandler.js +30 -30
  138. package/Database/EntityQuery.d.ts +28 -28
  139. package/Database/EntityQuery.js +156 -156
  140. package/Database/Expression.d.ts +3 -3
  141. package/Database/Expression.js +6 -6
  142. package/Database/Fields.d.ts +155 -155
  143. package/Database/Fields.js +548 -548
  144. package/Database/Helpers.d.ts +1 -1
  145. package/Database/Helpers.js +16 -16
  146. package/Database/List.d.ts +24 -24
  147. package/Database/List.d.ts.map +1 -1
  148. package/Database/List.js +49 -49
  149. package/Database/List.js.map +1 -1
  150. package/Database/Migrations/Migration.d.ts +7 -7
  151. package/Database/Migrations/Migration.js +9 -9
  152. package/Database/Migrations/MigrationHistory.d.ts +8 -8
  153. package/Database/Migrations/MigrationHistory.js +38 -38
  154. package/Database/Migrations/Migrator.d.ts +20 -20
  155. package/Database/Migrations/Migrator.js +118 -118
  156. package/Database/Migrations/index.d.ts +3 -3
  157. package/Database/Migrations/index.js +15 -15
  158. package/Database/ORM/BaseRelationship.d.ts +7 -7
  159. package/Database/ORM/BaseRelationship.js +10 -10
  160. package/Database/Query.d.ts +62 -62
  161. package/Database/Query.d.ts.map +1 -1
  162. package/Database/Query.js +265 -264
  163. package/Database/Query.js.map +1 -1
  164. package/Database/Seeders/Seeder.d.ts +3 -3
  165. package/Database/Seeders/Seeder.js +6 -6
  166. package/Database/Seeders/SeederManager.d.ts +8 -8
  167. package/Database/Seeders/SeederManager.js +24 -24
  168. package/Database/Seeders/index.d.ts +2 -2
  169. package/Database/Seeders/index.js +14 -14
  170. package/Database/StringExpression.d.ts +6 -6
  171. package/Database/StringExpression.js +14 -14
  172. package/Database/Types.d.ts +117 -117
  173. package/Database/Types.d.ts.map +1 -1
  174. package/Database/Types.js +94 -94
  175. package/Database/Types.js.map +1 -1
  176. package/Database/index.d.ts +20 -20
  177. package/Database/index.js +20 -20
  178. package/Encryption/index.d.ts +15 -15
  179. package/Encryption/index.js +53 -53
  180. package/Forms/Decorators.d.ts +6 -6
  181. package/Forms/Decorators.js +28 -28
  182. package/Forms/Form.d.ts +17 -17
  183. package/Forms/Form.js +69 -69
  184. package/Forms/FormFields.d.ts +9 -9
  185. package/Forms/FormFields.js +35 -35
  186. package/Forms/index.d.ts +3 -3
  187. package/Forms/index.js +15 -15
  188. package/Framework/App.d.ts +6 -6
  189. package/Framework/App.js +9 -9
  190. package/Framework/Application.d.ts +17 -17
  191. package/Framework/Application.d.ts.map +1 -1
  192. package/Framework/Application.js +94 -93
  193. package/Framework/Application.js.map +1 -1
  194. package/Framework/Auth/Auth.d.ts +24 -24
  195. package/Framework/Auth/Auth.js +108 -108
  196. package/Framework/Auth/Authenticatable.d.ts +6 -6
  197. package/Framework/Auth/Authenticatable.js +2 -2
  198. package/Framework/Auth/User.d.ts +10 -10
  199. package/Framework/Auth/User.js +37 -37
  200. package/Framework/Auth/index.d.ts +5 -5
  201. package/Framework/Auth/index.d.ts.map +1 -1
  202. package/Framework/Auth/index.js +45 -45
  203. package/Framework/Auth/index.js.map +1 -1
  204. package/Framework/Config/AppConfig.d.ts +18 -18
  205. package/Framework/Config/AppConfig.js +11 -11
  206. package/Framework/Config/AuthConfig.d.ts +8 -8
  207. package/Framework/Config/AuthConfig.js +7 -7
  208. package/Framework/Config/BaseConfig.d.ts +6 -6
  209. package/Framework/Config/BaseConfig.js +12 -12
  210. package/Framework/Config/CacheConfig.d.ts +16 -0
  211. package/Framework/Config/CacheConfig.d.ts.map +1 -0
  212. package/Framework/Config/CacheConfig.js +23 -0
  213. package/Framework/Config/CacheConfig.js.map +1 -0
  214. package/Framework/Config/DatabaseConfig.d.ts +10 -10
  215. package/Framework/Config/DatabaseConfig.js +25 -25
  216. package/Framework/Config/index.d.ts +5 -4
  217. package/Framework/Config/index.d.ts.map +1 -1
  218. package/Framework/Config/index.js +17 -16
  219. package/Framework/Config/index.js.map +1 -1
  220. package/Framework/Middleware/AuthMiddleware.d.ts +7 -7
  221. package/Framework/Middleware/AuthMiddleware.js +63 -63
  222. package/Framework/Middleware/CorsMiddleware.d.ts +6 -6
  223. package/Framework/Middleware/CorsMiddleware.js +43 -43
  224. package/Framework/Middleware/StaticAssetsMiddleware.d.ts +14 -14
  225. package/Framework/Middleware/StaticAssetsMiddleware.js +104 -104
  226. package/Framework/Middleware/index.d.ts +2 -2
  227. package/Framework/Middleware/index.js +14 -14
  228. package/Framework/Provider.d.ts +5 -5
  229. package/Framework/Provider.js +20 -20
  230. package/Framework/Providers/CacheProvider.d.ts +7 -0
  231. package/Framework/Providers/CacheProvider.d.ts.map +1 -0
  232. package/Framework/Providers/CacheProvider.js +39 -0
  233. package/Framework/Providers/CacheProvider.js.map +1 -0
  234. package/Framework/Providers/DatabaseProvider.d.ts +9 -9
  235. package/Framework/Providers/DatabaseProvider.js +63 -63
  236. package/Framework/Providers/WebsocketsProvider.d.ts +12 -12
  237. package/Framework/Providers/WebsocketsProvider.js +122 -122
  238. package/Framework/Resolvers/AuthResolver.d.ts +5 -5
  239. package/Framework/Resolvers/AuthResolver.js +14 -14
  240. package/Framework/Resolvers/EntityResolver.d.ts +9 -9
  241. package/Framework/Resolvers/EntityResolver.js +40 -40
  242. package/Framework/Resolvers/FormResolver.d.ts +9 -9
  243. package/Framework/Resolvers/FormResolver.js +32 -32
  244. package/Framework/RootDir.d.ts +2 -2
  245. package/Framework/RootDir.js +6 -6
  246. package/Framework/index.d.ts +7 -6
  247. package/Framework/index.d.ts.map +1 -1
  248. package/Framework/index.js +19 -18
  249. package/Framework/index.js.map +1 -1
  250. package/Models/Model.d.ts +9 -9
  251. package/Models/Model.js +35 -35
  252. package/Models/index.d.ts +21 -21
  253. package/Models/index.d.ts.map +1 -1
  254. package/Models/index.js +58 -58
  255. package/Models/index.js.map +1 -1
  256. package/Router/BaseController.d.ts +4 -4
  257. package/Router/BaseController.js +20 -20
  258. package/Router/Decorators.d.ts +21 -21
  259. package/Router/Decorators.js +170 -170
  260. package/Router/Guard.d.ts +4 -4
  261. package/Router/Guard.js +10 -10
  262. package/Router/Http/Contracts.d.ts +3 -3
  263. package/Router/Http/Contracts.js +2 -2
  264. package/Router/Http/ErrorHandler.d.ts +9 -9
  265. package/Router/Http/ErrorHandler.js +51 -51
  266. package/Router/Http/ErrorHandlerInterface.d.ts +5 -5
  267. package/Router/Http/ErrorHandlerInterface.js +6 -6
  268. package/Router/Http/Errors/HttpError.d.ts +7 -7
  269. package/Router/Http/Errors/HttpError.js +15 -15
  270. package/Router/Http/Handler.d.ts +15 -15
  271. package/Router/Http/Handler.js +131 -131
  272. package/Router/Http/Request.d.ts +22 -22
  273. package/Router/Http/Request.js +151 -151
  274. package/Router/Http/Response.d.ts +17 -17
  275. package/Router/Http/Response.js +51 -51
  276. package/Router/Http/index.d.ts +83 -83
  277. package/Router/Http/index.js +99 -99
  278. package/Router/Metadata.d.ts +31 -31
  279. package/Router/Metadata.js +25 -25
  280. package/Router/Middleware.d.ts +5 -5
  281. package/Router/Middleware.js +2 -2
  282. package/Router/Route.d.ts +23 -23
  283. package/Router/Route.js +110 -110
  284. package/Router/RouteNotFoundError.d.ts +3 -3
  285. package/Router/RouteNotFoundError.js +9 -9
  286. package/Router/Router.d.ts +12 -12
  287. package/Router/Router.js +32 -32
  288. package/Router/Websockets/Handler.d.ts +12 -12
  289. package/Router/Websockets/Handler.js +59 -59
  290. package/Router/Websockets/WebsocketEvent.d.ts +15 -15
  291. package/Router/Websockets/WebsocketEvent.js +53 -53
  292. package/Router/Websockets/index.d.ts +16 -16
  293. package/Router/Websockets/index.d.ts.map +1 -1
  294. package/Router/Websockets/index.js +57 -57
  295. package/Router/Websockets/index.js.map +1 -1
  296. package/Router/Websockets/types.d.ts +20 -20
  297. package/Router/Websockets/types.js +8 -8
  298. package/Router/index.d.ts +6 -6
  299. package/Router/index.js +18 -18
  300. package/Storage/File.d.ts +11 -11
  301. package/Storage/File.js +46 -46
  302. package/Storage/Image.d.ts +3 -3
  303. package/Storage/Image.js +7 -7
  304. package/Storage/InvalidImage.d.ts +3 -3
  305. package/Storage/InvalidImage.js +7 -7
  306. package/Storage/Storage.d.ts +13 -12
  307. package/Storage/Storage.d.ts.map +1 -1
  308. package/Storage/Storage.js +104 -110
  309. package/Storage/Storage.js.map +1 -1
  310. package/Storage/index.d.ts +4 -4
  311. package/Storage/index.js +16 -16
  312. package/Storage/utils.d.ts +5 -5
  313. package/Storage/utils.js +20 -20
  314. package/Support/Array.d.ts +28 -28
  315. package/Support/Array.d.ts.map +1 -1
  316. package/Support/Array.js +108 -108
  317. package/Support/Array.js.map +1 -1
  318. package/Support/Math.d.ts +6 -6
  319. package/Support/Math.js +7 -7
  320. package/Support/Metadata.d.ts +14 -14
  321. package/Support/Metadata.js +20 -20
  322. package/Support/String.d.ts +11 -11
  323. package/Support/String.js +23 -23
  324. package/Support/index.d.ts +14 -13
  325. package/Support/index.d.ts.map +1 -1
  326. package/Support/index.js +6 -5
  327. package/Support/index.js.map +1 -1
  328. package/Support/utils.d.ts +2 -0
  329. package/Support/utils.d.ts.map +1 -0
  330. package/Support/utils.js +13 -0
  331. package/Support/utils.js.map +1 -0
  332. package/Testing/TestCase.d.ts +32 -32
  333. package/Testing/TestCase.js +130 -130
  334. package/Validation/Rule.d.ts +6 -6
  335. package/Validation/Rule.js +6 -6
  336. package/Validation/RuleInterface.d.ts +6 -6
  337. package/Validation/RuleInterface.js +2 -2
  338. package/Validation/Rules/Email.d.ts +3 -3
  339. package/Validation/Rules/Email.js +20 -20
  340. package/Validation/Rules/FileExtension.d.ts +3 -3
  341. package/Validation/Rules/FileExtension.js +22 -22
  342. package/Validation/Rules/MaxLength.d.ts +3 -3
  343. package/Validation/Rules/MaxLength.js +19 -19
  344. package/Validation/Rules/MinLength.d.ts +3 -3
  345. package/Validation/Rules/MinLength.js +19 -19
  346. package/Validation/Rules/Optional.d.ts +3 -3
  347. package/Validation/Rules/Optional.js +19 -19
  348. package/Validation/Rules/Required.d.ts +3 -3
  349. package/Validation/Rules/Required.js +26 -26
  350. package/Validation/Validator.d.ts +11 -11
  351. package/Validation/Validator.js +10 -10
  352. package/Validation/index.d.ts +9 -9
  353. package/Validation/index.js +21 -21
  354. package/package.json +9 -5
  355. package/tests/Cache/DatabaseStoreTest.d.ts +2 -0
  356. package/tests/Cache/DatabaseStoreTest.d.ts.map +1 -0
  357. package/tests/Cache/DatabaseStoreTest.js +138 -0
  358. package/tests/Cache/DatabaseStoreTest.js.map +1 -0
  359. package/tests/Cache/FileStoreTest.d.ts +2 -0
  360. package/tests/Cache/FileStoreTest.d.ts.map +1 -0
  361. package/tests/Cache/FileStoreTest.js +142 -0
  362. package/tests/Cache/FileStoreTest.js.map +1 -0
  363. package/tests/Cache/MemoryStoreTest.d.ts +2 -0
  364. package/tests/Cache/MemoryStoreTest.d.ts.map +1 -0
  365. package/tests/Cache/MemoryStoreTest.js +141 -0
  366. package/tests/Cache/MemoryStoreTest.js.map +1 -0
  367. package/tests/Container/ContainerTest.d.ts +1 -1
  368. package/tests/Container/ContainerTest.js +395 -395
  369. package/tests/Database/Drivers/MySQL/AlterTest.d.ts +1 -1
  370. package/tests/Database/Drivers/MySQL/AlterTest.js +135 -135
  371. package/tests/Database/Drivers/MySQL/CreateTest.d.ts +1 -1
  372. package/tests/Database/Drivers/MySQL/CreateTest.js +57 -57
  373. package/tests/Database/Drivers/MysqlDriverTest.d.ts +1 -1
  374. package/tests/Database/Drivers/MysqlDriverTest.js +149 -149
  375. package/tests/Database/Drivers/SqliteDriverTest.d.ts +1 -1
  376. package/tests/Database/Drivers/SqliteDriverTest.js +135 -135
  377. package/tests/Database/Entities/Article.d.ts +10 -10
  378. package/tests/Database/Entities/Article.js +42 -42
  379. package/tests/Database/Entities/Profile.d.ts +10 -10
  380. package/tests/Database/Entities/Profile.js +38 -38
  381. package/tests/Database/Entities/Role.d.ts +8 -8
  382. package/tests/Database/Entities/Role.js +30 -30
  383. package/tests/Database/Entities/User.d.ts +15 -15
  384. package/tests/Database/Entities/User.js +57 -57
  385. package/tests/Database/EntityRelationshipsTest.d.ts +1 -1
  386. package/tests/Database/EntityRelationshipsTest.js +552 -552
  387. package/tests/Database/EntityTest.d.ts +1 -1
  388. package/tests/Database/EntityTest.js +233 -233
  389. package/tests/Database/Migrations/RunnerTest.d.ts +1 -1
  390. package/tests/Database/Migrations/RunnerTest.js +111 -111
  391. package/tests/Database/Migrations/migrations/1.createUserTable.d.ts +5 -5
  392. package/tests/Database/Migrations/migrations/1.createUserTable.js +13 -13
  393. package/tests/Database/Migrations/migrations/2.createArticlesTable.d.ts +5 -5
  394. package/tests/Database/Migrations/migrations/2.createArticlesTable.js +13 -13
  395. package/tests/Database/QueryTest.d.ts +1 -1
  396. package/tests/Database/QueryTest.js +622 -622
  397. package/tests/Database/SchemaTest.d.ts +1 -1
  398. package/tests/Database/SchemaTest.js +45 -45
  399. package/tests/Database/Seeders/RunnerTest.d.ts +1 -1
  400. package/tests/Database/Seeders/RunnerTest.js +43 -43
  401. package/tests/Database/Seeders/seeders/RandomSeeder.d.ts +4 -4
  402. package/tests/Database/Seeders/seeders/RandomSeeder.js +13 -13
  403. package/tests/Database/utils.d.ts +5 -5
  404. package/tests/Database/utils.js +18 -18
  405. package/tests/Forms/FormsTest.d.ts +1 -1
  406. package/tests/Forms/FormsTest.js +79 -79
  407. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.d.ts +1 -1
  408. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.js +165 -165
  409. package/tests/Framework/Resolvers/EntityResolverTest.d.ts +1 -1
  410. package/tests/Framework/Resolvers/EntityResolverTest.js +59 -59
  411. package/tests/Model/ModelTest.d.ts +1 -1
  412. package/tests/Model/ModelTest.js +233 -233
  413. package/tests/Router/HttpHandlerTest.d.ts +1 -1
  414. package/tests/Router/HttpHandlerTest.js +36 -36
  415. package/tests/Router/WebSocketsHandlerTest.d.ts +1 -1
  416. package/tests/Router/WebSocketsHandlerTest.js +35 -35
  417. package/tests/Support/ArrayTest.d.ts +1 -1
  418. package/tests/Support/ArrayTest.js +258 -258
  419. package/tests/Support/StringTest.d.ts +1 -1
  420. package/tests/Support/StringTest.js +38 -38
  421. package/tests/Validation/RulesTest.d.ts +1 -1
  422. package/tests/Validation/RulesTest.js +67 -67
  423. package/Database/Drivers/SQL/Statements/Create.d.ts +0 -7
  424. package/Database/Drivers/SQL/Statements/Create.d.ts.map +0 -1
  425. package/Database/Drivers/SQL/Statements/Create.js +0 -22
  426. package/Database/Drivers/SQL/Statements/Create.js.map +0 -1
  427. package/LICENSE.md +0 -21
  428. package/Readme.md +0 -123
@@ -1,47 +1,47 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseStatement = void 0;
4
- const Helpers_1 = require("../../../Helpers");
5
- const Statement_1 = require("../../Statement");
6
- class BaseStatement extends Statement_1.Statement {
7
- get table() {
8
- return Helpers_1.wrap(this.components.table || '');
9
- }
10
- get wheres() {
11
- const wheres = this.components.wheres || [];
12
- return wheres.map(where => {
13
- this.bindings = this.bindings.concat(where.getValues());
14
- return where.toSql();
15
- }).join(' ').replace(/^(and |or )/i, '');
16
- }
17
- get limit() {
18
- const limit = this.components.limit;
19
- return limit ? `LIMIT ${limit.from}` + (limit.count ? `, ${limit.count}` : '') : '';
20
- }
21
- get joins() {
22
- return this.components.joins.map(join => {
23
- return `${join.type} JOIN ${Helpers_1.wrap(join.table)} ON ${join.first} ${join.operator} ${join.second}`;
24
- }).join(' ');
25
- }
26
- get groups() {
27
- if (!this.components.groups.length) {
28
- return '';
29
- }
30
- return `GROUP BY ` + this.components.groups.map(column => Helpers_1.wrap(column)).join(', ');
31
- }
32
- get having() {
33
- return '';
34
- }
35
- get orders() {
36
- var _a;
37
- if (!((_a = this.components.orders) === null || _a === void 0 ? void 0 : _a.length)) {
38
- return '';
39
- }
40
- return 'ORDER BY ' + this.components.orders.map(order => `${Helpers_1.wrap(order[0])} ${order[1]}`).join(', ');
41
- }
42
- toString() {
43
- return this.toSQL();
44
- }
45
- }
46
- exports.BaseStatement = BaseStatement;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseStatement = void 0;
4
+ const Helpers_1 = require("../../../Helpers");
5
+ const Statement_1 = require("../../Statement");
6
+ class BaseStatement extends Statement_1.Statement {
7
+ get table() {
8
+ return Helpers_1.wrap(this.components.table || '');
9
+ }
10
+ get wheres() {
11
+ const wheres = this.components.wheres || [];
12
+ return wheres.map(where => {
13
+ this.bindings = this.bindings.concat(where.getValues());
14
+ return where.toSql();
15
+ }).join(' ').replace(/^(and |or )/i, '');
16
+ }
17
+ get limit() {
18
+ const limit = this.components.limit;
19
+ return limit ? `LIMIT ${limit.from}` + (limit.count ? `, ${limit.count}` : '') : '';
20
+ }
21
+ get joins() {
22
+ return this.components.joins.map(join => {
23
+ return `${join.type} JOIN ${Helpers_1.wrap(join.table)} ON ${join.first} ${join.operator} ${join.second}`;
24
+ }).join(' ');
25
+ }
26
+ get groups() {
27
+ if (!this.components.groups.length) {
28
+ return '';
29
+ }
30
+ return `GROUP BY ` + this.components.groups.map(column => Helpers_1.wrap(column)).join(', ');
31
+ }
32
+ get having() {
33
+ return '';
34
+ }
35
+ get orders() {
36
+ var _a;
37
+ if (!((_a = this.components.orders) === null || _a === void 0 ? void 0 : _a.length)) {
38
+ return '';
39
+ }
40
+ return 'ORDER BY ' + this.components.orders.map(order => `${Helpers_1.wrap(order[0])} ${order[1]}`).join(', ');
41
+ }
42
+ toString() {
43
+ return this.toSQL();
44
+ }
45
+ }
46
+ exports.BaseStatement = BaseStatement;
47
47
  //# sourceMappingURL=BaseStatement.js.map
@@ -1,6 +1,6 @@
1
- import { BaseStatement } from './BaseStatement';
2
- export declare class Delete extends BaseStatement {
3
- get wheres(): string;
4
- toSQL(): string;
5
- }
1
+ import { BaseStatement } from './BaseStatement';
2
+ export declare class Delete extends BaseStatement {
3
+ get wheres(): string;
4
+ toSQL(): string;
5
+ }
6
6
  //# sourceMappingURL=Delete.d.ts.map
@@ -1,20 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Delete = void 0;
4
- const BaseStatement_1 = require("./BaseStatement");
5
- class Delete extends BaseStatement_1.BaseStatement {
6
- get wheres() {
7
- if (!this.components.wheres.length) {
8
- return '';
9
- }
10
- return `WHERE ` + super.wheres;
11
- }
12
- toSQL() {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Delete = void 0;
4
+ const BaseStatement_1 = require("./BaseStatement");
5
+ class Delete extends BaseStatement_1.BaseStatement {
6
+ get wheres() {
7
+ if (!this.components.wheres.length) {
8
+ return '';
9
+ }
10
+ return `WHERE ` + super.wheres;
11
+ }
12
+ toSQL() {
13
13
  return `
14
14
  DELETE
15
15
  FROM ${this.table} ${this.wheres} ${this.orders} ${this.limit}
16
- `;
17
- }
18
- }
19
- exports.Delete = Delete;
16
+ `;
17
+ }
18
+ }
19
+ exports.Delete = Delete;
20
20
  //# sourceMappingURL=Delete.js.map
@@ -1,7 +1,7 @@
1
- import { BaseStatement } from './BaseStatement';
2
- export declare class Insert extends BaseStatement {
3
- get columns(): string;
4
- get values(): string;
5
- toSQL(): string;
6
- }
1
+ import { BaseStatement } from './BaseStatement';
2
+ export declare class Insert extends BaseStatement {
3
+ get columns(): string;
4
+ get values(): string;
5
+ toSQL(): string;
6
+ }
7
7
  //# sourceMappingURL=Insert.d.ts.map
@@ -1,25 +1,25 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Insert = void 0;
4
- const BaseStatement_1 = require("./BaseStatement");
5
- const Helpers_1 = require("../../../Helpers");
6
- class Insert extends BaseStatement_1.BaseStatement {
7
- get columns() {
8
- var _a;
9
- const values = this.components.insert || [];
10
- return Helpers_1.wrap(Object.keys((_a = values.first()) !== null && _a !== void 0 ? _a : {}));
11
- }
12
- get values() {
13
- return (this.components.insert || []).map(valuesMap => {
14
- const values = Object.values(valuesMap);
15
- this.bindings = this.bindings.concat(values);
16
- return '(' + [...Array(values.length)].map(() => '?').join(', ') + ')';
17
- }).join(', ');
18
- }
19
- toSQL() {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Insert = void 0;
4
+ const BaseStatement_1 = require("./BaseStatement");
5
+ const Helpers_1 = require("../../../Helpers");
6
+ class Insert extends BaseStatement_1.BaseStatement {
7
+ get columns() {
8
+ var _a;
9
+ const values = this.components.insert || [];
10
+ return Helpers_1.wrap(Object.keys((_a = values.first()) !== null && _a !== void 0 ? _a : {}));
11
+ }
12
+ get values() {
13
+ return (this.components.insert || []).map(valuesMap => {
14
+ const values = Object.values(valuesMap);
15
+ this.bindings = this.bindings.concat(values);
16
+ return '(' + [...Array(values.length)].map(() => '?').join(', ') + ')';
17
+ }).join(', ');
18
+ }
19
+ toSQL() {
20
20
  return `INSERT INTO ${this.table} (${this.columns})
21
- VALUES ${this.values} `;
22
- }
23
- }
24
- exports.Insert = Insert;
21
+ VALUES ${this.values} `;
22
+ }
23
+ }
24
+ exports.Insert = Insert;
25
25
  //# sourceMappingURL=Insert.js.map
@@ -1,8 +1,8 @@
1
- import { BaseStatement } from './BaseStatement';
2
- export declare class Select extends BaseStatement {
3
- get distinct(): "" | "DISTINCT ";
4
- get columns(): string;
5
- get wheres(): string;
6
- toSQL(): string;
7
- }
1
+ import { BaseStatement } from './BaseStatement';
2
+ export declare class Select extends BaseStatement {
3
+ get distinct(): "" | "DISTINCT ";
4
+ get columns(): string;
5
+ get wheres(): string;
6
+ toSQL(): string;
7
+ }
8
8
  //# sourceMappingURL=Select.d.ts.map
@@ -1,51 +1,51 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Select = void 0;
4
- const BaseStatement_1 = require("./BaseStatement");
5
- const __1 = require("../../..");
6
- const Helpers_1 = require("../../../Helpers");
7
- class Select extends BaseStatement_1.BaseStatement {
8
- get distinct() {
9
- return this.components.distinct ? 'DISTINCT ' : '';
10
- }
11
- get columns() {
12
- let columns = this.components.columns || [];
13
- columns = columns.map(column => {
14
- return column instanceof __1.StringExpression ? column.value : Helpers_1.wrap(column);
15
- });
16
- const aggregate = this.components.aggregate;
17
- if (aggregate) {
18
- columns.push(`${aggregate.function}(${Helpers_1.wrap(aggregate.columns) || '*'}) as aggregate`);
19
- }
20
- if (!columns.length) {
21
- return '*';
22
- }
23
- return columns.join(', ');
24
- }
25
- get wheres() {
26
- if (!this.components.wheres.length) {
27
- return '';
28
- }
29
- return `WHERE ${super.wheres}`;
30
- }
31
- toSQL() {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Select = void 0;
4
+ const BaseStatement_1 = require("./BaseStatement");
5
+ const __1 = require("../../..");
6
+ const Helpers_1 = require("../../../Helpers");
7
+ class Select extends BaseStatement_1.BaseStatement {
8
+ get distinct() {
9
+ return this.components.distinct ? 'DISTINCT ' : '';
10
+ }
11
+ get columns() {
12
+ let columns = this.components.columns || [];
13
+ columns = columns.map(column => {
14
+ return column instanceof __1.StringExpression ? column.value : Helpers_1.wrap(column);
15
+ });
16
+ const aggregate = this.components.aggregate;
17
+ if (aggregate) {
18
+ columns.push(`${aggregate.function}(${Helpers_1.wrap(aggregate.columns) || '*'}) as aggregate`);
19
+ }
20
+ if (!columns.length) {
21
+ return '*';
22
+ }
23
+ return columns.join(', ');
24
+ }
25
+ get wheres() {
26
+ if (!this.components.wheres.length) {
27
+ return '';
28
+ }
29
+ return `WHERE ${super.wheres}`;
30
+ }
31
+ toSQL() {
32
32
  return `
33
33
  SELECT ${this.distinct}${this.columns}
34
34
  FROM ${this.table} ${this.joins} ${this.wheres} ${this.groups}
35
35
  ${this.having}
36
36
  ${this.orders}
37
37
  ${this.limit}
38
- `;
39
- }
40
- }
41
- exports.Select = Select;
42
- /*
43
- const query = `SELECT *
44
- FROM users
45
- where name = 'john' -- where basic
46
- or (age in (1, 2, 3) and age > 2) -- where nested
47
- or age in (1, 2, 3) -- where in
48
- or age in (SELECT age from users) -- where subSelect
49
- `;
50
- */
38
+ `;
39
+ }
40
+ }
41
+ exports.Select = Select;
42
+ /*
43
+ const query = `SELECT *
44
+ FROM users
45
+ where name = 'john' -- where basic
46
+ or (age in (1, 2, 3) and age > 2) -- where nested
47
+ or age in (1, 2, 3) -- where in
48
+ or age in (SELECT age from users) -- where subSelect
49
+ `;
50
+ */
51
51
  //# sourceMappingURL=Select.js.map
@@ -1,7 +1,7 @@
1
- import { BaseStatement } from './BaseStatement';
2
- export declare class Update extends BaseStatement {
3
- get wheres(): string;
4
- get columns(): string;
5
- toSQL(): string;
6
- }
1
+ import { BaseStatement } from './BaseStatement';
2
+ export declare class Update extends BaseStatement {
3
+ get wheres(): string;
4
+ get columns(): string;
5
+ toSQL(): string;
6
+ }
7
7
  //# sourceMappingURL=Update.d.ts.map
@@ -1,33 +1,33 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Update = void 0;
4
- const BaseStatement_1 = require("./BaseStatement");
5
- class Update extends BaseStatement_1.BaseStatement {
6
- get wheres() {
7
- if (!this.components.wheres.length) {
8
- return '';
9
- }
10
- return 'WHERE ' + super.wheres;
11
- }
12
- get columns() {
13
- const columns = [];
14
- const values = this.components.update || {};
15
- for (const column in values) {
16
- if (values.hasOwnProperty(column)) {
17
- this.bindings.push(values[column]);
18
- columns.push(`${column} = ?`);
19
- }
20
- }
21
- return columns.join(', ');
22
- }
23
- toSQL() {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Update = void 0;
4
+ const BaseStatement_1 = require("./BaseStatement");
5
+ class Update extends BaseStatement_1.BaseStatement {
6
+ get wheres() {
7
+ if (!this.components.wheres.length) {
8
+ return '';
9
+ }
10
+ return 'WHERE ' + super.wheres;
11
+ }
12
+ get columns() {
13
+ const columns = [];
14
+ const values = this.components.update || {};
15
+ for (const column in values) {
16
+ if (values.hasOwnProperty(column)) {
17
+ this.bindings.push(values[column]);
18
+ columns.push(`${column} = ?`);
19
+ }
20
+ }
21
+ return columns.join(', ');
22
+ }
23
+ toSQL() {
24
24
  return `
25
25
  UPDATE
26
26
  ${this.table}
27
27
  SET ${this.columns}
28
28
  ${this.wheres} ${this.orders} ${this.limit}
29
- `;
30
- }
31
- }
32
- exports.Update = Update;
29
+ `;
30
+ }
31
+ }
32
+ exports.Update = Update;
33
33
  //# sourceMappingURL=Update.js.map
@@ -1,9 +1,9 @@
1
- export interface ColumnDefinitionOptions {
2
- name: string;
3
- type: string;
4
- nullable?: boolean;
5
- default?: string | number;
6
- autoIncrement?: number;
7
- primaryKey?: boolean;
8
- }
1
+ export interface ColumnDefinitionOptions {
2
+ name: string;
3
+ type: string;
4
+ nullable?: boolean;
5
+ default?: string | number;
6
+ autoIncrement?: number;
7
+ primaryKey?: boolean;
8
+ }
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=index.js.map
@@ -1,10 +1,10 @@
1
- import { BaseStatement } from '../SQL/Statements/BaseStatement';
2
- import { ColumnDefinitionOptions } from '../SQL';
3
- export declare class Create extends BaseStatement {
4
- columns: ColumnDefinitionOptions[];
5
- constructor(table: string, columns?: ColumnDefinitionOptions[]);
6
- toSQL(): string;
7
- private getColumnsSQL;
8
- private getColumnSQL;
9
- }
1
+ import { BaseStatement } from '../SQL/Statements/BaseStatement';
2
+ import { ColumnDefinitionOptions } from '../SQL';
3
+ export declare class Create extends BaseStatement {
4
+ columns: ColumnDefinitionOptions[];
5
+ constructor(table: string, columns?: ColumnDefinitionOptions[]);
6
+ toSQL(): string;
7
+ private getColumnsSQL;
8
+ private getColumnSQL;
9
+ }
10
10
  //# sourceMappingURL=Create.d.ts.map
@@ -1,42 +1,42 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Create = void 0;
4
- const BaseStatement_1 = require("../SQL/Statements/BaseStatement");
5
- class Create extends BaseStatement_1.BaseStatement {
6
- constructor(table, columns = []) {
7
- super({
8
- table,
9
- columns: [],
10
- joins: [],
11
- wheres: [],
12
- groups: [],
13
- orders: [],
14
- having: []
15
- });
16
- this.columns = columns;
17
- }
18
- toSQL() {
19
- const definitions = this.getColumnsSQL(this.columns);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Create = void 0;
4
+ const BaseStatement_1 = require("../SQL/Statements/BaseStatement");
5
+ class Create extends BaseStatement_1.BaseStatement {
6
+ constructor(table, columns = []) {
7
+ super({
8
+ table,
9
+ columns: [],
10
+ joins: [],
11
+ wheres: [],
12
+ groups: [],
13
+ orders: [],
14
+ having: []
15
+ });
16
+ this.columns = columns;
17
+ }
18
+ toSQL() {
19
+ const definitions = this.getColumnsSQL(this.columns);
20
20
  return `
21
21
  CREATE TABLE ${this.table}
22
22
  (
23
23
  ${definitions.join(', \n')}
24
24
  )
25
- `;
26
- }
27
- getColumnsSQL(columns) {
28
- return columns.map(this.getColumnSQL);
29
- }
30
- getColumnSQL(column) {
31
- const sqlParts = [column.name, column.type];
32
- if (column.primaryKey) {
33
- sqlParts.push('PRIMARY KEY');
34
- }
35
- if (column.autoIncrement) {
36
- sqlParts.push('AUTOINCREMENT');
37
- }
38
- return sqlParts.join(' ');
39
- }
40
- }
41
- exports.Create = Create;
25
+ `;
26
+ }
27
+ getColumnsSQL(columns) {
28
+ return columns.map(this.getColumnSQL);
29
+ }
30
+ getColumnSQL(column) {
31
+ const sqlParts = [column.name, column.type];
32
+ if (column.primaryKey) {
33
+ sqlParts.push('PRIMARY KEY');
34
+ }
35
+ if (column.autoIncrement) {
36
+ sqlParts.push('AUTOINCREMENT');
37
+ }
38
+ return sqlParts.join(' ');
39
+ }
40
+ }
41
+ exports.Create = Create;
42
42
  //# sourceMappingURL=Create.js.map
@@ -1,16 +1,16 @@
1
- import { ColumnField, Entity } from '../..';
2
- import { Schema as BaseSchema } from '../SQL/Schema';
3
- export declare class Schema extends BaseSchema {
4
- columnMetadataToColumnDefinition(metadata: ColumnField<Entity>): {
5
- name: string;
6
- primaryKey: boolean;
7
- autoIncrement: number;
8
- type: string;
9
- default: undefined;
10
- nullable: boolean;
11
- };
12
- create(table: string, columns: ColumnField<Entity>[]): Promise<void>;
13
- protected syncTableColumns(table: string, columnsMetadata: ColumnField<Entity>[]): Promise<void>;
14
- private getColumnTypeBasedOnTypescriptType;
15
- }
1
+ import { ColumnField, Entity } from '../..';
2
+ import { Schema as BaseSchema } from '../SQL/Schema';
3
+ export declare class Schema extends BaseSchema {
4
+ columnMetadataToColumnDefinition(metadata: ColumnField<Entity>): {
5
+ name: string;
6
+ primaryKey: boolean;
7
+ autoIncrement: number;
8
+ type: string;
9
+ default: undefined;
10
+ nullable: boolean;
11
+ };
12
+ create(table: string, columns: ColumnField<Entity>[]): Promise<void>;
13
+ protected syncTableColumns(table: string, columnsMetadata: ColumnField<Entity>[]): Promise<void>;
14
+ private getColumnTypeBasedOnTypescriptType;
15
+ }
16
16
  //# sourceMappingURL=Schema.d.ts.map
@@ -1,47 +1,47 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Schema = void 0;
4
- const __1 = require("../..");
5
- const Schema_1 = require("../SQL/Schema");
6
- const Create_1 = require("./Create");
7
- const _1 = require(".");
8
- const Helpers_1 = require("../../Helpers");
9
- class Schema extends Schema_1.Schema {
10
- columnMetadataToColumnDefinition(metadata) {
11
- return {
12
- name: metadata.column,
13
- primaryKey: metadata.constructor === __1.PrimaryField,
14
- autoIncrement: Number(metadata.constructor === __1.PrimaryField),
15
- type: this.getColumnTypeBasedOnTypescriptType(metadata),
16
- default: undefined,
17
- nullable: true
18
- };
19
- }
20
- async create(table, columns) {
21
- const columnsDefinitions = columns.map(column => this.columnMetadataToColumnDefinition(column));
22
- const createStatement = new Create_1.Create(table, columnsDefinitions);
23
- await this.driver.run(createStatement.toSQL());
24
- }
25
- async syncTableColumns(table, columnsMetadata) {
26
- const columns = columnsMetadata.map(metadata => this.columnMetadataToColumnDefinition(metadata));
27
- const tableColumns = await this.driver.tableColumns(table);
28
- if (tableColumns.length) {
29
- const temporaryTableName = table + '_alter_tmp';
30
- await this.create(temporaryTableName, columnsMetadata);
31
- const columnList = Helpers_1.wrap(columns.whereIn('name', tableColumns.pluck('name')).pluck('name'));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Schema = void 0;
4
+ const __1 = require("../..");
5
+ const Schema_1 = require("../SQL/Schema");
6
+ const Create_1 = require("./Create");
7
+ const _1 = require(".");
8
+ const Helpers_1 = require("../../Helpers");
9
+ class Schema extends Schema_1.Schema {
10
+ columnMetadataToColumnDefinition(metadata) {
11
+ return {
12
+ name: metadata.column,
13
+ primaryKey: metadata.constructor === __1.PrimaryField,
14
+ autoIncrement: Number(metadata.constructor === __1.PrimaryField),
15
+ type: this.getColumnTypeBasedOnTypescriptType(metadata),
16
+ default: undefined,
17
+ nullable: true
18
+ };
19
+ }
20
+ async create(table, columns) {
21
+ const columnsDefinitions = columns.map(column => this.columnMetadataToColumnDefinition(column));
22
+ const createStatement = new Create_1.Create(table, columnsDefinitions);
23
+ await this.driver.run(createStatement.toSQL());
24
+ }
25
+ async syncTableColumns(table, columnsMetadata) {
26
+ const columns = columnsMetadata.map(metadata => this.columnMetadataToColumnDefinition(metadata));
27
+ const tableColumns = await this.driver.tableColumns(table);
28
+ if (tableColumns.length) {
29
+ const temporaryTableName = table + '_alter_tmp';
30
+ await this.create(temporaryTableName, columnsMetadata);
31
+ const columnList = Helpers_1.wrap(columns.whereIn('name', tableColumns.pluck('name')).pluck('name'));
32
32
  await this.driver.run(`INSERT INTO ${temporaryTableName}(${columnList})
33
33
  SELECT ${columnList}
34
- FROM ${table}`);
35
- await this.driver.run(`DROP TABLE ${table}`);
36
- await this.driver.run(`ALTER TABLE ${temporaryTableName} RENAME TO ${table}`);
37
- }
38
- }
39
- getColumnTypeBasedOnTypescriptType(column) {
40
- var _a, _b, _c;
41
- const typePrototype = Array.from(_1.typesMatches.keys())
42
- .find(key => column.type().prototype instanceof key) || String;
43
- return (_c = (_b = (_a = _1.typesMatches.get(column.type())) !== null && _a !== void 0 ? _a : _1.typesMatches.get(column.constructor)) !== null && _b !== void 0 ? _b : _1.typesMatches.get(typePrototype)) !== null && _c !== void 0 ? _c : _1.typesMatches.get(String);
44
- }
45
- }
46
- exports.Schema = Schema;
34
+ FROM ${table}`);
35
+ await this.driver.run(`DROP TABLE ${table}`);
36
+ await this.driver.run(`ALTER TABLE ${temporaryTableName} RENAME TO ${table}`);
37
+ }
38
+ }
39
+ getColumnTypeBasedOnTypescriptType(column) {
40
+ var _a, _b, _c;
41
+ const typePrototype = Array.from(_1.typesMatches.keys())
42
+ .find(key => column.type().prototype instanceof key) || String;
43
+ return (_c = (_b = (_a = _1.typesMatches.get(column.type())) !== null && _a !== void 0 ? _a : _1.typesMatches.get(column.constructor)) !== null && _b !== void 0 ? _b : _1.typesMatches.get(typePrototype)) !== null && _c !== void 0 ? _c : _1.typesMatches.get(String);
44
+ }
45
+ }
46
+ exports.Schema = Schema;
47
47
  //# sourceMappingURL=Schema.js.map