UNPKG

11.3 kBMarkdownView Raw
1
2
3<a name="0.6.0"></a>
4## [0.6.0](https://github.com/miter-framework/miter/compare/0.5.0...HEAD) (_Future_)
5
6Big things planned! More unit tests! Less ORM quirks! More awesomeness!
7
8### Features
9
10* **server:** print Miter's package version when starting a server
11* **jwt:** allow the JWT policies to specify where to find the authorization token
12* **crud-controller:** allow custom implementations of performDestroy
13* **router:** add transformRoute hook to allow controllers to programmatically modify or skip routes
14* **crud-controller:** allow CrudController.performQuery to return .total instead of .count
15* **crud-controller:** allow query, include, and order to be objects
16* **services:** add .listen service lifecycle hook
17* **injector:** allow the server to provide metadata defaults programmatically
18* **server-metadata:** invert control of server metadata objects
19
20### Bug Fixes
21
22* **dependencies:** add express as both a peer dependency and a dev dependency to fix CI
23* **db:** transform association clauses as $in if they are arrays
24* **db:** correct invalid composition of 3 or more $and clauses
25* **miter:** remove dependency on root-require
26* **miter:** ensure the server is started up or shutdown entirely before resolving the init promise
27* **orm:** prevent controller routes from crashing when the ORM is disabled
28* **injector:** ensure unresolved dependencies are listed even if they are undefined
29* **miter:** leave JwtMetadata in the launch config for tasks
30
31### Breaking Changes
32
33* Services are now required to have a `.start()` method
34
35
36
37<a name="0.5.10"></a>
38## [0.5.10](https://github.com/miter-framework/miter/compare/0.5.9...0.5.10) (2018-01-06)
39
40### Bug Fixes
41
42* **miter:** leave JwtMetadata in the launch config for tasks
43
44
45
46<a name="0.5.9"></a>
47## [0.5.9](https://github.com/miter-framework/miter/compare/0.5.8...0.5.9) (2017-11-30)
48
49### Features
50
51* **injector:** allow the server to provide metadata defaults programmatically
52* **server-metadata:** invert control of server metadata objects
53
54### Bug Fixes
55
56* **orm:** prevent controller routes from crashing when the ORM is disabled
57* **injector:** ensure unresolved dependencies are listed even if they are undefined
58
59
60
61<a name="0.5.8"></a>
62## [0.5.8](https://github.com/miter-framework/miter/compare/0.5.7...0.5.8) (2017-11-30)
63
64### Features
65
66* **services:** add .listen service lifecycle hook
67
68### Breaking Changes
69
70* Services are now required to have a `.start()` method
71
72
73
74<a name="0.5.7"></a>
75## [0.5.7](https://github.com/miter-framework/miter/compare/0.5.6...0.5.7) (2017-11-25)
76
77### Features
78
79* **crud-controller:** allow query, include, and order to be objects
80
81
82
83<a name="0.5.6"></a>
84## [0.5.6](https://github.com/miter-framework/miter/compare/0.5.5...0.5.6) (2017-11-23)
85
86### Bug Fixes
87
88* **miter:** ensure the server is started up or shutdown entirely before resolving the init promise
89
90
91
92<a name="0.5.5"></a>
93## [0.5.5](https://github.com/miter-framework/miter/compare/0.5.4...0.5.5) (2017-11-10)
94
95### Bug Fixes
96
97* **miter:** remove dependency on root-require
98
99
100
101<a name="0.5.4"></a>
102## [0.5.4](https://github.com/miter-framework/miter/compare/0.5.2...0.5.4) (2017-10-27)
103
104### Features
105
106* **crud-controller:** allow CrudController.performQuery to return .total instead of .count
107
108
109
110<a name="0.5.2"></a>
111## [0.5.2](https://github.com/miter-framework/miter/compare/0.5.1...0.5.2) (2017-10-20)
112
113### Features
114
115* **jwt:** allow the JWT policies to specify where to find the authorization token
116* **crud-controller:** allow custom implementations of performDestroy
117* **router:** add transformRoute hook to allow controllers to programmatically modify or skip routes
118
119### Bug Fixes
120
121* **db:** transform association clauses as $in if they are arrays
122* **db:** correct invalid composition of 3 or more $and clauses
123
124
125
126<a name="0.5.1"></a>
127## [0.5.1](https://github.com/miter-framework/miter/compare/0.5.0...0.5.1) (2017-10-16)
128
129### Features
130
131* **server:** print Miter's package version when starting a server
132
133### Bug Fixes
134
135* **dependencies:** add express as both a peer dependency and a dev dependency to fix CI
136
137
138
139<a name="0.5.0"></a>
140## [0.5.0](https://github.com/miter-framework/miter/compare/0.4.0...0.5.0) (2017-09-15)
141
142### Features
143
144* **crud-controller:** add transformInclude hook as a temporary replacement for scopes
145* **crud-controller:** add unit tests for CRUD operations and lifecycle hooks
146* **logger:** ensure logger methods write over progress bars in the console
147* **services:** add ErrorHandler service
148* **router:** allow ErrorHandler to attempt to handle errors before they propogate
149* **router:** allow ErrorHandler to attempt to handle routes that did not send a response
150* **crud-controller:** add policies returned from getDestroyPolicies to the destroy route
151* **crud-controller:** add policies returned from getCreatePolicies to the create route
152* **crud-controller:** add policies returned from getQueryPolicies to the find and count routes
153* **crud-controller:** transformResult is called on the result of the update route if returning = true
154* **router:** allow policies to have their own policies; flatten duplicate policies
155* **router:** log router reflector overview rather than listing all controllers by default
156* **server:** add startTime to the Server
157* **decorators:** esnure the Sanitize decorator drops the prototype when cloning the model
158* **services:** add TemplateService and add views metadata to server metadata
159* **dependencies:** change express to be a peer dependency
160
161### Bug Fixes
162
163* **orm:** fix Db.sum typings
164* **router:** account for routes completed when they complete without an error
165* **router:** only account for routes completing once even when they complete with an error
166* **orm:** ensure Db.create always saves changes, not just findOrCreate
167
168### Breaking Changes
169
170* Policies returned from `CrudController.getReadPolicies` are not added to the `find` or `count` routes.
171 If you need to add a policy to both of these routes, override `CrudController.getQueryPolicies`.
172* Additionally, CrudController read policies are not added to mutate, create or destroy routes;
173 and mutate policies are not added to destroy routes.
174 If you need to add a policy to any of these, override `CrudController.getMutatePolicies`,
175 `CrudController.getCreatePolicies` or `CrudController.getDestroyPolicies`.
176* `express` is now a peer dependency, so you need to explicitly add it to your servers' package.json files.
177
178
179
180<a name="0.4.0"></a>
181## [0.4.0](https://github.com/miter-framework/miter/compare/0.3.0...0.4.0) (2017-07-26)
182
183### Features
184
185* **orm:** allow update queries to have includes if returning = true
186* **orm:** allow deeply-nested associations to be implicitly included in where query
187* **orm:** extract performCreate and performUpdate hooks in CrudController
188* **orm:** allow TransactionService.run to create detached transactions
189* **orm:** allow the Transaction decorator to create detached transactions
190* **test:** add unit tests for JwtBasePolicy
191* **injector:** add cache and deps options to providers that use factory functions
192* **injector:** allow metadata to be defined and injected into provide factory functions
193* **logger:** infer subsystem based on the name of the injectable the logger is injected into
194* **injector:** allow injectables to define custom factory function providers
195
196### Bug Fixes
197
198* **orm:** add implicit include only if the value is non-null and has no id
199
200### Breaking Changes
201
202* Server.logger is now private.
203 If you need an instance of a logger, you can dependency inject Logger or LoggerCore.
204 If you need to do this through code, you can manually grab the logger like this:
205 ```typescript
206 import { Miter, LoggerCore, Logger } from 'miter';
207 let server = await Miter.launch({ ... });
208 let logger: Logger = server.injector.resolveInjectable(LoggerCore).getSubsystem('my-subsystem');
209 ```
210* The Logger methods no longer accept a subsystem. This includes `log`, `trace`, `error`, `info`, `warn`, and `verbose`.
211 Instead of requiring the subsystem every time you need to log a message, the logger will use the name of the class the logger is injected into.
212 If you want to provide a specific subsystem, you can use the new Name decorator to override the default behavior.
213 In this example, the class is 'TransactionService' but the subsystem is 'transactions':
214 ```
215 @Injectable()
216 @Name('transactions')
217 export class TransactionService {
218 constructor(private logger: Logger) {
219 logger.info('This message will use my overridden subsystem name');
220 }
221 }
222 ```
223* The constructors for JwtBasePolicy, JwtPolicy, and RequiredJwtPolicy now require a LoggerCore instead of a logger.
224 If you provide your own implementation of one of these classes, make sure you update them to the correct type.
225* Injector.resolveDependency throws more errors.
226 Previously it silently swallowed some circular dependency errors, and it only logged falsey injections.
227 Now it will fail fast when one of these errors occur.
228
229
230
231<a name="0.3.0"></a>
232## [0.3.0](https://github.com/miter-framework/miter/compare/0.2.0...0.3.0) (2017-06-05)
233
234### Features
235
236* **build:** remove pre-commit hook that sometimes broke development pipeline
237* **build:** upgrade to typescript@2.3.0
238* **router:** add res.sendFiles as a replacement for express.static
239* **orm:** allow where queries to filter by details on associated tabled
240* **orm:** allow has-many associations in where queries
241* **orm:** allow nested includes using dot-notation
242* **tests:** add lots, lots more unit tests
243
244### Bug Fixes
245
246* **services:** only shut down services if they started successfully
247* **router:** add multiple routes on the same method in the order they are listed as decorators
248* **orm:** only attempt to connect to a sql server if the orm is not disabled
249* **orm:** transform included association results instead of simply copying the values
250* **tests:** add double quotes around the mocha test path to ensure all tests are included
251
252
253
254<a name="0.2.0"></a>
255## [0.2.0](https://github.com/miter-framework/miter/compare/0.1.4...0.2.0) (2017-05-05)
256
257### Features
258
259* **repository:** add README.md sample controller and project information
260* **repository:** add CHANGELOG.md to record changes between versions
261* **ci:** add .travis.yml and enable TravisCI builds
262* **tests:** add a unit testing framework and test the built-in services and utility functions
263* **middleware:** gracefully handle an empty array of middleware functions
264* **orm:** add the Sanitize decorator to ensure private data is removed before serializing it
265* **orm:** add Flag decorator as a shorthand for a non-null boolean column with "false" as the default value
266* **router:** allow users to mount controllers on other controllers
267* **router:** allow routes to await res.sendFile
268* **router:** allow controllers to dynamically change route policies at runtime
269* **crud-controller:** add findOne route to the CrudController
270
271### Bug Fixes
272
273* **repl-service:** only create the ReadLine interface if you inject the ReplService
274* **orm:** allow SQL and and or queries to be objects or arrays
275
276
277
278<a name="0.1.4"></a>
279## [0.1.4](https://github.com/miter-framework/miter/tree/0.1.4) (2017-04-05)
280
281Changes before this point in time have not been recorded here.