// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschraenkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using Fluid; using Fluid.Values; using Squidex.Domain.Apps.Core.Contents; using Squidex.Infrastructure; using Squidex.Infrastructure.Json.Objects; namespace Squidex.Domain.Apps.Core.Templates.Extensions { public sealed class ContentFluidExtension : IFluidExtension { public void RegisterGlobalTypes(IMemberAccessStrategy memberAccessStrategy) { FluidValue.SetTypeMapping(x => new ObjectValue(x)); FluidValue.SetTypeMapping(x => new JsonArrayFluidValue(x)); FluidValue.SetTypeMapping(x => FluidValue.Create(x.Value)); FluidValue.SetTypeMapping(x => FluidValue.Create(x.Value)); FluidValue.SetTypeMapping(x => FluidValue.Create(x.Value)); FluidValue.SetTypeMapping(x => FluidValue.Create(null)); memberAccessStrategy.Register( (value, name) => value.GetOrDefault(name)); memberAccessStrategy.Register( (value, name) => value.GetOrDefault(name)); memberAccessStrategy.Register( (value, name) => value.GetOrDefault(name)); } } }