Skip to content

Commit 377294c

Browse files
committed
removing extra unneeded files
1 parent d4c22db commit 377294c

File tree

2 files changed

+30
-18
lines changed

2 files changed

+30
-18
lines changed

src/Cli/func/Actions/LocalActions/CreateFunctionAction.cs

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ internal class CreateFunctionAction : BaseAction
2828
private readonly IUserInputHandler _userInputHandler;
2929
private readonly InitAction _initAction;
3030
private readonly ITemplatesManager _templatesManager;
31-
private readonly Lazy<IEnumerable<Template>> _templates;
32-
private readonly Lazy<IEnumerable<NewTemplate>> _newTemplates;
33-
private readonly Lazy<IEnumerable<UserPrompt>> _userPrompts;
31+
private IEnumerable<Template> _templates;
32+
private IEnumerable<NewTemplate> _newTemplates;
33+
private IEnumerable<UserPrompt> _userPrompts;
3434
private WorkerRuntime _workerRuntime;
3535

3636
public CreateFunctionAction(ITemplatesManager templatesManager, ISecretsManager secretsManager, IContextHelpManager contextHelpManager)
@@ -40,9 +40,6 @@ public CreateFunctionAction(ITemplatesManager templatesManager, ISecretsManager
4040
_contextHelpManager = contextHelpManager;
4141
_initAction = new InitAction(_templatesManager, _secretsManager);
4242
_userInputHandler = new UserInputHandler(_templatesManager);
43-
_templates = new Lazy<IEnumerable<Template>>(() => { return _templatesManager.Templates.Result; });
44-
_newTemplates = new Lazy<IEnumerable<NewTemplate>>(() => { return _templatesManager.NewTemplates.Result; });
45-
_userPrompts = new Lazy<IEnumerable<UserPrompt>>(() => { return _templatesManager.UserPrompts.Result; });
4643
}
4744

4845
public string Language { get; set; }
@@ -113,8 +110,18 @@ public override async Task RunAsync()
113110
return;
114111
}
115112

113+
// Ensure that the _templates are loaded before we proceed
114+
_templates = await _templatesManager.Templates;
115+
116116
await UpdateLanguageAndRuntime();
117117

118+
// Depends on UpdateLanguageAndRuntime to set 'Language'
119+
if (IsNewPythonProgrammingModel())
120+
{
121+
_newTemplates = await _templatesManager.NewTemplates;
122+
_userPrompts = await _templatesManager.UserPrompts;
123+
}
124+
118125
if (WorkerRuntimeLanguageHelper.IsDotnet(_workerRuntime) && !Csx)
119126
{
120127
if (string.IsNullOrWhiteSpace(TemplateName))
@@ -148,7 +155,7 @@ public override async Task RunAsync()
148155
FileName = "function_app.py";
149156
}
150157

151-
var userPrompt = _userPrompts.Value.First(x => string.Equals(x.Id, "app-selectedFileName", StringComparison.OrdinalIgnoreCase));
158+
var userPrompt = _userPrompts.First(x => string.Equals(x.Id, "app-selectedFileName", StringComparison.OrdinalIgnoreCase));
152159
while (!_userInputHandler.ValidateResponse(userPrompt, FileName))
153160
{
154161
_userInputHandler.PrintInputLabel(userPrompt, PySteinFunctionAppPy);
@@ -185,7 +192,12 @@ public override async Task RunAsync()
185192
providedInputs[GetFileNameParamId] = FileName;
186193
}
187194

188-
var template = _newTemplates.Value.FirstOrDefault(t => string.Equals(t.Name, TemplateName, StringComparison.CurrentCultureIgnoreCase) && string.Equals(t.Language, Language, StringComparison.CurrentCultureIgnoreCase));
195+
var template = _newTemplates.FirstOrDefault(t => string.Equals(t.Name, TemplateName, StringComparison.CurrentCultureIgnoreCase) && string.Equals(t.Language, Language, StringComparison.CurrentCultureIgnoreCase));
196+
197+
if (template is null)
198+
{
199+
throw new CliException($"Can't find template \"{TemplateName}\" in \"{Language}\"");
200+
}
189201

190202
var templateJob = template.Jobs.Single(x => x.Type.Equals(jobName, StringComparison.OrdinalIgnoreCase));
191203

