in src/PSRule.Rules.Azure/Data/Template/Functions.cs [2010:2038]
internal static object Split(ITemplateContext context, object[] args)
{
if (args == null || args.Length != 2)
throw ArgumentsOutOfRange(nameof(Split), args);
if (!ExpressionHelpers.TryString(args[0], out var inputString) && args[0] is not IMock mock)
throw ArgumentInvalidString(nameof(Split), "inputString");
// Handle mocks to prevent exception
if (args[0] is IMock)
return new Mock.MockArray();
if (inputString.StartsWith("{{", StringComparison.OrdinalIgnoreCase) && inputString.EndsWith("}}", StringComparison.OrdinalIgnoreCase))
return new Mock.MockArray();
string[] delimiter = null;
if (ExpressionHelpers.TryString(args[1], out var single))
{
delimiter = [single];
}
else if (ExpressionHelpers.TryStringArray(args[1], out var delimiterArray))
{
delimiter = delimiterArray;
}
else
throw ArgumentFormatInvalid(nameof(Split));
return new JArray(inputString.Split(delimiter, StringSplitOptions.None));
}