public MvcActionTextTemplate(MvcAction action, ScriptExtensionsFactory extensionsFactory, FetchFunctionDescriptor fetchFunc, TypeFormatter formatter)
 {
     _action         = action;
     _formatter      = formatter;
     _fetchFunc      = fetchFunc;
     _bodyExtensions = extensionsFactory.CreateForActionFunctionBody(action);
 }
        private static void CompileActionImport(ImportManager imports, ControllerContext context, MvcAction actionInfo)
        {
            FetchFunctionDescriptor fetchDescriptor = context.FetchFunctionResolver.Resolve(actionInfo.RequestMethod.Name);

            string funcKey = "fetch-" + fetchDescriptor.FetchModulePath;

            if (!imports.ContainsImportPath(funcKey))
            {
                imports.AddImport(funcKey, new ImportStatement(context.OutputPath, fetchDescriptor.FetchModulePath, false));
            }
            ImportStatement ajaxImport = imports.GetImportAtPath(funcKey);

            ajaxImport.AddItem(fetchDescriptor.FunctionName);

            AddActionImports(imports, actionInfo);
            TryAddAdditionalImports(imports, context, fetchDescriptor.AdditionalImports);
        }