Reduce public surface area of some APIs.
- Change `DefaultRazorEngineBuilder.DesignTime` to be getter only - Make `DocumentClassifierPassBase.TargetExtensions` private. #1510
This commit is contained in:
parent
d891fae4a9
commit
45fad171a6
|
|
@ -8,8 +8,9 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
{
|
{
|
||||||
internal class DefaultRazorEngineBuilder : IRazorEngineBuilder
|
internal class DefaultRazorEngineBuilder : IRazorEngineBuilder
|
||||||
{
|
{
|
||||||
public DefaultRazorEngineBuilder()
|
public DefaultRazorEngineBuilder(bool designTime)
|
||||||
{
|
{
|
||||||
|
DesignTime = designTime;
|
||||||
Features = new List<IRazorEngineFeature>();
|
Features = new List<IRazorEngineFeature>();
|
||||||
Phases = new List<IRazorEnginePhase>();
|
Phases = new List<IRazorEnginePhase>();
|
||||||
}
|
}
|
||||||
|
|
@ -18,7 +19,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
|
||||||
public IList<IRazorEnginePhase> Phases { get; }
|
public IList<IRazorEnginePhase> Phases { get; }
|
||||||
|
|
||||||
public bool DesignTime { get; set; }
|
public bool DesignTime { get; }
|
||||||
|
|
||||||
public RazorEngine Build()
|
public RazorEngine Build()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -11,15 +11,14 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
public abstract class DocumentClassifierPassBase : IntermediateNodePassBase, IRazorDocumentClassifierPass
|
public abstract class DocumentClassifierPassBase : IntermediateNodePassBase, IRazorDocumentClassifierPass
|
||||||
{
|
{
|
||||||
private static readonly ICodeTargetExtension[] EmptyExtensionArray = new ICodeTargetExtension[0];
|
private static readonly ICodeTargetExtension[] EmptyExtensionArray = new ICodeTargetExtension[0];
|
||||||
|
private ICodeTargetExtension[] _targetExtensions;
|
||||||
|
|
||||||
protected abstract string DocumentKind { get; }
|
protected abstract string DocumentKind { get; }
|
||||||
|
|
||||||
protected ICodeTargetExtension[] TargetExtensions { get; private set; }
|
|
||||||
|
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
var feature = Engine.Features.OfType<IRazorTargetExtensionFeature>();
|
var feature = Engine.Features.OfType<IRazorTargetExtensionFeature>();
|
||||||
TargetExtensions = feature.FirstOrDefault()?.TargetExtensions.ToArray() ?? EmptyExtensionArray;
|
_targetExtensions = feature.FirstOrDefault()?.TargetExtensions.ToArray() ?? EmptyExtensionArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected sealed override void ExecuteCore(RazorCodeDocument codeDocument, DocumentIntermediateNode documentNode)
|
protected sealed override void ExecuteCore(RazorCodeDocument codeDocument, DocumentIntermediateNode documentNode)
|
||||||
|
|
@ -85,9 +84,9 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
{
|
{
|
||||||
return CodeTarget.CreateDefault(codeDocument, options, (builder) =>
|
return CodeTarget.CreateDefault(codeDocument, options, (builder) =>
|
||||||
{
|
{
|
||||||
for (var i = 0; i < TargetExtensions.Length; i++)
|
for (var i = 0; i < _targetExtensions.Length; i++)
|
||||||
{
|
{
|
||||||
builder.TargetExtensions.Add(TargetExtensions[i]);
|
builder.TargetExtensions.Add(_targetExtensions[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
ConfigureTarget(builder);
|
ConfigureTarget(builder);
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
|
||||||
IList<IRazorEnginePhase> Phases { get; }
|
IList<IRazorEnginePhase> Phases { get; }
|
||||||
|
|
||||||
bool DesignTime { get; set; }
|
bool DesignTime { get; }
|
||||||
|
|
||||||
RazorEngine Build();
|
RazorEngine Build();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
|
||||||
public static RazorEngine Create(Action<IRazorEngineBuilder> configure)
|
public static RazorEngine Create(Action<IRazorEngineBuilder> configure)
|
||||||
{
|
{
|
||||||
var builder = new DefaultRazorEngineBuilder();
|
var builder = new DefaultRazorEngineBuilder(designTime: false);
|
||||||
AddDefaults(builder);
|
AddDefaults(builder);
|
||||||
AddRuntimeDefaults(builder);
|
AddRuntimeDefaults(builder);
|
||||||
configure?.Invoke(builder);
|
configure?.Invoke(builder);
|
||||||
|
|
@ -32,10 +32,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
|
||||||
public static RazorEngine CreateDesignTime(Action<IRazorEngineBuilder> configure)
|
public static RazorEngine CreateDesignTime(Action<IRazorEngineBuilder> configure)
|
||||||
{
|
{
|
||||||
var builder = new DefaultRazorEngineBuilder()
|
var builder = new DefaultRazorEngineBuilder(designTime: true);
|
||||||
{
|
|
||||||
DesignTime = true,
|
|
||||||
};
|
|
||||||
AddDefaults(builder);
|
AddDefaults(builder);
|
||||||
AddDesignTimeDefaults(builder);
|
AddDesignTimeDefaults(builder);
|
||||||
configure?.Invoke(builder);
|
configure?.Invoke(builder);
|
||||||
|
|
@ -44,7 +41,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
|
||||||
public static RazorEngine CreateEmpty(Action<IRazorEngineBuilder> configure)
|
public static RazorEngine CreateEmpty(Action<IRazorEngineBuilder> configure)
|
||||||
{
|
{
|
||||||
var builder = new DefaultRazorEngineBuilder();
|
var builder = new DefaultRazorEngineBuilder(designTime: false);
|
||||||
configure?.Invoke(builder);
|
configure?.Invoke(builder);
|
||||||
return builder.Build();
|
return builder.Build();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
public void Build_AddsFeaturesAndPhases()
|
public void Build_AddsFeaturesAndPhases()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var builder = new DefaultRazorEngineBuilder();
|
var builder = new DefaultRazorEngineBuilder(designTime: false);
|
||||||
|
|
||||||
builder.Features.Add(Mock.Of<IRazorEngineFeature>());
|
builder.Features.Add(Mock.Of<IRazorEngineFeature>());
|
||||||
builder.Features.Add(Mock.Of<IRazorEngineFeature>());
|
builder.Features.Add(Mock.Of<IRazorEngineFeature>());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue