angel_framework 2.0.0-alpha.10
angel_framework: ^2.0.0-alpha.10 copied to clipboard
A high-powered HTTP server with DI, routing and more. When combined with the other packages in the Angel ecosystem, this package can be used to make robust application servers for API's, traditional s [...]
2.0.0-alpha.10 #
- All calls to
Service.parseIdare now affixed with the<Id>argument. - Added
urigetter toAngelHttp. - The default for
parseQuerynow wraps query parameters innew Map<String, dynamic>.from. This resolves a bug inpackage:angel_validate.
2.0.0-alpha.9 #
- Add
Service.map.
2.0.0-alpha.8 #
- No longer export HTTP-specific code from
angel_framework.dart. An import ofimport 'package:angel_framework/http.dart';will be necessary in most cases now.
2.0.0-alpha.7 #
- Force a tigher contract on services. They now must return
Dataon all methods except forindex, which returns aList<Data>.
2.0.0-alpha.6 #
- Allow passing a custom
ContainertohandleContainedand co.
2.0.0-alpha.5 #
MapServicemethods now explicitly returnMap<String, dynamic>.
2.0.0-alpha.4 #
- Renamed
waterfalltochain. - Renamed
Routable.servicetoRoutable.findService.- Also
Routable.findHookedService.
- Also
2.0.0-alpha.3 #
- Added
<Id, Data>type parameters toService. HookedServicenow follows suit, and takes a third parameter, pointing to the inner service.Routable.usenow uses the generic parameters added toService.- Added generic usage to
HookedServiceListener, etc. - All service methods take
Map<String, dynamic>asparamsnow.
2.0.0-alpha.2 #
- Added
ResponseContext.detach.
2.0.0-alpha.1 #
- Removed
Angel.injectEncoders. - Added
Providers.toJson. - Moved
Providers.graphqltoProviders.graphQL. Angel.optimizeForProductionno longer callspreInject, as it does not need to.- Rename
ResponseContext.enableBuffertoResponseContext.useBuffer.
2.0.0-alpha #
- Removed
random_stringdependency. - Moved reflection to
package:angel_container. - Upgraded
package:fileto5.0.0. ResponseContext.sendFilenow usespackage:file.- Abandon
ContentTypein favor ofMediaType. - Changed view engine to use
Map<String, dynamic>. - Remove dependency on
package:json_godby default. - Remove dependency on
package:dart2_constant. - Moved
lib/hooks.dartintopackage:angel_hooks. - Moved
TypedServiceintopackage:angel_typed_service. - Completely removed the
AngelBaseclass. - Removed all
@deprecatedsymbols. Service.toIdwas renamed toService.parseId; it also now uses its single type argument to determine how to parse a value.- In addition, this method was also made
static.
- In addition, this method was also made
RequestContextandResponseContextare now generic, and take a single type argument pointing to the underlying request/response type, respectively.RequestContext.ioandResponseContext.ioare now permanently gone.HttpRequestContextImplandHttpResponseContextImplwere renamed toHttpRequestContextandHttpResponseContext.- Lazy-parsing request bodies is now the default;
Angel.lazyParseBodieswas replaced withAngel.eagerParseRequestBodies. Angel.storeOriginalBuffer->Angel.storeRawRequestBuffers.- The methods
lazyBody,lazyFiles, andlazyOriginalBufferonResponseContextwere all replaced withparseBody,parseUploadedFiles, andparseRawRequestBuffer, respectively. - Removed the synchronous equivalents of the above methods (
body,files, andoriginalBuffer), as well asquery. - Removed
Angel.injectionsandRequestContext.injections. - Removed
Angel.injectandRequestContext.inject. - Removed a dependency on
package:pool, which also meant removingAngelHttp.throttle. - Remove the
RequestMiddlewaretypedef; from now on, one should useResponseContext.endexclusively to close responses. waterfallwill now only acceptRequestHandler.Routable, and all of its subclasses, now extendRouter<RequestHandler>, and therefore only take routes in the form ofFutureOr myFunc(RequestContext, ResponseContext res).@Middlewarenow takes anIterableofRequestHandlers.@Expose.pathnow must be aString, not just anyPattern.@Expose.middlewarenow takesIterable<RequestHandler>, instead of justList.createDynamicHandlerwas renamed toioc, and is now used to run IoC-aware handlers in a type-safe manner.RequestContext.paramsis now aMap<String, dynamic>, rather than just aMap.- Removed
RequestContext.grab. - Removed
RequestContext.properties. - Removed the defunct
debugproperty where it still existed. Routable.usenow only accepts aService.- Removed
Angel.createZoneForRequest. - Removed
Angel.defaultZoneCreator. - Added all flags to the
Angelconstructor, ex.Angel.eagerParseBodies. - Fix a bug where synchronous errors in
handleRequestwould not be caught. AngelHttp.useZonenow defaults tofalse.ResponseContextnow starts in streaming mode by default; the response buffer is opt-in, as in many cases it is unnecessary and slows down response time.ResponseContext.streamingwas replaced byResponseContext.isBuffered.- Made
LockableBytesBuilderpublic. - Removed the now-obsolete
ResponseContext.willCloseItself. - Removed
ResponseContext.dispose. - Removed the now-obsolete
ResponseContext.end. - Removed the now-obsolete
ResponseContext.releaseCorrespondingRequest. preInjectnow takes aReflectoras its second argument.Angel.reflectordefaults toconst EmptyReflector(), disabling reflection out-of-the-box.