Once you've created a project and installed dependencies with npm install
(or pnpm install
or yarn
), start a development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
Home Page: https://timdeschryver.dev
I've read your blog The simplicity of ASP.NET Endpoints. It's great but I found a little mistake in your first example about Controller Api, as the following picture.
I thinks it's just a copy-and-paste mistake that command
in customer.Block(command.Reason);
should be blockCustomer
.
Hi there, this is more a heads up than anything. I'm sure if the issue gets fixed that your article will be sound once again.
Would you be willing to share which versions you used at the time?
This is in reference to the following article: https://github.com/timdeschryver/timdeschryver.dev/blob/main/content/blog/how-to-test-svelte-components/index.md
Hi Tim,
Im using Google Chrome latest version on Windows 10.
I found this article a little difficult to read due to the css. It was much easier to just go to the github markdown file. Some of the css is being overlayed, and there appears to have no padding on the sides.
another blog post about angular directives, it was hard to look at the embedded stack blitz
Let's implement a naive feature flag, refactor the code with the .NET Feature Management API, and to top things off, the Azure Feature Management Feature is thrown into the mix to tweak the feature flags dynamically without having an impact on the users.
https://timdeschryver.dev/blog/feature-flags-in-net-from-simple-to-more-advanced
By using a Cypress task it's possible to run code JavaScript code in Node.js. We can leverage this API to reseed a database with data we're in control of. Having control over the data allows us to write specific and isolated scenarios to run tests against.
https://timdeschryver.dev/blog/reseed-your-database-with-cypress
Writing and publishing a dev.to blog post directly within VSCode
https://timdeschryver.dev/blog/writing-a-devto-blog-post-with-vscode
Creating a wrapper around the Application Insights SDK to easily consume it in an Angular application
https://timdeschryver.dev/blog/configuring-azure-application-insights-in-an-angular-application
Leverage the Playwright test.step function to divide your tests into logical steps. These steps create a well-organized summary in the Playwright report and have the benefit that tests become more readable and easier to maintain, especially when a failed test is displayed in the Playwright report.
https://timdeschryver.dev/blog/keep-your-playwright-tests-structured-with-steps
How to manage nested state with multiple NgRx entity adapters.
A summary of why and how you should refactor your HTTP clients to the typed HTTP client version in .NET.
https://timdeschryver.dev/blog/refactor-your-net-http-clients-to-typed-http-clients
Some small changes that are needed to create application instances in Functional Tests for Minimal Web APIs
https://timdeschryver.dev/blog/refactor-functional-tests-to-support-minimal-web-apis
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates are awaiting their schedule. Click on a checkbox to get an update now.
@playwright/test
, playwright
)@typescript-eslint/eslint-plugin
, @typescript-eslint/parser
)@sveltejs/adapter-node
, actions/checkout
, actions/setup-node
).github/workflows/azure-static-web-apps-salmon-rock-0fb035b03.yml
actions/checkout v3
Azure/static-web-apps-deploy v1
actions/checkout v3
actions/setup-node v3
actions/upload-artifact v3
Azure/static-web-apps-deploy v1
.node-version
node 20
package.json
@azure/static-web-apps-cli 1.1.7
@playwright/test 1.41.2
@squoosh/lib 0.5.3
@sveltejs/adapter-auto 3.1.1
@sveltejs/adapter-node 4.0.1
@sveltejs/adapter-static 3.0.1
@sveltejs/adapter-vercel 5.1.0
@sveltejs/kit 2.5.2
@sveltejs/vite-plugin-svelte 3.0.2
@testing-library/svelte 4.1.0
@types/marked 6.0.0
@typescript-eslint/eslint-plugin 7.0.1
@typescript-eslint/parser 7.0.1
axe-playwright 2.0.1
canvas-confetti 1.9.2
cpy-cli 5.0.0
dotenv-extended 2.9.0
eslint 8.57.0
eslint-config-prettier 9.1.0
eslint-plugin-svelte 2.35.1
front-matter 4.0.2
jsdom 24.0.0
lint-staged 15.2.2
marked 12.0.1
node-fetch 3.3.2
playwright 1.41.2
prettier 3.2.5
prettier-plugin-svelte 3.2.2
rimraf 5.0.5
shiki 1.1.7
svelte 4.2.12
svelte-check 3.6.6
tslib 2.6.2
typescript 5.4.2
vite 5.1.5
vite-plugin-restart 0.4.0
vite-svg-loader 5.1.0
vitest 1.2.2
node ^20.0.0
How to register the OpenTelemetry web packages to automatically create traces and send them to a backend. The result is a helpful dashboard containing insights about the Angular application.
https://timdeschryver.dev/blog/adding-opentelemetry-to-an-angular-application
A fix for "Response status code does not indicate success: 401 (Unauthorized)"
https://timdeschryver.dev/blog/using-the-net-cli-to-restore-packages-from-a-private-nuget-feed
NgRx isn't what it used to be. Take advantage of the updated APIs to improve your code base. The result is a more maintainable code base that is easier to read and navigate.
https://timdeschryver.dev/blog/you-should-take-advantage-of-the-improved-ngrx-apis
Using SQL Bulk Copy to have a huge performance gain
https://timdeschryver.dev/blog/faster-sql-bulk-inserts-with-csharp
Hi Tim,
In this article angular-build-once-deploy-to-multiple-environments you describe how to load config at runtime.
In some package module, i need to pass a config through the forRoot method. Do you have an elegant way to populate the forRoot() method with a runtime configuration ?
Creating a pipeline to run TypeScript Playwright tests in Azure DevOps.
https://timdeschryver.dev/blog/playwright-in-an-azure-devops-pipeline
Leverage the power of Minimal APIs to treat your endpoint as the application layer. This has several benefits, but I find the biggest one being the simplicity of it.
https://timdeschryver.dev/blog/treat-your-net-minimal-api-endpoint-as-the-application-layer
Article detail is loaded.
Article detail is not loaded, getting a error message:
500
Cannot convert null or undefined to object
And some console errors:
0: Cannot convert null or undefined to object
client.cf895b4f.js (1,17176)
0: Object doesn't support property or method 'addEventListener'
client.cf895b4f.js (1,9095)
SCRIPT1028: SCRIPT1028: Expected identifier, string or number
2c2e4caa-c199-466f-9bb2-851db618139a (1,140260)
20: Object doesn't support property or method 'addEventListener'
client.cf895b4f.js (1,9095)
/
/
/
/
In this post we'll create a custom Playwright matcher to validate the shape of the response body using the zod library. This way, we make sure that the contract between the front-end application and the API is valid.
https://timdeschryver.dev/blog/playwright-api-testing-with-zod
A simple workaround to use environment variables in SvelteKit
https://timdeschryver.dev/blog/environment-variables-with-sveltekit
How I write my Angular Component Tests with the Angular Testing Library.
https://timdeschryver.dev/blog/getting-the-most-value-out-of-your-angular-component-tests
Challenging the status quo with some thoughts on the new .NET Minimal Web API to keep code simple
https://timdeschryver.dev/blog/maybe-its-time-to-rethink-our-project-structure-with-dot-net-6
Before the application gets access to the location of the user, the user receives a prompt asking for permission to share their location. This is not different in Playwright tests. In this blog post, we see how to handle this prompt for your Playwright tests.
https://timdeschryver.dev/blog/using-geolocation-in-playwright-tests
Entity Framework 8 brings a new feature allowing us to execute and return unmapped types from SQL select statements. In this blog post we'll take a quick look at how we can accomplish this, and why this is an important tool to have in your toolkit.
Did you know that you could quickly set up a mocked API with the use of zod-fixture and MSW?
https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses
The new Angular Material release brings us a new CDK clipboard module to interact with the clipboard. In this post, we'll explore how to use the new Clipboard CDK by going over some examples.
https://timdeschryver.dev/blog/use-the-new-angular-clipboard-cdk-to-interact-with-the-clipboard
Utilizing a matrix within your GitHub workflow to create a "test shard matrix" is a major improvement to your CI. This practice can cut the time in half (or better) to run your Playwright test suite.
Let's migrate an Angular application using @ngModules to the standalone API. For this task, we use the automatic schematic that's available in Angular v15.2.0-next.2. We also take a look at the manual steps that are required to fully migrate the application to use the new functional APIs.
https://timdeschryver.dev/blog/i-tried-the-angular-standalone-migration-and-here-is-the-result
Weβre going to take a look at how we can keep the state in sync when a user has multiple tabs open.
https://timdeschryver.dev/blog/keeping-browser-tabs-in-sync-using-localstorage-ngrx-and-rxjs
NgRx Selectors with Props
Angular directives allow us to extend components without changing their internal code. This is useful to bring a consistent UX to 3rd party components. The directive can be configured to always be applicable, or can be used in an opt-in or opt-out basis.
https://timdeschryver.dev/blog/use-angular-directives-to-extend-components-that-you-dont-own
The Angular Component pearl-lullaby (v9.0.0-rc.0) release introduces the second official @angular/component component, a Google Maps component. In this post, we take a look at getting started with the Google Maps component.
https://timdeschryver.dev/blog/google-maps-as-an-angular-component
I keep being surprised by how reactive Svelte feels. In this article, we take a glance at the Svelte internals to see how Svelte accomplishes this. This is important if we want to use RxJS in Svelte.
https://timdeschryver.dev/blog/unlocking-reactivity-with-svelte-and-rxjs
An intro to code coverage, how to read it, and how to make use of it in your workflow.
Hi Tim,
First let me thank you for sharing your thoughts and experiments on technology in your blog. It's interesting to read. π
Now the issue: the rss file accessible at https://timdeschryver.dev/blog/rss.xml seems to include the full content of every article present on your blog. I'm using Inoreader (an online rss aggregator) to follow your blog, and the last entry it succeded to retrieve was "Testing your localization with Playwright" (october 2022). I guess a change in the rss feed generation was introduced after that, causing the file size to increase dramatically.
Taking a closer look at the capability of the new output caching middleware in .NET 7
https://timdeschryver.dev/blog/exploring-the-new-output-caching-middleware
Concurrency in recurrent jobs can cause race condition issues. However, we can prevent such problems by queuing new jobs when the same job is still pending. This approach helps to manage the job execution and avoids issues that may arise when multiple instances of the same job are active at the same time. In this post we'll see how we can ensure that only one instance of the job is running at any given time, thus preventing conflicts and ensuring a reliable job execution.
https://timdeschryver.dev/blog/prevent-a-hangfire-job-from-running-when-it-is-already-active
The things I looked up while learning the template-driven way
https://timdeschryver.dev/blog/a-practical-guide-to-angular-template-driven-forms
Hi. I was trying to run the full example at the bottom of https://timdeschryver.dev/blog/google-maps-as-an-angular-component and I ran into the same issue as described in the following stack overflow article:
Are you aware of this issue?
I was using angular 12.
Playwright (v1.31) introduces a new feature to make the authentication process easier. This approach unifies the authentication flow with the rest of the test cases, and more importantly makes it possible to test with different user roles.
https://timdeschryver.dev/blog/revamped-authentication-with-playwright
Using the global setup feature from Playwright to authenticate a test user and reuse its authentication state throughout your test suite.
https://timdeschryver.dev/blog/fast-and-easy-authentication-with-playwright
If you don't watch out your C# application might suddenly perform badly. As a solution, we can limit the number of operations with a LINQ Join.
https://timdeschryver.dev/blog/make-your-csharp-applications-faster-with-linq-joins
In our quest to build a twelve-factor app where we build once and deploy to multiple environment we encountered some problems, but we managed to solve them. Read here how we did it.
https://timdeschryver.dev/blog/angular-build-once-deploy-to-multiple-environments
How to use functional testing to have confidence in the code you ship.
https://timdeschryver.dev/blog/how-to-test-your-csharp-web-api
Using MSW to mock your server in an Angular project
https://timdeschryver.dev/blog/using-msw-in-an-angular-project
Using the Azure DevOps API to automatically add reviewers to an Azure DevOp Pull Request from within the CI pipeline.
https://timdeschryver.dev/blog/invoke-the-azure-devops-api-from-within-your-azure-devops-pipeline
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.