MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ajaxConvert

Function ajaxConvert

tools/libxo/xohtml/external/jquery.js:7800–7882  ·  view source on GitHub ↗
( s, response )

Source from the content-addressed store, hash-verified

7798
7799// Chain conversions given the request and the original response
7800function ajaxConvert( s, response ) {
7801
7802 // Apply the dataFilter if provided
7803 if ( s.dataFilter ) {
7804 response = s.dataFilter( response, s.dataType );
7805 }
7806
7807 var dataTypes = s.dataTypes,
7808 converters = {},
7809 i,
7810 key,
7811 length = dataTypes.length,
7812 tmp,
7813 // Current and previous dataTypes
7814 current = dataTypes[ 0 ],
7815 prev,
7816 // Conversion expression
7817 conversion,
7818 // Conversion function
7819 conv,
7820 // Conversion functions (transitive conversion)
7821 conv1,
7822 conv2;
7823
7824 // For each dataType in the chain
7825 for ( i = 1; i < length; i++ ) {
7826
7827 // Create converters map
7828 // with lowercased keys
7829 if ( i === 1 ) {
7830 for ( key in s.converters ) {
7831 if ( typeof key === "string" ) {
7832 converters[ key.toLowerCase() ] = s.converters[ key ];
7833 }
7834 }
7835 }
7836
7837 // Get the dataTypes
7838 prev = current;
7839 current = dataTypes[ i ];
7840
7841 // If current is auto dataType, update it to prev
7842 if ( current === "*" ) {
7843 current = prev;
7844 // If no auto and dataTypes are actually different
7845 } else if ( prev !== "*" && prev !== current ) {
7846
7847 // Get the converter
7848 conversion = prev + " " + current;
7849 conv = converters[ conversion ] || converters[ "* " + current ];
7850
7851 // If there is no direct converter, search transitively
7852 if ( !conv ) {
7853 conv2 = undefined;
7854 for ( conv1 in converters ) {
7855 tmp = conv1.split( " " );
7856 if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
7857 conv2 = converters[ tmp[1] + " " + current ];

Callers 1

doneFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected