(b []byte, allowTemplate bool)
| 937 | } |
| 938 | |
| 939 | func minifyString(b []byte, allowTemplate bool) []byte { |
| 940 | if len(b) < 3 { |
| 941 | return []byte("\"\"") |
| 942 | } |
| 943 | |
| 944 | // switch quotes if more optimal |
| 945 | singleQuotes := 0 |
| 946 | doubleQuotes := 0 |
| 947 | backtickQuotes := 0 |
| 948 | newlines := 0 |
| 949 | dollarSigns := 0 |
| 950 | for i := 1; i < len(b)-1; i++ { |
| 951 | if b[i] == '\'' { |
| 952 | singleQuotes++ |
| 953 | } else if b[i] == '"' { |
| 954 | doubleQuotes++ |
| 955 | } else if b[i] == '`' { |
| 956 | backtickQuotes++ |
| 957 | } else if b[i] == '$' && i+1 < len(b) && b[i+1] == '{' { |
| 958 | dollarSigns++ |
| 959 | } else if b[i] == '\\' && i+1 < len(b) { |
| 960 | if b[i+1] == 'n' { |
| 961 | newlines++ |
| 962 | } else if '1' <= b[i+1] && b[i+1] <= '9' && i+2 < len(b) { |
| 963 | if b[i+1] == '1' && b[i+2] == '2' { |
| 964 | newlines++ |
| 965 | } else if b[i+1] == '4' && b[i+2] == '2' { |
| 966 | doubleQuotes++ |
| 967 | } else if b[i+1] == '4' && b[i+2] == '7' { |
| 968 | singleQuotes++ |
| 969 | } else if i+3 < len(b) && b[i+1] == '1' && b[i+2] == '4' && b[i+3] == '0' { |
| 970 | backtickQuotes++ |
| 971 | } |
| 972 | } else if b[i+1] == 'x' && i+3 < len(b) { |
| 973 | if b[i+2] == '0' && b[i+3]|0x20 == 'a' { |
| 974 | newlines++ |
| 975 | } else if b[i+2] == '2' && b[i+3] == '2' { |
| 976 | doubleQuotes++ |
| 977 | } else if b[i+2] == '2' && b[i+3] == '7' { |
| 978 | singleQuotes++ |
| 979 | } else if b[i+2] == '6' && b[i+3] == '0' { |
| 980 | backtickQuotes++ |
| 981 | } |
| 982 | } else if b[i+1] == 'u' && i+5 < len(b) && b[i+2] == '0' && b[i+3] == '0' { |
| 983 | if b[i+4] == '0' && b[i+5]|0x20 == 'a' { |
| 984 | newlines++ |
| 985 | } else if b[i+4] == '2' && b[i+5] == '2' { |
| 986 | doubleQuotes++ |
| 987 | } else if b[i+4] == '2' && b[i+5] == '7' { |
| 988 | singleQuotes++ |
| 989 | } else if b[i+4] == '6' && b[i+5] == '0' { |
| 990 | backtickQuotes++ |
| 991 | } |
| 992 | } else if b[i+1] == 'u' && i+4 < len(b) && b[i+2] == '{' { |
| 993 | j := i + 3 |
| 994 | for j < len(b) && b[j] == '0' { |
| 995 | j++ |
| 996 | } |
searching dependent graphs…