Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/Ui.Altair/AltairOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,11 @@ public class AltairOptions
/// Gets or sets a delegate that is called after all transformations of the Altair GraphQL UI page.
/// </summary>
public Func<AltairOptions, string, string> PostConfigure { get; set; } = (options, result) => result;

/// <summary>
/// Optional parameter to pin altair-static package version, e.g. "8.5.1".
/// Will be used to access a specific cdn version e.g.: "https://cdn.jsdelivr.net/npm/altair-static@8.5.1/build/dist".
/// If empty (default value), automatic version resolution is used where no version pinning is utilized (latest).
/// </summary>
public string AltairVersion { get; set; } = string.Empty;
}
6 changes: 5 additions & 1 deletion src/Ui.Altair/Internal/AltairPageModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,11 @@ public string Render()
.Replace("@Model.SubscriptionsEndPoint", StringEncode(_options.SubscriptionsEndPoint))
.Replace("@Model.Headers", JsonSerialize(headers))
.Replace("@Model.SubscriptionsPayload", JsonSerialize(_options.SubscriptionsPayload))
.Replace("@Model.Settings", JsonSerialize(_options.Settings));
.Replace("@Model.Settings", JsonSerialize(_options.Settings))
.Replace("@Model.AltairStaticBaseUrl",
string.IsNullOrEmpty(_options.AltairVersion)
? "//cdn.jsdelivr.net/npm/altair-static/build/dist"
: $"//cdn.jsdelivr.net/npm/altair-static@{_options.AltairVersion}/build/dist");

// Here, fully-qualified, absolute and relative URLs are supported for both the
// GraphQLEndPoint and SubscriptionsEndPoint. Those paths can be passed unmodified
Expand Down
10 changes: 5 additions & 5 deletions src/Ui.Altair/Internal/altair.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
<head>
<meta charset="utf-8">
<title>Altair</title>
<base href="//cdn.jsdelivr.net/npm/altair-static/build/dist/">
<base href="@Model.AltairStaticBaseUrl/">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="icon" type="image/x-icon" href="//cdn.jsdelivr.net/npm/altair-static/build/dist/favicon.ico">
<link href="//cdn.jsdelivr.net/npm/altair-static/build/dist/styles.css" rel="stylesheet" />
<link rel="icon" type="image/x-icon" href="@Model.AltairStaticBaseUrl/favicon.ico">
<link href="@Model.AltairStaticBaseUrl/styles.css" rel="stylesheet" />
</head>

<body>
Expand All @@ -31,8 +31,8 @@
</div>
</div>
</app-root>
<script type="module" src="//cdn.jsdelivr.net/npm/altair-static/build/dist/polyfills.js"></script>
<script type="module" src="//cdn.jsdelivr.net/npm/altair-static/build/dist/main.js"></script>
<script type="module" src="@Model.AltairStaticBaseUrl/polyfills.js"></script>
<script type="module" src="@Model.AltairStaticBaseUrl/main.js"></script>

<script type="module">
function getSubscriptionsEndPoint() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ namespace GraphQL.Server.Ui.Altair
public class AltairOptions
{
public AltairOptions() { }
public string AltairVersion { get; set; }
public string GraphQLEndPoint { get; set; }
public System.Collections.Generic.Dictionary<string, string>? Headers { get; set; }
public System.Func<GraphQL.Server.Ui.Altair.AltairOptions, System.IO.Stream> IndexStream { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ namespace GraphQL.Server.Ui.Altair
public class AltairOptions
{
public AltairOptions() { }
public string AltairVersion { get; set; }
public string GraphQLEndPoint { get; set; }
public System.Collections.Generic.Dictionary<string, string>? Headers { get; set; }
public System.Func<GraphQL.Server.Ui.Altair.AltairOptions, System.IO.Stream> IndexStream { get; set; }
Expand Down
Loading