Removed dataCheckers, added true as possible value for dataConverters indicating...
authorjaubourg <j@ubourg.net>
Sat, 25 Dec 2010 14:38:33 +0000 (15:38 +0100)
committerjaubourg <j@ubourg.net>
Fri, 31 Dec 2010 03:05:58 +0000 (04:05 +0100)
src/ajax.js
src/xhr.js

index 4f1fc6c..27e8a1f 100644 (file)
@@ -197,31 +197,6 @@ jQuery.extend({
                // 3) selection will start with transport dataType and THEN go to "*" if needed
                transports: {},
 
-               // Checkers
-               // 1) key is dataType
-               // 2) they are called to control successful response
-               // 3) error throws is used as error data
-               dataCheckers: {
-
-                       // Check if data is a string
-                       "text": function(data) {
-                               if ( typeof data != "string" ) {
-                                       jQuery.error("typeerror");
-                               }
-                       },
-
-                       // Check if xml has been properly parsed
-                       "xml": function(data) {
-                               var documentElement = data ? data.documentElement : data;
-                               if ( ! documentElement || ! documentElement.nodeName ) {
-                                       jQuery.error("typeerror");
-                               }
-                               if ( documentElement.nodeName == "parsererror" ) {
-                                       jQuery.error("parsererror");
-                               }
-                       }
-               },
-
                // List of data converters
                // 1) key format is "source_type destination_type" (a single space in-between)
                // 2) the catchall symbol "*" can be used for source_type
@@ -230,8 +205,8 @@ jQuery.extend({
                        // Convert anything to text
                        "* text": window.String,
 
-                       // Text to html (no transformation)
-                       "text html": window.String,
+                       // Text to html (true = no transformation)
+                       "text html": true,
 
                        // Evaluate text as a json expression
                        "text json": jQuery.parseJSON,
index 991a145..b9db717 100644 (file)
@@ -231,7 +231,6 @@ jQuery.xhr = function( _native ) {
                                                oneConv,
                                                convertion,
                                                dataTypes = s.dataTypes,
-                                               dataCheckers = s.dataCheckers,
                                                dataConverters = s.dataConverters,
                                                dataFilter = s.dataFilter,
                                                responses = {
@@ -243,51 +242,40 @@ jQuery.xhr = function( _native ) {
                                                
                                                current = dataTypes[ i ];
                                                
+                                               if ( responses[ current ] ) {
+                                                       xhr[ "response" + responses[ current ] ] = response;
+                                                       responses[ current ] = 0;
+                                               }
+                                               
                                                if ( i ) {
                                                        
-                                                       prev = dataTypes[ i - 1 ];
-                                                       
-                                                       if ( prev === "*" ) {
-                                                               
-                                                               prev = current;
-                                                               
-                                                       } else if ( current !== "*" && prev !== current ) {
+                                                       if ( prev !== "*" && current !== "*" && prev !== current ) {
                                                        
                                                                oneConv = conv1 = 
                                                                        dataConverters[ ( conversion = prev + " " + current ) ] ||
                                                                        dataConverters[ "* " + current ];
                                                                
-                                                               if ( ! oneConv && prev !== "text" && current !== "text" ) {
-                                                                       conv1 = dataConverters[ prev + " text" ] || dataConverters[ "* text" ];
-                                                                       conv2 = dataConverters[ "text " + current ];
-                                                               }
-                                                               if ( oneConv || conv1 && conv2 ) {
-                                                                       response = oneConv ? conv1( response ) : conv2( conv1( response ) );
-                                                               } else {
-                                                                       throw "no " + conversion;
+                                                               if ( oneConv !== true ) {
+                                                                       
+                                                                       if ( ! oneConv && prev !== "text" && current !== "text" ) {
+                                                                               conv1 = dataConverters[ prev + " text" ] || dataConverters[ "* text" ];
+                                                                               conv2 = dataConverters[ "text " + current ];
+                                                                       }
+                                                                       
+                                                                       if ( oneConv || conv1 && conv2 ) {
+                                                                               response = oneConv ? conv1( response ) : conv2( conv1( response ) );
+                                                                       } else {
+                                                                               throw "no " + conversion;
+                                                                       }
                                                                }
                                                        }
-                                               }
-                                               
-                                               checker = dataCheckers[ current ];
-                                               
-                                               if ( response != null && checker ) {
-                                                       checker( response );
-                                               }
-                                               
-                                               if ( responses[ current ] ) {
-                                                       xhr[ "response" + responses[ current ] ] = response;
-                                                       responses[ current ] = 0;
-                                               }
-                                               
-                                               if ( ! i && dataFilter ) {
-                                                       
-                                                       response = dataFilter( response );
+                                               } else if ( dataFilter ) {
                                                        
+                                                       response = s.dataFilter( response );
                                                        dataTypes = s.dataTypes;
-                                                       dataFilter = 0;
-                                                       i--;
                                                }
+                                               
+                                               prev = current;
                                        }
 
                                        // We have a real success