Skip to content

Add polyglot exports for deno#1177

Merged
aaronpowell merged 5 commits into
mainfrom
dapine/polyglot-export-deno
Mar 31, 2026
Merged

Add polyglot exports for deno#1177
aaronpowell merged 5 commits into
mainfrom
dapine/polyglot-export-deno

Conversation

@IEvangelist

Copy link
Copy Markdown
Contributor

Adds AspireExport coverage and a matching TypeScript validation apphost for deno.

Copilot AI review requested due to automatic review settings March 18, 2026 15:26
@github-actions

github-actions Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/CommunityToolkit/Aspire/main/eng/scripts/dogfood-pr.sh | bash -s -- 1177

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/CommunityToolkit/Aspire/main/eng/scripts/dogfood-pr.ps1) } 1177"

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/AspireExportIgnore and adjust signatures for ATS compatibility.
  • Add a new TypeScript polyglot ValidationAppHost for CommunityToolkit.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

  • name and scriptPath are 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

  • name and taskName are only null-checked. Consider validating them as non-empty/non-whitespace (e.g., ArgumentException.ThrowIfNullOrWhiteSpace) so deno task doesn’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

IEvangelist and others added 4 commits March 30, 2026 09:48
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>
@IEvangelist IEvangelist force-pushed the dapine/polyglot-export-deno branch from 878a016 to a61d6ea Compare March 30, 2026 14:51
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@aaronpowell aaronpowell merged commit f1a290d into main Mar 31, 2026
347 of 362 checks passed
@aaronpowell aaronpowell deleted the dapine/polyglot-export-deno branch March 31, 2026 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants