Add polyglot exports for deno#1177
Merged
Merged
Conversation
Contributor
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/CommunityToolkit/Aspire/main/eng/scripts/dogfood-pr.sh | bash -s -- 1177Or
iex "& { $(irm https://raw.githubusercontent.com/CommunityToolkit/Aspire/main/eng/scripts/dogfood-pr.ps1) } 1177" |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds Aspire ATS (polyglot app host) export support for the Deno hosting extension methods and introduces a TypeScript-based ValidationAppHost to exercise those exports.
Changes:
- Annotate Deno hosting extension methods with
AspireExport/AspireExportIgnoreand adjust signatures for ATS compatibility. - Add a new TypeScript polyglot
ValidationAppHostforCommunityToolkit.Aspire.Hosting.Deno. - Add a minimal Deno app (
apps/deno-validation) used by the validation host.
Reviewed changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/CommunityToolkit.Aspire.Hosting.Deno/DenoAppHostingExtensions.cs | Adds ATS export attributes and an ATS-compatible overload for package installation. |
| playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.Deno/ValidationAppHost/tsconfig.json | TypeScript compiler configuration for the validation app host. |
| playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.Deno/ValidationAppHost/package.json | NPM package definition/scripts for running/building the validation host. |
| playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.Deno/ValidationAppHost/package-lock.json | Lockfile for the validation host’s Node dependencies. |
| playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.Deno/ValidationAppHost/apps/deno-validation/package.json | Declares the sample Deno app workspace metadata. |
| playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.Deno/ValidationAppHost/apps/deno-validation/main.ts | Minimal Deno app entrypoint used for validation runs. |
| playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.Deno/ValidationAppHost/apps/deno-validation/deno.json | Deno task configuration for the sample app. |
| playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.Deno/ValidationAppHost/apphost.ts | Exercises addDenoApp/addDenoTask and fluent APIs via exported bindings. |
| playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.Deno/ValidationAppHost/apphost.run.json | Run profile/environment config for the validation host. |
| playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.Deno/ValidationAppHost/.aspire/settings.json | Declares the polyglot apphost entrypoint and referenced package. |
Files not reviewed (1)
- playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.Deno/ValidationAppHost/package-lock.json: Language not supported
Comments suppressed due to low confidence (2)
src/CommunityToolkit.Aspire.Hosting.Deno/DenoAppHostingExtensions.cs:35
nameandscriptPathare only null-checked. In this repo’s builder extension patterns, resource names and required string inputs are typically validated as non-empty/non-whitespace (e.g.,ArgumentException.ThrowIfNullOrWhiteSpace) to avoid creating resources with invalid identifiers or passing empty script paths that will fail at runtime.
ArgumentNullException.ThrowIfNull(builder);
ArgumentNullException.ThrowIfNull(name);
ArgumentNullException.ThrowIfNull(scriptPath);
src/CommunityToolkit.Aspire.Hosting.Deno/DenoAppHostingExtensions.cs:70
nameandtaskNameare only null-checked. Consider validating them as non-empty/non-whitespace (e.g.,ArgumentException.ThrowIfNullOrWhiteSpace) sodeno taskdoesn’t get invoked with an empty task name and resources aren’t created with invalid names.
ArgumentNullException.ThrowIfNull(builder);
ArgumentNullException.ThrowIfNull(name);
ArgumentNullException.ThrowIfNull(taskName);
You can also share your feedback on Copilot code review. Take the survey.
Comment on lines
+5
to
+6
| #pragma warning disable ASPIREATS001 // AspireExport is experimental | ||
|
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
878a016 to
a61d6ea
Compare
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
aaronpowell
approved these changes
Mar 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds AspireExport coverage and a matching TypeScript validation apphost for deno.