StringArrayBase64DecodeNodeTemplate.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /**
  2. * @returns {string}
  3. */
  4. export function StringArrayBase64DecodeNodeTemplate (): string {
  5. return `
  6. if ({stringArrayCallsWrapperName}.initialized === undefined) {
  7. {atobPolyfill}
  8. {stringArrayCallsWrapperName}.base64DecodeUnicode = function (str) {
  9. var string = atob(str);
  10. var newStringChars = [];
  11. for (var i = 0, length = string.length; i < length; i++) {
  12. newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);
  13. }
  14. return decodeURIComponent(newStringChars);
  15. };
  16. {stringArrayCallsWrapperName}.data = {};
  17. {stringArrayCallsWrapperName}.initialized = true;
  18. }
  19. var cachedValue = {stringArrayCallsWrapperName}.data[index];
  20. if (cachedValue === undefined) {
  21. {selfDefendingCode}
  22. value = {stringArrayCallsWrapperName}.base64DecodeUnicode(value);
  23. {stringArrayCallsWrapperName}.data[index] = value;
  24. } else {
  25. value = cachedValue;
  26. }
  27. `;
  28. }