getTemplateEnvironment method

Environment getTemplateEnvironment()

Implementation

Environment getTemplateEnvironment() {
  return Environment(
      globals: getGlobalEvents(),
      autoReload: false,
      loader: FileSystemLoader(paths: <String>[FinchApp.config.widgetsPath]),
      leftStripBlocks: false,
      trimBlocks: false,
      blockStart: FinchApp.config.blockStart,
      blockEnd: FinchApp.config.blockEnd,
      variableStart: FinchApp.config.variableStart,
      variableEnd: FinchApp.config.variableEnd,
      commentStart: FinchApp.config.commentStart,
      commentEnd: FinchApp.config.commentEnd,
      filters: {
        ..._layoutFilters,
        'safe': (dynamic input) => safe(input.toString()),
        'unscape': (dynamic input) => input.toString().unescape(),
        'html': (dynamic input) => input.toString().unescape(),
      },
      getAttribute: (String key, dynamic object) {
        try {
          if (object is TString) {
            return object.write();
          }
          if (object is String && key == 'tr') {
            return object.tr.write();
          }
          if (object is Cookie) {
            return key == 'name' ? object.name : object.value;
          }

          if (object[key] != null) {
            if (object[key] is ObjectId) {
              return (object[key] as ObjectId).oid;
            }
          }
          if (object[key] is String) {
            return safe(object[key]);
          }
          return object[key];
        } on NoSuchMethodError {
          Console.e({
            'error': {
              'object': object,
              'key': key,
              'error': 'The key "$key" on "$object" not found',
            }
          });

          return null;
        } catch (e) {
          Console.w({
            'error': {
              'object': object,
              'key': key,
              'error': e,
            }
          });
          return null;
        }
      });
}