C# style object initialisation in TypeScript

@RoutingKey(‘abc’) class Foo { public name: string | undefined; public age: number | undefined; public gender: string | undefined; constructor(init?: Partial<Foo>) { if (init) { Object.assign(this, init); } } } const foo = new Foo({ name: ‘something’ }); https://stackoverflow.com/a/72028371/1515209 Read more →

Profile webpack

setup install https://github.com/stephencookdev/speed-measure-webpack-plugin npm install –save-dev speed-measure-webpack-plugin open the webpack config file – for me this was webpack.config.js the file contained the following: module.exports = { // … }; which is changed to const SpeedMeasurePlugin = require(“speed-measure-webpack-plugin”); const smp = new SpeedMeasurePlugin(); module.exports = smp.wrap({ // … }); results for me the biggest win I had this time was with… Read more →

Testing quality gates

Fail Fast Aspiration We achieve a level of automation that would give enough confidence to allow the majority of builds to automatically deploy (via the release pipeline) directly into production. Quality Gate 1: Developer Unit Tests All directly executable behaviour should be fully covered by unit tests, e.g. controller actions public methods shared functions extension methods etc. Unit tests should… Read more →

.net core catch all exception handler

app.UseExceptionHandler(options => { options.Run( async context => { var error = context.Features.Get<IExceptionHandlerFeature>(); if (error is object) { Log.Error( “EXCEPTION {method} {url} {query} => {exception}”, context.Request.Method, context.Request.Path.Value, context.Request.QueryString.Value, error.Error); } }); }); Read more →

OAuth2 scopes vs Roles

Scopes are typically used when an external application wants to gain access to the user’s data via an exposed API. They determine what the client application can do. Role (or group) based access is typically used within an application to determine what a user can do. https://stackoverflow.com/a/60943090/1515209 See also: https://www.linkedin.com/pulse/oauth-roles-scopes-pablo-cibraro/?articleId=6675773770986336256 Read more →