RequireJsNet.Compressor.AutoDependency.ScriptProcessor.GetTransformations C# (CSharp) Method

GetTransformations() private method

private GetTransformations ( RequireJsNet.Compressor.Parsing.VisitorResult result, List flattened ) : RequireJsNet.Compressor.Transformations.TransformationCollection
result RequireJsNet.Compressor.Parsing.VisitorResult
flattened List
return RequireJsNet.Compressor.Transformations.TransformationCollection
        private TransformationCollection GetTransformations(VisitorResult result, List<RequireCall> flattened)
        {
            var trans = new TransformationCollection();
            var moduleName = this.CheckForConfigPath(RelativeFileName.ToModuleName());

            if (!result.RequireCalls.Any())
            {
                var shim = GetShim(RelativeFileName);
                var deps = new List<string>();
                if (shim != null)
                {
                    deps = shim.Dependencies.Select(r => r.Dependency).ToList();
                }

                trans.Add(ShimFileTransformation.Create(moduleName, deps));
            }
            else
            {
                foreach (var reqCall in result.RequireCalls.Where(r => r.DependencyArrayNode != null))
                {
                    trans.Add(NormalizeDepsTransformation.Create(reqCall));
                }

                // if there are no define calls but there is at least one require module call, transform that into a define call
                if (!result.RequireCalls.Where(r => r.Type == RequireCallType.Define).Any())
                {
                    if (result.RequireCalls.Where(r => r.IsModule).Any())
                    {
                        var call = result.RequireCalls.Where(r => r.IsModule).FirstOrDefault();
                        trans.Add(ToDefineTransformation.Create(call));
                        trans.Add(AddIdentifierTransformation.Create(call, moduleName));
                    }

                    //TODO: Append shimmed dependencies here too
                }
                else
                {
                    var defineCall = result.RequireCalls.Where(r => r.Type == RequireCallType.Define).FirstOrDefault();
                    if (string.IsNullOrEmpty(defineCall.Id))
                    {
                        trans.Add(AddIdentifierTransformation.Create(defineCall, moduleName));
                    }

                    if (defineCall.DependencyArrayNode == null)
                    {
                        trans.Add(AddEmptyDepsArrayTransformation.Create(defineCall));
                    }

                    var shim = GetShim(RelativeFileName);
                    if (shim != null)
                    {
                        var deps = shim.Dependencies.Select(r => r.Dependency).ToList();
                        trans.Add(AddDepsTransformation.Create(defineCall, deps));
                    }
                }
            }

            return trans;
        }