@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,396 +1,396 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const chai_1 = require("chai");
13
- const mocha_1 = require("@testdeck/mocha");
14
- const Container_1 = require("../../Container");
15
- let ContainerTest = class ContainerTest {
16
- givesSingletonContainer() {
17
- const container = Container_1.Container.getInstance();
18
- chai_1.expect(container).instanceOf(Container_1.Container);
19
- chai_1.expect(Container_1.Container.getInstance()).to.be.equal(container);
20
- chai_1.expect(Container_1.Container.getInstance()).instanceOf(Container_1.Container);
21
- }
22
- overwritesSingletonContainer() {
23
- const container = Container_1.Container.setInstance(new Container_1.Container);
24
- chai_1.expect(container).equal(Container_1.Container.getInstance());
25
- const container2 = new Container_1.Container;
26
- Container_1.Container.setInstance(container2);
27
- chai_1.expect(container).not.equal(Container_1.Container.getInstance());
28
- chai_1.expect(container2).equal(Container_1.Container.getInstance());
29
- }
30
- createsInstance() {
31
- const container = new Container_1.Container();
32
- let Request = class Request {
33
- };
34
- Request = __decorate([
35
- Container_1.Injectable()
36
- ], Request);
37
- chai_1.expect(container.get(Request)).instanceOf(Request);
38
- }
39
- // @test
40
- // bindsCallbacks() {
41
- // class Dependency {}
42
- //
43
- // const container = new Container;
44
- //
45
- // @Injectable() // not possible right now
46
- // function myFunction(dependency: Dependency) {
47
- // return dependency;
48
- // };
49
- // expect(container.call(myFunction())).to.be.instanceOf(Dependency);
50
- // }
51
- singletonScope() {
52
- class Request {
53
- }
54
- const container = new Container_1.Container();
55
- const request = container.get(Request);
56
- chai_1.expect(request).to.be.equal(container.get(Request));
57
- }
58
- transientScope() {
59
- let Request = class Request {
60
- };
61
- Request = __decorate([
62
- Container_1.Injectable(Container_1.Scope.TRANSIENT)
63
- ], Request);
64
- const container = new Container_1.Container();
65
- const request1 = container.get(Request);
66
- const request2 = container.get(Request);
67
- chai_1.expect(request1).not.to.be.equal(request2);
68
- }
69
- requestScope() {
70
- let Request = class Request {
71
- };
72
- Request = __decorate([
73
- Container_1.Injectable(Container_1.Scope.REQUEST)
74
- ], Request);
75
- const container = new Container_1.Container();
76
- const childContainer = container.createChildContainer();
77
- const request = childContainer.get(Request);
78
- chai_1.expect(container.getInstances().size).to.be.equal(0);
79
- chai_1.expect(childContainer.getInstances().size).to.be.equal(2);
80
- chai_1.expect(request).to.be.instanceof(Request);
81
- }
82
- // @test
83
- // requestScopeWithSingletonDependencyFromParenContainer() {
84
- // @Injectable(Scope.REQUEST)
85
- // class Request {}
86
- //
87
- // class Controller {
88
- // @Inject()
89
- // request: Request;
90
- // }
91
- //
92
- // const container = new Container();
93
- // const childContainer = container.createChildContainer();
94
- // const controller = childContainer.get(Controller);
95
- // expect(Object.values(container.getInstances())).to.have.length(0);
96
- // expect(Object.values(childContainer.getInstances())).to.have.length(1);
97
- // expect(Object.values(childContainer.getInstances())[0]).to.be.instanceof(Request);
98
- // }
99
- bindsStringToImplementation() {
100
- let Request = class Request {
101
- };
102
- Request = __decorate([
103
- Container_1.Injectable(Container_1.Scope.TRANSIENT)
104
- ], Request);
105
- const container = new Container_1.Container();
106
- const request = container.get(Request);
107
- container.set('request', request);
108
- chai_1.expect(request).to.be.equal(container.get('request'));
109
- }
110
- bindsImplementationsWithTheSameName() {
111
- const namespaceA = {
112
- Request: class Request {
113
- }
114
- };
115
- const namespaceB = {
116
- Request: class Request {
117
- }
118
- };
119
- const namespaceC = {
120
- Request: class Request {
121
- }
122
- };
123
- const container = new Container_1.Container();
124
- const requestA = container.get(namespaceA.Request);
125
- const requestB = container.get(namespaceB.Request);
126
- const requestC = container.get(namespaceC.Request);
127
- chai_1.expect(requestA).to.be.instanceOf(namespaceA.Request);
128
- chai_1.expect(requestB).to.be.instanceOf(namespaceB.Request);
129
- chai_1.expect(requestC).to.be.instanceOf(namespaceC.Request);
130
- }
131
- bindsClassToInterface() {
132
- class StorageInterface {
133
- }
134
- class DiskStorage {
135
- }
136
- class CloudStorage {
137
- }
138
- const container = new Container_1.Container();
139
- container.set(StorageInterface, new DiskStorage);
140
- chai_1.expect(container.get(StorageInterface)).to.be.instanceOf(DiskStorage);
141
- container.set(StorageInterface, new CloudStorage());
142
- chai_1.expect(container.get(StorageInterface)).to.be.instanceOf(CloudStorage);
143
- }
144
- throwsExceptionIfCannotResolve() {
145
- const container = new Container_1.Container;
146
- chai_1.expect(() => container.get('DoesNotExist')).to.throw(`No instance found for 'DoesNotExist'`);
147
- }
148
- throwsExceptionIfCannotFindAnAbstractName() {
149
- const container = new Container_1.Container;
150
- const x = {};
151
- chai_1.expect(() => container.get(x)).to.throw(`Cannot get abstract name for ${x}`);
152
- }
153
- resolvesDependenciesFromClassProperties() {
154
- const container = new Container_1.Container();
155
- let UserRepository = class UserRepository {
156
- };
157
- UserRepository = __decorate([
158
- Container_1.Injectable()
159
- ], UserRepository);
160
- let AuthService = class AuthService {
161
- };
162
- __decorate([
163
- Container_1.Inject(),
164
- __metadata("design:type", UserRepository)
165
- ], AuthService.prototype, "userRepository", void 0);
166
- AuthService = __decorate([
167
- Container_1.Injectable()
168
- ], AuthService);
169
- let UserController = class UserController {
170
- };
171
- __decorate([
172
- Container_1.Inject(),
173
- __metadata("design:type", AuthService)
174
- ], UserController.prototype, "authService", void 0);
175
- UserController = __decorate([
176
- Container_1.Injectable()
177
- ], UserController);
178
- const userController = container.get(UserController);
179
- chai_1.expect(userController).instanceOf(UserController);
180
- chai_1.expect(userController.authService).instanceOf(AuthService);
181
- chai_1.expect(userController.authService.userRepository).instanceOf(UserRepository);
182
- }
183
- resolvesDependenciesFromConstructorParameters() {
184
- const container = new Container_1.Container;
185
- let UserRepository = class UserRepository {
186
- };
187
- UserRepository = __decorate([
188
- Container_1.Injectable()
189
- ], UserRepository);
190
- let AuthService = class AuthService {
191
- constructor(userRepository) {
192
- this.userRepository = userRepository;
193
- }
194
- };
195
- AuthService = __decorate([
196
- Container_1.Injectable(),
197
- __metadata("design:paramtypes", [UserRepository])
198
- ], AuthService);
199
- let UserController = class UserController {
200
- constructor(authService) {
201
- this.authService = authService;
202
- }
203
- };
204
- UserController = __decorate([
205
- Container_1.Injectable(),
206
- __metadata("design:paramtypes", [AuthService])
207
- ], UserController);
208
- const userController = container.get(UserController);
209
- chai_1.expect(userController).instanceOf(UserController);
210
- chai_1.expect(userController.authService).instanceOf(AuthService);
211
- chai_1.expect(userController.authService.userRepository).instanceOf(UserRepository);
212
- }
213
- // @test
214
- // async throwsExceptionIfDependencyCannotBeResolved() {
215
- // const container = new Container;
216
- //
217
- // @Injectable()
218
- // class UserController {
219
- // constructor(public userRepository: object) {
220
- // }
221
- // }
222
- //
223
- // await expect(() => container.get(UserController)).to.throw(`No binding found for parameter 0 in 'UserController'`);
224
- // }
225
- createsChildContainer() {
226
- const container = new Container_1.Container();
227
- const childContainer = container.createChildContainer();
228
- chai_1.expect(childContainer).to.be.instanceOf(Container_1.Container);
229
- chai_1.expect(childContainer).not.to.equal(container);
230
- }
231
- childContainerGetsObjectFromParentContainer() {
232
- class Storage {
233
- }
234
- const container = new Container_1.Container();
235
- const childContainer = container.createChildContainer();
236
- const storage = container.get(Storage);
237
- chai_1.expect(childContainer.get(Storage)).to.equal(storage);
238
- }
239
- dependenciesHaveTheScopeSingleton() {
240
- class Request {
241
- }
242
- const container = new Container_1.Container();
243
- const childContainer = container.createChildContainer();
244
- const request = childContainer.get(Request);
245
- chai_1.expect(childContainer.get(Request)).to.equal(request);
246
- }
247
- async resolvesAsyncDependencies() {
248
- class User {
249
- }
250
- class Request {
251
- }
252
- __decorate([
253
- Container_1.Inject(),
254
- __metadata("design:type", User)
255
- ], Request.prototype, "user", void 0);
256
- class UserResolver extends Container_1.BaseResolver {
257
- canResolve(abstract) {
258
- return abstract === User;
259
- }
260
- async resolve(abstract, parameters) {
261
- await new Promise(resolve => setTimeout(resolve, 1));
262
- return new User;
263
- }
264
- }
265
- const container = new Container_1.Container();
266
- container.resolvers.unshift(new UserResolver(container));
267
- const request = container.get(Request);
268
- chai_1.expect(request).to.be.instanceof(Promise);
269
- const resolvedRequest = await container.get(Request);
270
- chai_1.expect(resolvedRequest).to.be.instanceof(Request);
271
- }
272
- async injectsDependencyUsingStringAlias() {
273
- class SomeClass {
274
- }
275
- __decorate([
276
- Container_1.Inject('theCode'),
277
- __metadata("design:type", Number)
278
- ], SomeClass.prototype, "code", void 0);
279
- const container = new Container_1.Container();
280
- container.set('theCode', 123);
281
- const instance = container.get(SomeClass);
282
- chai_1.expect(instance.code).to.be.equal(123);
283
- }
284
- };
285
- __decorate([
286
- mocha_1.test,
287
- __metadata("design:type", Function),
288
- __metadata("design:paramtypes", []),
289
- __metadata("design:returntype", void 0)
290
- ], ContainerTest.prototype, "givesSingletonContainer", null);
291
- __decorate([
292
- mocha_1.test,
293
- __metadata("design:type", Function),
294
- __metadata("design:paramtypes", []),
295
- __metadata("design:returntype", void 0)
296
- ], ContainerTest.prototype, "overwritesSingletonContainer", null);
297
- __decorate([
298
- mocha_1.test,
299
- __metadata("design:type", Function),
300
- __metadata("design:paramtypes", []),
301
- __metadata("design:returntype", void 0)
302
- ], ContainerTest.prototype, "createsInstance", null);
303
- __decorate([
304
- mocha_1.test,
305
- __metadata("design:type", Function),
306
- __metadata("design:paramtypes", []),
307
- __metadata("design:returntype", void 0)
308
- ], ContainerTest.prototype, "singletonScope", null);
309
- __decorate([
310
- mocha_1.test,
311
- __metadata("design:type", Function),
312
- __metadata("design:paramtypes", []),
313
- __metadata("design:returntype", void 0)
314
- ], ContainerTest.prototype, "transientScope", null);
315
- __decorate([
316
- mocha_1.test,
317
- __metadata("design:type", Function),
318
- __metadata("design:paramtypes", []),
319
- __metadata("design:returntype", void 0)
320
- ], ContainerTest.prototype, "requestScope", null);
321
- __decorate([
322
- mocha_1.test,
323
- __metadata("design:type", Function),
324
- __metadata("design:paramtypes", []),
325
- __metadata("design:returntype", void 0)
326
- ], ContainerTest.prototype, "bindsStringToImplementation", null);
327
- __decorate([
328
- mocha_1.test,
329
- __metadata("design:type", Function),
330
- __metadata("design:paramtypes", []),
331
- __metadata("design:returntype", void 0)
332
- ], ContainerTest.prototype, "bindsImplementationsWithTheSameName", null);
333
- __decorate([
334
- mocha_1.test,
335
- __metadata("design:type", Function),
336
- __metadata("design:paramtypes", []),
337
- __metadata("design:returntype", void 0)
338
- ], ContainerTest.prototype, "bindsClassToInterface", null);
339
- __decorate([
340
- mocha_1.test,
341
- __metadata("design:type", Function),
342
- __metadata("design:paramtypes", []),
343
- __metadata("design:returntype", void 0)
344
- ], ContainerTest.prototype, "throwsExceptionIfCannotResolve", null);
345
- __decorate([
346
- mocha_1.test,
347
- __metadata("design:type", Function),
348
- __metadata("design:paramtypes", []),
349
- __metadata("design:returntype", void 0)
350
- ], ContainerTest.prototype, "throwsExceptionIfCannotFindAnAbstractName", null);
351
- __decorate([
352
- mocha_1.test,
353
- __metadata("design:type", Function),
354
- __metadata("design:paramtypes", []),
355
- __metadata("design:returntype", void 0)
356
- ], ContainerTest.prototype, "resolvesDependenciesFromClassProperties", null);
357
- __decorate([
358
- mocha_1.test,
359
- __metadata("design:type", Function),
360
- __metadata("design:paramtypes", []),
361
- __metadata("design:returntype", void 0)
362
- ], ContainerTest.prototype, "resolvesDependenciesFromConstructorParameters", null);
363
- __decorate([
364
- mocha_1.test,
365
- __metadata("design:type", Function),
366
- __metadata("design:paramtypes", []),
367
- __metadata("design:returntype", void 0)
368
- ], ContainerTest.prototype, "createsChildContainer", null);
369
- __decorate([
370
- mocha_1.test,
371
- __metadata("design:type", Function),
372
- __metadata("design:paramtypes", []),
373
- __metadata("design:returntype", void 0)
374
- ], ContainerTest.prototype, "childContainerGetsObjectFromParentContainer", null);
375
- __decorate([
376
- mocha_1.test,
377
- __metadata("design:type", Function),
378
- __metadata("design:paramtypes", []),
379
- __metadata("design:returntype", void 0)
380
- ], ContainerTest.prototype, "dependenciesHaveTheScopeSingleton", null);
381
- __decorate([
382
- mocha_1.test,
383
- __metadata("design:type", Function),
384
- __metadata("design:paramtypes", []),
385
- __metadata("design:returntype", Promise)
386
- ], ContainerTest.prototype, "resolvesAsyncDependencies", null);
387
- __decorate([
388
- mocha_1.test,
389
- __metadata("design:type", Function),
390
- __metadata("design:paramtypes", []),
391
- __metadata("design:returntype", Promise)
392
- ], ContainerTest.prototype, "injectsDependencyUsingStringAlias", null);
393
- ContainerTest = __decorate([
394
- mocha_1.suite
395
- ], ContainerTest);
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const chai_1 = require("chai");
13
+ const mocha_1 = require("@testdeck/mocha");
14
+ const Container_1 = require("../../Container");
15
+ let ContainerTest = class ContainerTest {
16
+ givesSingletonContainer() {
17
+ const container = Container_1.Container.getInstance();
18
+ chai_1.expect(container).instanceOf(Container_1.Container);
19
+ chai_1.expect(Container_1.Container.getInstance()).to.be.equal(container);
20
+ chai_1.expect(Container_1.Container.getInstance()).instanceOf(Container_1.Container);
21
+ }
22
+ overwritesSingletonContainer() {
23
+ const container = Container_1.Container.setInstance(new Container_1.Container);
24
+ chai_1.expect(container).equal(Container_1.Container.getInstance());
25
+ const container2 = new Container_1.Container;
26
+ Container_1.Container.setInstance(container2);
27
+ chai_1.expect(container).not.equal(Container_1.Container.getInstance());
28
+ chai_1.expect(container2).equal(Container_1.Container.getInstance());
29
+ }
30
+ createsInstance() {
31
+ const container = new Container_1.Container();
32
+ let Request = class Request {
33
+ };
34
+ Request = __decorate([
35
+ Container_1.Injectable()
36
+ ], Request);
37
+ chai_1.expect(container.get(Request)).instanceOf(Request);
38
+ }
39
+ // @test
40
+ // bindsCallbacks() {
41
+ // class Dependency {}
42
+ //
43
+ // const container = new Container;
44
+ //
45
+ // @Injectable() // not possible right now
46
+ // function myFunction(dependency: Dependency) {
47
+ // return dependency;
48
+ // };
49
+ // expect(container.call(myFunction())).to.be.instanceOf(Dependency);
50
+ // }
51
+ singletonScope() {
52
+ class Request {
53
+ }
54
+ const container = new Container_1.Container();
55
+ const request = container.get(Request);
56
+ chai_1.expect(request).to.be.equal(container.get(Request));
57
+ }
58
+ transientScope() {
59
+ let Request = class Request {
60
+ };
61
+ Request = __decorate([
62
+ Container_1.Injectable(Container_1.Scope.TRANSIENT)
63
+ ], Request);
64
+ const container = new Container_1.Container();
65
+ const request1 = container.get(Request);
66
+ const request2 = container.get(Request);
67
+ chai_1.expect(request1).not.to.be.equal(request2);
68
+ }
69
+ requestScope() {
70
+ let Request = class Request {
71
+ };
72
+ Request = __decorate([
73
+ Container_1.Injectable(Container_1.Scope.REQUEST)
74
+ ], Request);
75
+ const container = new Container_1.Container();
76
+ const childContainer = container.createChildContainer();
77
+ const request = childContainer.get(Request);
78
+ chai_1.expect(container.getInstances().size).to.be.equal(0);
79
+ chai_1.expect(childContainer.getInstances().size).to.be.equal(2);
80
+ chai_1.expect(request).to.be.instanceof(Request);
81
+ }
82
+ // @test
83
+ // requestScopeWithSingletonDependencyFromParenContainer() {
84
+ // @Injectable(Scope.REQUEST)
85
+ // class Request {}
86
+ //
87
+ // class Controller {
88
+ // @Inject()
89
+ // request: Request;
90
+ // }
91
+ //
92
+ // const container = new Container();
93
+ // const childContainer = container.createChildContainer();
94
+ // const controller = childContainer.get(Controller);
95
+ // expect(Object.values(container.getInstances())).to.have.length(0);
96
+ // expect(Object.values(childContainer.getInstances())).to.have.length(1);
97
+ // expect(Object.values(childContainer.getInstances())[0]).to.be.instanceof(Request);
98
+ // }
99
+ bindsStringToImplementation() {
100
+ let Request = class Request {
101
+ };
102
+ Request = __decorate([
103
+ Container_1.Injectable(Container_1.Scope.TRANSIENT)
104
+ ], Request);
105
+ const container = new Container_1.Container();
106
+ const request = container.get(Request);
107
+ container.set('request', request);
108
+ chai_1.expect(request).to.be.equal(container.get('request'));
109
+ }
110
+ bindsImplementationsWithTheSameName() {
111
+ const namespaceA = {
112
+ Request: class Request {
113
+ }
114
+ };
115
+ const namespaceB = {
116
+ Request: class Request {
117
+ }
118
+ };
119
+ const namespaceC = {
120
+ Request: class Request {
121
+ }
122
+ };
123
+ const container = new Container_1.Container();
124
+ const requestA = container.get(namespaceA.Request);
125
+ const requestB = container.get(namespaceB.Request);
126
+ const requestC = container.get(namespaceC.Request);
127
+ chai_1.expect(requestA).to.be.instanceOf(namespaceA.Request);
128
+ chai_1.expect(requestB).to.be.instanceOf(namespaceB.Request);
129
+ chai_1.expect(requestC).to.be.instanceOf(namespaceC.Request);
130
+ }
131
+ bindsClassToInterface() {
132
+ class StorageInterface {
133
+ }
134
+ class DiskStorage {
135
+ }
136
+ class CloudStorage {
137
+ }
138
+ const container = new Container_1.Container();
139
+ container.set(StorageInterface, new DiskStorage);
140
+ chai_1.expect(container.get(StorageInterface)).to.be.instanceOf(DiskStorage);
141
+ container.set(StorageInterface, new CloudStorage());
142
+ chai_1.expect(container.get(StorageInterface)).to.be.instanceOf(CloudStorage);
143
+ }
144
+ throwsExceptionIfCannotResolve() {
145
+ const container = new Container_1.Container;
146
+ chai_1.expect(() => container.get('DoesNotExist')).to.throw(`No instance found for 'DoesNotExist'`);
147
+ }
148
+ throwsExceptionIfCannotFindAnAbstractName() {
149
+ const container = new Container_1.Container;
150
+ const x = {};
151
+ chai_1.expect(() => container.get(x)).to.throw(`Cannot get abstract name for ${x}`);
152
+ }
153
+ resolvesDependenciesFromClassProperties() {
154
+ const container = new Container_1.Container();
155
+ let UserRepository = class UserRepository {
156
+ };
157
+ UserRepository = __decorate([
158
+ Container_1.Injectable()
159
+ ], UserRepository);
160
+ let AuthService = class AuthService {
161
+ };
162
+ __decorate([
163
+ Container_1.Inject(),
164
+ __metadata("design:type", UserRepository)
165
+ ], AuthService.prototype, "userRepository", void 0);
166
+ AuthService = __decorate([
167
+ Container_1.Injectable()
168
+ ], AuthService);
169
+ let UserController = class UserController {
170
+ };
171
+ __decorate([
172
+ Container_1.Inject(),
173
+ __metadata("design:type", AuthService)
174
+ ], UserController.prototype, "authService", void 0);
175
+ UserController = __decorate([
176
+ Container_1.Injectable()
177
+ ], UserController);
178
+ const userController = container.get(UserController);
179
+ chai_1.expect(userController).instanceOf(UserController);
180
+ chai_1.expect(userController.authService).instanceOf(AuthService);
181
+ chai_1.expect(userController.authService.userRepository).instanceOf(UserRepository);
182
+ }
183
+ resolvesDependenciesFromConstructorParameters() {
184
+ const container = new Container_1.Container;
185
+ let UserRepository = class UserRepository {
186
+ };
187
+ UserRepository = __decorate([
188
+ Container_1.Injectable()
189
+ ], UserRepository);
190
+ let AuthService = class AuthService {
191
+ constructor(userRepository) {
192
+ this.userRepository = userRepository;
193
+ }
194
+ };
195
+ AuthService = __decorate([
196
+ Container_1.Injectable(),
197
+ __metadata("design:paramtypes", [UserRepository])
198
+ ], AuthService);
199
+ let UserController = class UserController {
200
+ constructor(authService) {
201
+ this.authService = authService;
202
+ }
203
+ };
204
+ UserController = __decorate([
205
+ Container_1.Injectable(),
206
+ __metadata("design:paramtypes", [AuthService])
207
+ ], UserController);
208
+ const userController = container.get(UserController);
209
+ chai_1.expect(userController).instanceOf(UserController);
210
+ chai_1.expect(userController.authService).instanceOf(AuthService);
211
+ chai_1.expect(userController.authService.userRepository).instanceOf(UserRepository);
212
+ }
213
+ // @test
214
+ // async throwsExceptionIfDependencyCannotBeResolved() {
215
+ // const container = new Container;
216
+ //
217
+ // @Injectable()
218
+ // class UserController {
219
+ // constructor(public userRepository: object) {
220
+ // }
221
+ // }
222
+ //
223
+ // await expect(() => container.get(UserController)).to.throw(`No binding found for parameter 0 in 'UserController'`);
224
+ // }
225
+ createsChildContainer() {
226
+ const container = new Container_1.Container();
227
+ const childContainer = container.createChildContainer();
228
+ chai_1.expect(childContainer).to.be.instanceOf(Container_1.Container);
229
+ chai_1.expect(childContainer).not.to.equal(container);
230
+ }
231
+ childContainerGetsObjectFromParentContainer() {
232
+ class Storage {
233
+ }
234
+ const container = new Container_1.Container();
235
+ const childContainer = container.createChildContainer();
236
+ const storage = container.get(Storage);
237
+ chai_1.expect(childContainer.get(Storage)).to.equal(storage);
238
+ }
239
+ dependenciesHaveTheScopeSingleton() {
240
+ class Request {
241
+ }
242
+ const container = new Container_1.Container();
243
+ const childContainer = container.createChildContainer();
244
+ const request = childContainer.get(Request);
245
+ chai_1.expect(childContainer.get(Request)).to.equal(request);
246
+ }
247
+ async resolvesAsyncDependencies() {
248
+ class User {
249
+ }
250
+ class Request {
251
+ }
252
+ __decorate([
253
+ Container_1.Inject(),
254
+ __metadata("design:type", User)
255
+ ], Request.prototype, "user", void 0);
256
+ class UserResolver extends Container_1.BaseResolver {
257
+ canResolve(abstract) {
258
+ return abstract === User;
259
+ }
260
+ async resolve(abstract, parameters) {
261
+ await new Promise(resolve => setTimeout(resolve, 1));
262
+ return new User;
263
+ }
264
+ }
265
+ const container = new Container_1.Container();
266
+ container.resolvers.unshift(new UserResolver(container));
267
+ const request = container.get(Request);
268
+ chai_1.expect(request).to.be.instanceof(Promise);
269
+ const resolvedRequest = await container.get(Request);
270
+ chai_1.expect(resolvedRequest).to.be.instanceof(Request);
271
+ }
272
+ async injectsDependencyUsingStringAlias() {
273
+ class SomeClass {
274
+ }
275
+ __decorate([
276
+ Container_1.Inject('theCode'),
277
+ __metadata("design:type", Number)
278
+ ], SomeClass.prototype, "code", void 0);
279
+ const container = new Container_1.Container();
280
+ container.set('theCode', 123);
281
+ const instance = container.get(SomeClass);
282
+ chai_1.expect(instance.code).to.be.equal(123);
283
+ }
284
+ };
285
+ __decorate([
286
+ mocha_1.test,
287
+ __metadata("design:type", Function),
288
+ __metadata("design:paramtypes", []),
289
+ __metadata("design:returntype", void 0)
290
+ ], ContainerTest.prototype, "givesSingletonContainer", null);
291
+ __decorate([
292
+ mocha_1.test,
293
+ __metadata("design:type", Function),
294
+ __metadata("design:paramtypes", []),
295
+ __metadata("design:returntype", void 0)
296
+ ], ContainerTest.prototype, "overwritesSingletonContainer", null);
297
+ __decorate([
298
+ mocha_1.test,
299
+ __metadata("design:type", Function),
300
+ __metadata("design:paramtypes", []),
301
+ __metadata("design:returntype", void 0)
302
+ ], ContainerTest.prototype, "createsInstance", null);
303
+ __decorate([
304
+ mocha_1.test,
305
+ __metadata("design:type", Function),
306
+ __metadata("design:paramtypes", []),
307
+ __metadata("design:returntype", void 0)
308
+ ], ContainerTest.prototype, "singletonScope", null);
309
+ __decorate([
310
+ mocha_1.test,
311
+ __metadata("design:type", Function),
312
+ __metadata("design:paramtypes", []),
313
+ __metadata("design:returntype", void 0)
314
+ ], ContainerTest.prototype, "transientScope", null);
315
+ __decorate([
316
+ mocha_1.test,
317
+ __metadata("design:type", Function),
318
+ __metadata("design:paramtypes", []),
319
+ __metadata("design:returntype", void 0)
320
+ ], ContainerTest.prototype, "requestScope", null);
321
+ __decorate([
322
+ mocha_1.test,
323
+ __metadata("design:type", Function),
324
+ __metadata("design:paramtypes", []),
325
+ __metadata("design:returntype", void 0)
326
+ ], ContainerTest.prototype, "bindsStringToImplementation", null);
327
+ __decorate([
328
+ mocha_1.test,
329
+ __metadata("design:type", Function),
330
+ __metadata("design:paramtypes", []),
331
+ __metadata("design:returntype", void 0)
332
+ ], ContainerTest.prototype, "bindsImplementationsWithTheSameName", null);
333
+ __decorate([
334
+ mocha_1.test,
335
+ __metadata("design:type", Function),
336
+ __metadata("design:paramtypes", []),
337
+ __metadata("design:returntype", void 0)
338
+ ], ContainerTest.prototype, "bindsClassToInterface", null);
339
+ __decorate([
340
+ mocha_1.test,
341
+ __metadata("design:type", Function),
342
+ __metadata("design:paramtypes", []),
343
+ __metadata("design:returntype", void 0)
344
+ ], ContainerTest.prototype, "throwsExceptionIfCannotResolve", null);
345
+ __decorate([
346
+ mocha_1.test,
347
+ __metadata("design:type", Function),
348
+ __metadata("design:paramtypes", []),
349
+ __metadata("design:returntype", void 0)
350
+ ], ContainerTest.prototype, "throwsExceptionIfCannotFindAnAbstractName", null);
351
+ __decorate([
352
+ mocha_1.test,
353
+ __metadata("design:type", Function),
354
+ __metadata("design:paramtypes", []),
355
+ __metadata("design:returntype", void 0)
356
+ ], ContainerTest.prototype, "resolvesDependenciesFromClassProperties", null);
357
+ __decorate([
358
+ mocha_1.test,
359
+ __metadata("design:type", Function),
360
+ __metadata("design:paramtypes", []),
361
+ __metadata("design:returntype", void 0)
362
+ ], ContainerTest.prototype, "resolvesDependenciesFromConstructorParameters", null);
363
+ __decorate([
364
+ mocha_1.test,
365
+ __metadata("design:type", Function),
366
+ __metadata("design:paramtypes", []),
367
+ __metadata("design:returntype", void 0)
368
+ ], ContainerTest.prototype, "createsChildContainer", null);
369
+ __decorate([
370
+ mocha_1.test,
371
+ __metadata("design:type", Function),
372
+ __metadata("design:paramtypes", []),
373
+ __metadata("design:returntype", void 0)
374
+ ], ContainerTest.prototype, "childContainerGetsObjectFromParentContainer", null);
375
+ __decorate([
376
+ mocha_1.test,
377
+ __metadata("design:type", Function),
378
+ __metadata("design:paramtypes", []),
379
+ __metadata("design:returntype", void 0)
380
+ ], ContainerTest.prototype, "dependenciesHaveTheScopeSingleton", null);
381
+ __decorate([
382
+ mocha_1.test,
383
+ __metadata("design:type", Function),
384
+ __metadata("design:paramtypes", []),
385
+ __metadata("design:returntype", Promise)
386
+ ], ContainerTest.prototype, "resolvesAsyncDependencies", null);
387
+ __decorate([
388
+ mocha_1.test,
389
+ __metadata("design:type", Function),
390
+ __metadata("design:paramtypes", []),
391
+ __metadata("design:returntype", Promise)
392
+ ], ContainerTest.prototype, "injectsDependencyUsingStringAlias", null);
393
+ ContainerTest = __decorate([
394
+ mocha_1.suite
395
+ ], ContainerTest);
396
396
  //# sourceMappingURL=ContainerTest.js.map