@typetron/framework 0.3.17 → 0.4.0-rc1

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 (509) 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/Stores/DatabaseStore.d.ts +16 -0
  6. package/Cache/Stores/DatabaseStore.d.ts.map +1 -0
  7. package/Cache/Stores/DatabaseStore.js +104 -0
  8. package/Cache/Stores/DatabaseStore.js.map +1 -0
  9. package/Cache/Stores/FileStore.d.ts +16 -0
  10. package/Cache/Stores/FileStore.d.ts.map +1 -0
  11. package/Cache/Stores/FileStore.js +63 -0
  12. package/Cache/Stores/FileStore.js.map +1 -0
  13. package/Cache/Stores/MemoryStore.d.ts +13 -0
  14. package/Cache/Stores/MemoryStore.d.ts.map +1 -0
  15. package/Cache/Stores/MemoryStore.js +60 -0
  16. package/Cache/Stores/MemoryStore.js.map +1 -0
  17. package/Cache/index.d.ts +6 -0
  18. package/Cache/index.d.ts.map +1 -0
  19. package/Cache/index.js +18 -0
  20. package/Cache/index.js.map +1 -0
  21. package/Cache/types.d.ts +5 -0
  22. package/Cache/types.d.ts.map +1 -0
  23. package/Cache/types.js +3 -0
  24. package/Cache/types.js.map +1 -0
  25. package/Container/ClassResolver.d.ts +8 -8
  26. package/Container/ClassResolver.d.ts.map +1 -1
  27. package/Container/ClassResolver.js +92 -87
  28. package/Container/ClassResolver.js.map +1 -1
  29. package/Container/Container.d.ts +24 -24
  30. package/Container/Container.d.ts.map +1 -1
  31. package/Container/Container.js +119 -118
  32. package/Container/Container.js.map +1 -1
  33. package/Container/Contracts.d.ts +2 -2
  34. package/Container/Contracts.js +2 -2
  35. package/Container/Decorators.d.ts +4 -4
  36. package/Container/Decorators.js +21 -21
  37. package/Container/Decorators.js.map +1 -1
  38. package/Container/Metadata.d.ts +20 -20
  39. package/Container/Metadata.js +18 -18
  40. package/Container/Resolver.d.ts +18 -18
  41. package/Container/Resolver.js +15 -15
  42. package/Container/index.d.ts +5 -5
  43. package/Container/index.js +17 -17
  44. package/Database/Clauses/Where.js +1 -1
  45. package/Database/Connection.d.ts +20 -20
  46. package/Database/Connection.js +42 -42
  47. package/Database/Decorators.d.ts +36 -36
  48. package/Database/Decorators.js +115 -116
  49. package/Database/Decorators.js.map +1 -1
  50. package/Database/Drivers/DatabaseDriver.d.ts +28 -28
  51. package/Database/Drivers/DatabaseDriver.js +6 -6
  52. package/Database/Drivers/MySQL/Alter/index.d.ts +33 -33
  53. package/Database/Drivers/MySQL/Alter/index.js +61 -61
  54. package/Database/Drivers/MySQL/ColumnDefinition.d.ts +6 -6
  55. package/Database/Drivers/MySQL/ColumnDefinition.js +17 -17
  56. package/Database/Drivers/MySQL/Create.d.ts +9 -9
  57. package/Database/Drivers/MySQL/Create.js +37 -37
  58. package/Database/Drivers/MySQL/MysqlDriver.d.ts +41 -41
  59. package/Database/Drivers/MySQL/MysqlDriver.js +75 -76
  60. package/Database/Drivers/MySQL/MysqlDriver.js.map +1 -1
  61. package/Database/Drivers/MySQL/Schema.d.ts +15 -15
  62. package/Database/Drivers/MySQL/Schema.js +66 -65
  63. package/Database/Drivers/MySQL/Schema.js.map +1 -1
  64. package/Database/Drivers/MySQL/index.d.ts +1 -1
  65. package/Database/Drivers/MySQL/index.js +15 -15
  66. package/Database/Drivers/SQL/Schema.d.ts +6 -6
  67. package/Database/Drivers/SQL/Schema.js +57 -57
  68. package/Database/Drivers/SQL/Statements/Alter.d.ts +7 -7
  69. package/Database/Drivers/SQL/Statements/Alter.js +17 -17
  70. package/Database/Drivers/SQL/Statements/BaseStatement.d.ts +12 -12
  71. package/Database/Drivers/SQL/Statements/BaseStatement.js +45 -46
  72. package/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -1
  73. package/Database/Drivers/SQL/Statements/Delete.d.ts +5 -5
  74. package/Database/Drivers/SQL/Statements/Delete.js +16 -16
  75. package/Database/Drivers/SQL/Statements/Insert.d.ts +6 -6
  76. package/Database/Drivers/SQL/Statements/Insert.js +22 -23
  77. package/Database/Drivers/SQL/Statements/Insert.js.map +1 -1
  78. package/Database/Drivers/SQL/Statements/Select.d.ts +7 -7
  79. package/Database/Drivers/SQL/Statements/Select.js +44 -44
  80. package/Database/Drivers/SQL/Statements/Update.d.ts +6 -6
  81. package/Database/Drivers/SQL/Statements/Update.js +27 -27
  82. package/Database/Drivers/SQL/index.d.ts +8 -8
  83. package/Database/Drivers/SQL/index.js +2 -2
  84. package/Database/Drivers/SQLite/Create.d.ts +9 -9
  85. package/Database/Drivers/SQLite/Create.js +36 -36
  86. package/Database/Drivers/SQLite/Schema.d.ts +15 -15
  87. package/Database/Drivers/SQLite/Schema.js +46 -44
  88. package/Database/Drivers/SQLite/Schema.js.map +1 -1
  89. package/Database/Drivers/SQLite/SqliteDriver.d.ts +42 -42
  90. package/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -1
  91. package/Database/Drivers/SQLite/SqliteDriver.js +102 -102
  92. package/Database/Drivers/SQLite/SqliteDriver.js.map +1 -1
  93. package/Database/Drivers/SQLite/index.d.ts +2 -2
  94. package/Database/Drivers/SQLite/index.js +26 -26
  95. package/Database/Drivers/SchemaContract.d.ts +8 -8
  96. package/Database/Drivers/SchemaContract.js +9 -9
  97. package/Database/Drivers/Statement.d.ts +9 -9
  98. package/Database/Drivers/Statement.js +15 -15
  99. package/Database/Drivers/index.d.ts +4 -4
  100. package/Database/Drivers/index.js +16 -16
  101. package/Database/Entity.d.ts +64 -64
  102. package/Database/Entity.d.ts.map +1 -1
  103. package/Database/Entity.js +251 -252
  104. package/Database/Entity.js.map +1 -1
  105. package/Database/EntityNotFoundError.d.ts +5 -5
  106. package/Database/EntityNotFoundError.js +10 -10
  107. package/Database/EntityProxyHandler.d.ts +5 -5
  108. package/Database/EntityProxyHandler.js +30 -30
  109. package/Database/EntityQuery.d.ts +28 -28
  110. package/Database/EntityQuery.js +156 -156
  111. package/Database/Expression.d.ts +3 -3
  112. package/Database/Expression.js +6 -6
  113. package/Database/Fields.d.ts +155 -155
  114. package/Database/Fields.js +544 -548
  115. package/Database/Fields.js.map +1 -1
  116. package/Database/Helpers.d.ts +1 -1
  117. package/Database/Helpers.js +16 -16
  118. package/Database/List.d.ts +24 -24
  119. package/Database/List.d.ts.map +1 -1
  120. package/Database/List.js +49 -49
  121. package/Database/List.js.map +1 -1
  122. package/Database/Migrations/Migration.d.ts +7 -7
  123. package/Database/Migrations/Migration.js +9 -9
  124. package/Database/Migrations/MigrationHistory.d.ts +8 -8
  125. package/Database/Migrations/MigrationHistory.js +38 -38
  126. package/Database/Migrations/Migrator.d.ts +20 -20
  127. package/Database/Migrations/Migrator.js +117 -118
  128. package/Database/Migrations/Migrator.js.map +1 -1
  129. package/Database/Migrations/index.d.ts +3 -3
  130. package/Database/Migrations/index.js +15 -15
  131. package/Database/ORM/BaseRelationship.d.ts +7 -7
  132. package/Database/ORM/BaseRelationship.js +10 -10
  133. package/Database/Query.d.ts +62 -62
  134. package/Database/Query.d.ts.map +1 -1
  135. package/Database/Query.js +265 -264
  136. package/Database/Query.js.map +1 -1
  137. package/Database/Seeders/Seeder.d.ts +3 -3
  138. package/Database/Seeders/Seeder.js +6 -6
  139. package/Database/Seeders/SeederManager.d.ts +8 -8
  140. package/Database/Seeders/SeederManager.js +24 -24
  141. package/Database/Seeders/index.d.ts +2 -2
  142. package/Database/Seeders/index.js +14 -14
  143. package/Database/StringExpression.d.ts +6 -6
  144. package/Database/StringExpression.js +14 -14
  145. package/Database/Types.d.ts +117 -117
  146. package/Database/Types.d.ts.map +1 -1
  147. package/Database/Types.js +94 -94
  148. package/Database/Types.js.map +1 -1
  149. package/Database/index.d.ts +20 -20
  150. package/Database/index.js +20 -20
  151. package/Encryption/index.d.ts +15 -15
  152. package/Encryption/index.js +53 -53
  153. package/Encryption/index.js.map +1 -1
  154. package/Forms/Decorators.d.ts +6 -6
  155. package/Forms/Decorators.js +28 -28
  156. package/Forms/Form.d.ts +17 -17
  157. package/Forms/Form.js +69 -69
  158. package/Forms/FormFields.d.ts +9 -9
  159. package/Forms/FormFields.js +35 -35
  160. package/Forms/index.d.ts +3 -3
  161. package/Forms/index.js +15 -15
  162. package/Framework/App.d.ts +6 -6
  163. package/Framework/App.js +9 -9
  164. package/Framework/Application.d.ts +17 -17
  165. package/Framework/Application.d.ts.map +1 -1
  166. package/Framework/Application.js +93 -93
  167. package/Framework/Application.js.map +1 -1
  168. package/Framework/Auth/Auth.d.ts +24 -24
  169. package/Framework/Auth/Auth.js +108 -108
  170. package/Framework/Auth/Authenticatable.d.ts +6 -6
  171. package/Framework/Auth/Authenticatable.js +2 -2
  172. package/Framework/Auth/User.d.ts +10 -10
  173. package/Framework/Auth/User.js +37 -37
  174. package/Framework/Auth/index.d.ts +5 -5
  175. package/Framework/Auth/index.d.ts.map +1 -1
  176. package/Framework/Auth/index.js +45 -45
  177. package/Framework/Auth/index.js.map +1 -1
  178. package/Framework/Config/AppConfig.d.ts +19 -18
  179. package/Framework/Config/AppConfig.d.ts.map +1 -1
  180. package/Framework/Config/AppConfig.js +12 -11
  181. package/Framework/Config/AppConfig.js.map +1 -1
  182. package/Framework/Config/AuthConfig.d.ts +8 -8
  183. package/Framework/Config/AuthConfig.js +7 -7
  184. package/Framework/Config/BaseConfig.d.ts +6 -6
  185. package/Framework/Config/BaseConfig.js +12 -12
  186. package/Framework/Config/CacheConfig.d.ts +16 -0
  187. package/Framework/Config/CacheConfig.d.ts.map +1 -0
  188. package/Framework/Config/CacheConfig.js +22 -0
  189. package/Framework/Config/CacheConfig.js.map +1 -0
  190. package/Framework/Config/DatabaseConfig.d.ts +10 -10
  191. package/Framework/Config/DatabaseConfig.js +24 -25
  192. package/Framework/Config/DatabaseConfig.js.map +1 -1
  193. package/Framework/Config/MailConfig.d.ts +19 -0
  194. package/Framework/Config/MailConfig.d.ts.map +1 -0
  195. package/Framework/Config/MailConfig.js +12 -0
  196. package/Framework/Config/MailConfig.js.map +1 -0
  197. package/Framework/Config/index.d.ts +6 -4
  198. package/Framework/Config/index.d.ts.map +1 -1
  199. package/Framework/Config/index.js +18 -16
  200. package/Framework/Config/index.js.map +1 -1
  201. package/Framework/Middleware/AuthMiddleware.d.ts +7 -7
  202. package/Framework/Middleware/AuthMiddleware.js +62 -63
  203. package/Framework/Middleware/AuthMiddleware.js.map +1 -1
  204. package/Framework/Middleware/CorsMiddleware.d.ts +6 -6
  205. package/Framework/Middleware/CorsMiddleware.d.ts.map +1 -1
  206. package/Framework/Middleware/CorsMiddleware.js +44 -43
  207. package/Framework/Middleware/CorsMiddleware.js.map +1 -1
  208. package/Framework/Middleware/StaticAssetsMiddleware.d.ts +14 -14
  209. package/Framework/Middleware/StaticAssetsMiddleware.js +103 -104
  210. package/Framework/Middleware/StaticAssetsMiddleware.js.map +1 -1
  211. package/Framework/Middleware/index.d.ts +2 -2
  212. package/Framework/Middleware/index.js +14 -14
  213. package/Framework/Provider.d.ts +5 -5
  214. package/Framework/Provider.js +20 -20
  215. package/Framework/Providers/CacheProvider.d.ts +7 -0
  216. package/Framework/Providers/CacheProvider.d.ts.map +1 -0
  217. package/Framework/Providers/CacheProvider.js +39 -0
  218. package/Framework/Providers/CacheProvider.js.map +1 -0
  219. package/Framework/Providers/DatabaseProvider.d.ts +9 -9
  220. package/Framework/Providers/DatabaseProvider.js +63 -63
  221. package/Framework/Providers/MailProvider.d.ts +7 -0
  222. package/Framework/Providers/MailProvider.d.ts.map +1 -0
  223. package/Framework/Providers/MailProvider.js +40 -0
  224. package/Framework/Providers/MailProvider.js.map +1 -0
  225. package/Framework/Providers/WebsocketsProvider.d.ts +12 -12
  226. package/Framework/Providers/WebsocketsProvider.d.ts.map +1 -1
  227. package/Framework/Providers/WebsocketsProvider.js +118 -122
  228. package/Framework/Providers/WebsocketsProvider.js.map +1 -1
  229. package/Framework/Resolvers/AuthResolver.d.ts +5 -5
  230. package/Framework/Resolvers/AuthResolver.js +14 -14
  231. package/Framework/Resolvers/EntityResolver.d.ts +9 -9
  232. package/Framework/Resolvers/EntityResolver.js +39 -40
  233. package/Framework/Resolvers/EntityResolver.js.map +1 -1
  234. package/Framework/Resolvers/FormResolver.d.ts +9 -9
  235. package/Framework/Resolvers/FormResolver.js +32 -32
  236. package/Framework/RootDir.d.ts +2 -2
  237. package/Framework/RootDir.js +6 -6
  238. package/Framework/index.d.ts +8 -6
  239. package/Framework/index.d.ts.map +1 -1
  240. package/Framework/index.js +20 -18
  241. package/Framework/index.js.map +1 -1
  242. package/Frontend/Angular/index.d.ts +8 -0
  243. package/Frontend/Angular/index.d.ts.map +1 -0
  244. package/Frontend/Angular/index.js +20 -0
  245. package/Frontend/Angular/index.js.map +1 -0
  246. package/Frontend/Websockets/index.js +76 -0
  247. package/Frontend/Websockets/index.js.map +1 -0
  248. package/LICENSE.md +20 -20
  249. package/Mail/MailAddress.d.ts +5 -0
  250. package/Mail/MailAddress.d.ts.map +1 -0
  251. package/Mail/MailAddress.js +3 -0
  252. package/Mail/MailAddress.js.map +1 -0
  253. package/Mail/MailTransport.d.ts +6 -0
  254. package/Mail/MailTransport.d.ts.map +1 -0
  255. package/Mail/MailTransport.js +7 -0
  256. package/Mail/MailTransport.js.map +1 -0
  257. package/Mail/Mailable.d.ts +18 -0
  258. package/Mail/Mailable.d.ts.map +1 -0
  259. package/Mail/Mailable.js +10 -0
  260. package/Mail/Mailable.js.map +1 -0
  261. package/Mail/Mailer.d.ts +12 -0
  262. package/Mail/Mailer.d.ts.map +1 -0
  263. package/Mail/Mailer.js +25 -0
  264. package/Mail/Mailer.js.map +1 -0
  265. package/Mail/PendingMail.d.ts +30 -0
  266. package/Mail/PendingMail.d.ts.map +1 -0
  267. package/Mail/PendingMail.js +53 -0
  268. package/Mail/PendingMail.js.map +1 -0
  269. package/Mail/SentMessage.d.ts +16 -0
  270. package/Mail/SentMessage.d.ts.map +1 -0
  271. package/Mail/SentMessage.js +13 -0
  272. package/Mail/SentMessage.js.map +1 -0
  273. package/Mail/Transports/MemoryTransport.d.ts +8 -0
  274. package/Mail/Transports/MemoryTransport.d.ts.map +1 -0
  275. package/Mail/Transports/MemoryTransport.js +18 -0
  276. package/Mail/Transports/MemoryTransport.js.map +1 -0
  277. package/Mail/Transports/SendGridTransport.d.ts +11 -0
  278. package/Mail/Transports/SendGridTransport.d.ts.map +1 -0
  279. package/Mail/Transports/SendGridTransport.js +59 -0
  280. package/Mail/Transports/SendGridTransport.js.map +1 -0
  281. package/Mail/index.d.ts +4 -0
  282. package/Mail/index.d.ts.map +1 -0
  283. package/Mail/index.js +16 -0
  284. package/Mail/index.js.map +1 -0
  285. package/Models/Model.d.ts +9 -9
  286. package/Models/Model.js +35 -35
  287. package/Models/Model.js.map +1 -1
  288. package/Models/index.d.ts +21 -21
  289. package/Models/index.d.ts.map +1 -1
  290. package/Models/index.js +58 -58
  291. package/Models/index.js.map +1 -1
  292. package/Router/BaseController.d.ts +4 -4
  293. package/Router/BaseController.js +20 -20
  294. package/Router/Decorators.d.ts +21 -21
  295. package/Router/Decorators.js +170 -170
  296. package/Router/Guard.d.ts +4 -4
  297. package/Router/Guard.js +10 -10
  298. package/Router/Http/Contracts.d.ts +3 -3
  299. package/Router/Http/Contracts.js +2 -2
  300. package/Router/Http/ErrorHandler.d.ts +9 -9
  301. package/Router/Http/ErrorHandler.js +51 -51
  302. package/Router/Http/ErrorHandlerInterface.d.ts +5 -5
  303. package/Router/Http/ErrorHandlerInterface.js +6 -6
  304. package/Router/Http/Errors/HttpError.d.ts +7 -7
  305. package/Router/Http/Errors/HttpError.js +15 -15
  306. package/Router/Http/Handler.d.ts +15 -15
  307. package/Router/Http/Handler.d.ts.map +1 -1
  308. package/Router/Http/Handler.js +131 -131
  309. package/Router/Http/Handler.js.map +1 -1
  310. package/Router/Http/Request.d.ts +27 -22
  311. package/Router/Http/Request.d.ts.map +1 -1
  312. package/Router/Http/Request.js +185 -151
  313. package/Router/Http/Request.js.map +1 -1
  314. package/Router/Http/Response.d.ts +18 -17
  315. package/Router/Http/Response.d.ts.map +1 -1
  316. package/Router/Http/Response.js +42 -51
  317. package/Router/Http/Response.js.map +1 -1
  318. package/Router/Http/index.d.ts +83 -83
  319. package/Router/Http/index.js +99 -99
  320. package/Router/Metadata.d.ts +31 -31
  321. package/Router/Metadata.js +25 -25
  322. package/Router/Middleware.d.ts +5 -5
  323. package/Router/Middleware.js +2 -2
  324. package/Router/Route.d.ts +23 -23
  325. package/Router/Route.js +110 -110
  326. package/Router/RouteNotFoundError.d.ts +3 -3
  327. package/Router/RouteNotFoundError.js +9 -9
  328. package/Router/Router.d.ts +12 -12
  329. package/Router/Router.js +32 -32
  330. package/Router/Servers/index.d.ts +5 -0
  331. package/Router/Servers/index.d.ts.map +1 -0
  332. package/Router/Servers/index.js +15 -0
  333. package/Router/Servers/index.js.map +1 -0
  334. package/Router/Servers/node.d.ts +3 -0
  335. package/Router/Servers/node.d.ts.map +1 -0
  336. package/Router/Servers/node.js +15 -0
  337. package/Router/Servers/node.js.map +1 -0
  338. package/Router/Servers/uNetworking.d.ts +3 -0
  339. package/Router/Servers/uNetworking.d.ts.map +1 -0
  340. package/Router/Servers/uNetworking.js +33 -0
  341. package/Router/Servers/uNetworking.js.map +1 -0
  342. package/Router/Websockets/Handler.d.ts +12 -12
  343. package/Router/Websockets/Handler.d.ts.map +1 -1
  344. package/Router/Websockets/Handler.js +59 -59
  345. package/Router/Websockets/Handler.js.map +1 -1
  346. package/Router/Websockets/WebsocketEvent.d.ts +15 -15
  347. package/Router/Websockets/WebsocketEvent.js +52 -53
  348. package/Router/Websockets/WebsocketEvent.js.map +1 -1
  349. package/Router/Websockets/index.d.ts +16 -16
  350. package/Router/Websockets/index.d.ts.map +1 -1
  351. package/Router/Websockets/index.js +57 -57
  352. package/Router/Websockets/index.js.map +1 -1
  353. package/Router/Websockets/types.d.ts +20 -20
  354. package/Router/Websockets/types.d.ts.map +1 -1
  355. package/Router/Websockets/types.js +8 -8
  356. package/Router/index.d.ts +6 -6
  357. package/Router/index.js +18 -18
  358. package/Router/micro.d.ts +3 -0
  359. package/Router/micro.d.ts.map +1 -0
  360. package/Router/micro.js +44 -0
  361. package/Router/micro.js.map +1 -0
  362. package/Storage/File.d.ts +11 -11
  363. package/Storage/File.js +46 -46
  364. package/Storage/Image.d.ts +3 -3
  365. package/Storage/Image.js +7 -7
  366. package/Storage/InvalidImage.d.ts +3 -3
  367. package/Storage/InvalidImage.js +7 -7
  368. package/Storage/Storage.d.ts +13 -12
  369. package/Storage/Storage.d.ts.map +1 -1
  370. package/Storage/Storage.js +104 -110
  371. package/Storage/Storage.js.map +1 -1
  372. package/Storage/index.d.ts +4 -4
  373. package/Storage/index.js +16 -16
  374. package/Storage/utils.d.ts +5 -5
  375. package/Storage/utils.js +20 -20
  376. package/Support/Array.d.ts +28 -28
  377. package/Support/Array.d.ts.map +1 -1
  378. package/Support/Array.js +111 -108
  379. package/Support/Array.js.map +1 -1
  380. package/Support/Math.d.ts +6 -6
  381. package/Support/Math.js +7 -7
  382. package/Support/Metadata.d.ts +15 -14
  383. package/Support/Metadata.d.ts.map +1 -1
  384. package/Support/Metadata.js +31 -20
  385. package/Support/Metadata.js.map +1 -1
  386. package/Support/String.d.ts +11 -11
  387. package/Support/String.js +23 -23
  388. package/Support/index.d.ts +14 -13
  389. package/Support/index.d.ts.map +1 -1
  390. package/Support/index.js +6 -5
  391. package/Support/index.js.map +1 -1
  392. package/Support/utils.d.ts +2 -0
  393. package/Support/utils.d.ts.map +1 -0
  394. package/Support/utils.js +13 -0
  395. package/Support/utils.js.map +1 -0
  396. package/Testing/TestCase.d.ts +32 -32
  397. package/Testing/TestCase.js +129 -130
  398. package/Testing/TestCase.js.map +1 -1
  399. package/Validation/Rule.d.ts +6 -6
  400. package/Validation/Rule.js +6 -6
  401. package/Validation/RuleInterface.d.ts +6 -6
  402. package/Validation/RuleInterface.js +2 -2
  403. package/Validation/Rules/Email.d.ts +3 -3
  404. package/Validation/Rules/Email.js +20 -20
  405. package/Validation/Rules/Email.js.map +1 -1
  406. package/Validation/Rules/FileExtension.d.ts +3 -3
  407. package/Validation/Rules/FileExtension.js +22 -22
  408. package/Validation/Rules/FileExtension.js.map +1 -1
  409. package/Validation/Rules/MaxLength.d.ts +3 -3
  410. package/Validation/Rules/MaxLength.js +19 -19
  411. package/Validation/Rules/MaxLength.js.map +1 -1
  412. package/Validation/Rules/MinLength.d.ts +3 -3
  413. package/Validation/Rules/MinLength.js +19 -19
  414. package/Validation/Rules/MinLength.js.map +1 -1
  415. package/Validation/Rules/Optional.d.ts +3 -3
  416. package/Validation/Rules/Optional.js +19 -19
  417. package/Validation/Rules/Required.d.ts +3 -3
  418. package/Validation/Rules/Required.js +26 -26
  419. package/Validation/Rules/Required.js.map +1 -1
  420. package/Validation/Validator.d.ts +11 -11
  421. package/Validation/Validator.js +10 -10
  422. package/Validation/index.d.ts +9 -9
  423. package/Validation/index.js +21 -21
  424. package/benchmark-index.js.map +1 -0
  425. package/benchmark.js.map +1 -0
  426. package/index.d.ts +2 -0
  427. package/index.d.ts.map +1 -0
  428. package/index.js +41 -0
  429. package/index.js.map +1 -0
  430. package/package.json +70 -64
  431. package/test.js.map +1 -0
  432. package/tests/Cache/DatabaseStoreTest.d.ts +2 -0
  433. package/tests/Cache/DatabaseStoreTest.d.ts.map +1 -0
  434. package/tests/Cache/DatabaseStoreTest.js +137 -0
  435. package/tests/Cache/DatabaseStoreTest.js.map +1 -0
  436. package/tests/Cache/FileStoreTest.d.ts +2 -0
  437. package/tests/Cache/FileStoreTest.d.ts.map +1 -0
  438. package/tests/Cache/FileStoreTest.js +142 -0
  439. package/tests/Cache/FileStoreTest.js.map +1 -0
  440. package/tests/Cache/MemoryStoreTest.d.ts +2 -0
  441. package/tests/Cache/MemoryStoreTest.d.ts.map +1 -0
  442. package/tests/Cache/MemoryStoreTest.js +141 -0
  443. package/tests/Cache/MemoryStoreTest.js.map +1 -0
  444. package/tests/Container/ContainerTest.d.ts +1 -1
  445. package/tests/Container/ContainerTest.js +395 -395
  446. package/tests/Database/Drivers/MySQL/AlterTest.d.ts +1 -1
  447. package/tests/Database/Drivers/MySQL/AlterTest.js +135 -135
  448. package/tests/Database/Drivers/MySQL/CreateTest.d.ts +1 -1
  449. package/tests/Database/Drivers/MySQL/CreateTest.js +57 -57
  450. package/tests/Database/Drivers/MysqlDriverTest.d.ts +1 -1
  451. package/tests/Database/Drivers/MysqlDriverTest.js +149 -149
  452. package/tests/Database/Drivers/SqliteDriverTest.d.ts +1 -1
  453. package/tests/Database/Drivers/SqliteDriverTest.js +135 -135
  454. package/tests/Database/Entities/Article.d.ts +10 -10
  455. package/tests/Database/Entities/Article.js +42 -42
  456. package/tests/Database/Entities/Profile.d.ts +10 -10
  457. package/tests/Database/Entities/Profile.js +38 -38
  458. package/tests/Database/Entities/Role.d.ts +8 -8
  459. package/tests/Database/Entities/Role.js +30 -30
  460. package/tests/Database/Entities/User.d.ts +15 -15
  461. package/tests/Database/Entities/User.js +57 -57
  462. package/tests/Database/EntityRelationshipsTest.d.ts +1 -1
  463. package/tests/Database/EntityRelationshipsTest.js +547 -552
  464. package/tests/Database/EntityRelationshipsTest.js.map +1 -1
  465. package/tests/Database/EntityTest.d.ts +1 -1
  466. package/tests/Database/EntityTest.js +233 -233
  467. package/tests/Database/Migrations/RunnerTest.d.ts +1 -1
  468. package/tests/Database/Migrations/RunnerTest.js +111 -111
  469. package/tests/Database/Migrations/migrations/1.createUserTable.d.ts +5 -5
  470. package/tests/Database/Migrations/migrations/1.createUserTable.js +13 -13
  471. package/tests/Database/Migrations/migrations/2.createArticlesTable.d.ts +5 -5
  472. package/tests/Database/Migrations/migrations/2.createArticlesTable.js +13 -13
  473. package/tests/Database/QueryTest.d.ts +1 -1
  474. package/tests/Database/QueryTest.js +622 -622
  475. package/tests/Database/SchemaTest.d.ts +1 -1
  476. package/tests/Database/SchemaTest.js +45 -45
  477. package/tests/Database/Seeders/RunnerTest.d.ts +1 -1
  478. package/tests/Database/Seeders/RunnerTest.js +43 -43
  479. package/tests/Database/Seeders/RunnerTest.js.map +1 -1
  480. package/tests/Database/Seeders/seeders/RandomSeeder.d.ts +4 -4
  481. package/tests/Database/Seeders/seeders/RandomSeeder.js +13 -13
  482. package/tests/Database/utils.d.ts +5 -5
  483. package/tests/Database/utils.js +18 -18
  484. package/tests/Forms/FormsTest.d.ts +1 -1
  485. package/tests/Forms/FormsTest.js +79 -79
  486. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.d.ts +1 -1
  487. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.js +165 -165
  488. package/tests/Framework/Resolvers/EntityResolverTest.d.ts +1 -1
  489. package/tests/Framework/Resolvers/EntityResolverTest.js +59 -59
  490. package/tests/Mail/MailerTest.d.ts +2 -0
  491. package/tests/Mail/MailerTest.d.ts.map +1 -0
  492. package/tests/Mail/MailerTest.js +98 -0
  493. package/tests/Mail/MailerTest.js.map +1 -0
  494. package/tests/Model/ModelTest.d.ts +1 -1
  495. package/tests/Model/ModelTest.js +233 -233
  496. package/tests/Router/HttpHandlerTest.d.ts +1 -1
  497. package/tests/Router/HttpHandlerTest.js +36 -36
  498. package/tests/Router/WebSocketsHandlerTest.d.ts +1 -1
  499. package/tests/Router/WebSocketsHandlerTest.js +35 -35
  500. package/tests/Support/ArrayTest.d.ts +1 -1
  501. package/tests/Support/ArrayTest.js +258 -258
  502. package/tests/Support/StringTest.d.ts +1 -1
  503. package/tests/Support/StringTest.js +38 -38
  504. package/tests/Validation/RulesTest.d.ts +1 -1
  505. package/tests/Validation/RulesTest.js +67 -67
  506. package/Database/Drivers/SQL/Statements/Create.d.ts +0 -7
  507. package/Database/Drivers/SQL/Statements/Create.d.ts.map +0 -1
  508. package/Database/Drivers/SQL/Statements/Create.js +0 -22
  509. package/Database/Drivers/SQL/Statements/Create.js.map +0 -1
@@ -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