@@ -304,18 +316,19 @@ public async Task UpdateLanguageAndRuntime()
304316
if (_workerRuntime == WorkerRuntime.None)
305317
{
306318
SelectionMenuHelper.DisplaySelectionWizardPrompt("language");
307-
Language = SelectionMenuHelper.DisplaySelectionWizard(_templates.Value.Select(t => t.Metadata.Language).Where(l => !l.Equals("python", StringComparison.OrdinalIgnoreCase)).Distinct());
319+
Language = SelectionMenuHelper.DisplaySelectionWizard(_templates.Select(t => t.Metadata.Language).Where(l => !l.Equals("python", StringComparison.OrdinalIgnoreCase)).Distinct());
308320
_workerRuntime = WorkerRuntimeLanguageHelper.SetWorkerRuntime(_secretsManager, Language);
309321
}
310322
else if (!WorkerRuntimeLanguageHelper.IsDotnet(_workerRuntime) || Csx)
311323
{
312324
var languages = WorkerRuntimeLanguageHelper.LanguagesForWorker(_workerRuntime);
313-
var displayList = _templates.Value
325+
var displayList = _templates?
314326
.Select(t => t.Metadata.Language)
315327
.Where(l => languages.Contains(l, StringComparer.OrdinalIgnoreCase))
316328
.Distinct(StringComparer.OrdinalIgnoreCase)
317329
.ToArray();
318-
if (displayList.Length == 1)
330+
331+
if (displayList?.Length == 1)
319332
{
320333
Language = displayList.First();
321334
}
@@ -346,15 +359,15 @@ private IEnumerable<Template> GetLanguageTemplates(string templateLanguage, bool
346359
if (IsNewNodeJsProgrammingModel(_workerRuntime) ||
347360
(forNewModelHelp && (Languages.TypeScript.EqualsIgnoreCase(templateLanguage) || Languages.JavaScript.EqualsIgnoreCase(templateLanguage))))
348361
{
349-
return _templates.Value.Where(t => t.Id.EndsWith("-4.x") && t.Metadata.Language.Equals(templateLanguage, StringComparison.OrdinalIgnoreCase));
362+
return _templates.Where(t => t.Id.EndsWith("-4.x") && t.Metadata.Language.Equals(templateLanguage, StringComparison.OrdinalIgnoreCase));
350363
}
351364
else if (_workerRuntime == WorkerRuntime.Node)
352365
{
353366
// Ensuring that we only show v3 templates for node when the user has not opted into the new model
354-
return _templates.Value.Where(t => !t.Id.EndsWith("-4.x") && t.Metadata.Language.Equals(templateLanguage, StringComparison.OrdinalIgnoreCase));
367+
return _templates.Where(t => !t.Id.EndsWith("-4.x") && t.Metadata.Language.Equals(templateLanguage, StringComparison.OrdinalIgnoreCase));
355368
}
356369

357-
return _templates.Value.Where(t => t.Metadata.Language.Equals(templateLanguage, StringComparison.OrdinalIgnoreCase));
370+
return _templates.Where(t => t.Metadata.Language.Equals(templateLanguage, StringComparison.OrdinalIgnoreCase));
358371
}
359372

360373
private IEnumerable<string> GetTriggerNamesFromNewTemplates(string templateLanguage, bool forNewModelHelp = false)
@@ -366,7 +379,7 @@ private IEnumerable<NewTemplate> GetNewTemplates(string templateLanguage, bool f
366379
{
367380
if (IsNewPythonProgrammingModel() || (Languages.Python.EqualsIgnoreCase(templateLanguage) && forNewModelHelp))
368381
{
369-
return _newTemplates.Value.Where(t => t.Language.Equals(templateLanguage, StringComparison.OrdinalIgnoreCase));
382+
return _newTemplates.Where(t => t.Language.Equals(templateLanguage, StringComparison.OrdinalIgnoreCase));
370383
}
371384

372385
throw new CliException("The new version of templates are only supported for Python.");
@@ -514,9 +527,9 @@ private bool IsNewNodeJsProgrammingModel(WorkerRuntime workerRuntime)
514527
{
515528
if (workerRuntime == WorkerRuntime.Node)
516529
{
517-
if (FileSystemHelpers.FileExists(Constants.PackageJsonFileName))
530+
if (FileSystemHelpers.FileExists(PackageJsonFileName))
518531
{
519-
var packageJsonData = FileSystemHelpers.ReadAllTextFromFile(Constants.PackageJsonFileName);
532+
var packageJsonData = FileSystemHelpers.ReadAllTextFromFile(PackageJsonFileName);
520533
var packageJson = JsonConvert.DeserializeObject<JToken>(packageJsonData);
521534
var funcPackageVersion = packageJson["dependencies"]["@azure/functions"];
522535
if (funcPackageVersion != null && new Regex("^[^0-9]*4").IsMatch(funcPackageVersion.ToString()))

test/TestFunctionApps/TestDotnet8IsolatedProject/TestDotnet8IsolatedProject.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
<OutputType>Exe</OutputType>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>
8-
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
98
</PropertyGroup>
109
<ItemGroup>
1110
<FrameworkReference Include="Microsoft.AspNetCore.App" />

0 commit comments

Comments
 (0)