MCPcopy Create free account
hub / github.com/shipshapecode/tether / ajaxConvert

Function ajaxConvert

docs/welcome/js/jquery.js:8178–8260  ·  view source on GitHub ↗
( s, response )

Source from the content-addressed store, hash-verified

8176
8177// Chain conversions given the request and the original response
8178function ajaxConvert( s, response ) {
8179 var conv2, current, conv, tmp,
8180 converters = {},
8181 i = 0,
8182 // Work with a copy of dataTypes in case we need to modify it for conversion
8183 dataTypes = s.dataTypes.slice(),
8184 prev = dataTypes[ 0 ];
8185
8186 // Apply the dataFilter if provided
8187 if ( s.dataFilter ) {
8188 response = s.dataFilter( response, s.dataType );
8189 }
8190
8191 // Create converters map with lowercased keys
8192 if ( dataTypes[ 1 ] ) {
8193 for ( conv in s.converters ) {
8194 converters[ conv.toLowerCase() ] = s.converters[ conv ];
8195 }
8196 }
8197
8198 // Convert to each sequential dataType, tolerating list modification
8199 for ( ; (current = dataTypes[++i]); ) {
8200
8201 // There's only work to do if current dataType is non-auto
8202 if ( current !== "*" ) {
8203
8204 // Convert response if prev dataType is non-auto and differs from current
8205 if ( prev !== "*" && prev !== current ) {
8206
8207 // Seek a direct converter
8208 conv = converters[ prev + " " + current ] || converters[ "* " + current ];
8209
8210 // If none found, seek a pair
8211 if ( !conv ) {
8212 for ( conv2 in converters ) {
8213
8214 // If conv2 outputs current
8215 tmp = conv2.split(" ");
8216 if ( tmp[ 1 ] === current ) {
8217
8218 // If prev can be converted to accepted input
8219 conv = converters[ prev + " " + tmp[ 0 ] ] ||
8220 converters[ "* " + tmp[ 0 ] ];
8221 if ( conv ) {
8222 // Condense equivalence converters
8223 if ( conv === true ) {
8224 conv = converters[ conv2 ];
8225
8226 // Otherwise, insert the intermediate dataType
8227 } else if ( converters[ conv2 ] !== true ) {
8228 current = tmp[ 0 ];
8229 dataTypes.splice( i--, 0, current );
8230 }
8231
8232 break;
8233 }
8234 }
8235 }

Callers 1

doneFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…