zoukankan      html  css  js  c++  java
  • 一些自己常用的cdn

    1.vue

    <script src="http://cdn.bootcss.com/vue/1.0.28-csp/vue.js"></script>

     <script src="http://cdn.bootcss.com/vue/2.1.10/vue.js"></script>

    <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>

    一个vue-resource的代码版本:0.7

    /**
     * vue-resource v0.7.0
     * https://github.com/vuejs/vue-resource
     * Released under the MIT License.
     */
    
    (function webpackUniversalModuleDefinition(root, factory) {
        if(typeof exports === 'object' && typeof module === 'object')
            module.exports = factory();
        else if(typeof define === 'function' && define.amd)
            define([], factory);
        else if(typeof exports === 'object')
            exports["VueResource"] = factory();
        else
            root["VueResource"] = factory();
    })(this, function() {
    return /******/ (function(modules) { // webpackBootstrap
    /******/     // The module cache
    /******/     var installedModules = {};
    
    /******/     // The require function
    /******/     function __webpack_require__(moduleId) {
    
    /******/         // Check if module is in cache
    /******/         if(installedModules[moduleId])
    /******/             return installedModules[moduleId].exports;
    
    /******/         // Create a new module (and put it into the cache)
    /******/         var module = installedModules[moduleId] = {
    /******/             exports: {},
    /******/             id: moduleId,
    /******/             loaded: false
    /******/         };
    
    /******/         // Execute the module function
    /******/         modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
    
    /******/         // Flag the module as loaded
    /******/         module.loaded = true;
    
    /******/         // Return the exports of the module
    /******/         return module.exports;
    /******/     }
    
    
    /******/     // expose the modules object (__webpack_modules__)
    /******/     __webpack_require__.m = modules;
    
    /******/     // expose the module cache
    /******/     __webpack_require__.c = installedModules;
    
    /******/     // __webpack_public_path__
    /******/     __webpack_require__.p = "";
    
    /******/     // Load entry module and return exports
    /******/     return __webpack_require__(0);
    /******/ })
    /************************************************************************/
    /******/ ([
    /* 0 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Install plugin.
         */
    
        function install(Vue) {
    
            var _ = __webpack_require__(1);
    
            _.config = Vue.config;
            _.warning = Vue.util.warn;
            _.nextTick = Vue.util.nextTick;
    
            Vue.url = __webpack_require__(2);
            Vue.http = __webpack_require__(8);
            Vue.resource = __webpack_require__(23);
            Vue.Promise = __webpack_require__(10);
    
            Object.defineProperties(Vue.prototype, {
    
                $url: {
                    get: function () {
                        return _.options(Vue.url, this, this.$options.url);
                    }
                },
    
                $http: {
                    get: function () {
                        return _.options(Vue.http, this, this.$options.http);
                    }
                },
    
                $resource: {
                    get: function () {
                        return Vue.resource.bind(this);
                    }
                },
    
                $promise: {
                    get: function () {
                        return function (executor) {
                            return new Vue.Promise(executor, this);
                        }.bind(this);
                    }
                }
    
            });
        }
    
        if (window.Vue) {
            Vue.use(install);
        }
    
        module.exports = install;
    
    
    /***/ },
    /* 1 */
    /***/ function(module, exports) {
    
        /**
         * Utility functions.
         */
    
        var _ = exports, array = [], console = window.console;
    
        _.warn = function (msg) {
            if (console && _.warning && (!_.config.silent || _.config.debug)) {
                console.warn('[VueResource warn]: ' + msg);
            }
        };
    
        _.error = function (msg) {
            if (console) {
                console.error(msg);
            }
        };
    
        _.trim = function (str) {
            return str.replace(/^s*|s*$/g, '');
        };
    
        _.toLower = function (str) {
            return str ? str.toLowerCase() : '';
        };
    
        _.isArray = Array.isArray;
    
        _.isString = function (val) {
            return typeof val === 'string';
        };
    
        _.isFunction = function (val) {
            return typeof val === 'function';
        };
    
        _.isObject = function (obj) {
            return obj !== null && typeof obj === 'object';
        };
    
        _.isPlainObject = function (obj) {
            return _.isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;
        };
    
        _.options = function (fn, obj, options) {
    
            options = options || {};
    
            if (_.isFunction(options)) {
                options = options.call(obj);
            }
    
            return _.merge(fn.bind({$vm: obj, $options: options}), fn, {$options: options});
        };
    
        _.each = function (obj, iterator) {
    
            var i, key;
    
            if (typeof obj.length == 'number') {
                for (i = 0; i < obj.length; i++) {
                    iterator.call(obj[i], obj[i], i);
                }
            } else if (_.isObject(obj)) {
                for (key in obj) {
                    if (obj.hasOwnProperty(key)) {
                        iterator.call(obj[key], obj[key], key);
                    }
                }
            }
    
            return obj;
        };
    
        _.defaults = function (target, source) {
    
            for (var key in source) {
                if (target[key] === undefined) {
                    target[key] = source[key];
                }
            }
    
            return target;
        };
    
        _.extend = function (target) {
    
            var args = array.slice.call(arguments, 1);
    
            args.forEach(function (arg) {
                merge(target, arg);
            });
    
            return target;
        };
    
        _.merge = function (target) {
    
            var args = array.slice.call(arguments, 1);
    
            args.forEach(function (arg) {
                merge(target, arg, true);
            });
    
            return target;
        };
    
        function merge(target, source, deep) {
            for (var key in source) {
                if (deep && (_.isPlainObject(source[key]) || _.isArray(source[key]))) {
                    if (_.isPlainObject(source[key]) && !_.isPlainObject(target[key])) {
                        target[key] = {};
                    }
                    if (_.isArray(source[key]) && !_.isArray(target[key])) {
                        target[key] = [];
                    }
                    merge(target[key], source[key], deep);
                } else if (source[key] !== undefined) {
                    target[key] = source[key];
                }
            }
        }
    
    
    /***/ },
    /* 2 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Service for URL templating.
         */
    
        var _ = __webpack_require__(1);
        var ie = document.documentMode;
        var el = document.createElement('a');
    
        function Url(url, params) {
    
            var options = url, transform;
    
            if (_.isString(url)) {
                options = {url: url, params: params};
            }
    
            options = _.merge({}, Url.options, this.$options, options);
    
            Url.transforms.forEach(function (handler) {
                transform = factory(handler, transform, this.$vm);
            }, this);
    
            return transform(options);
        };
    
        /**
         * Url options.
         */
    
        Url.options = {
            url: '',
            root: null,
            params: {}
        };
    
        /**
         * Url transforms.
         */
    
        Url.transforms = [
            __webpack_require__(3),
            __webpack_require__(5),
            __webpack_require__(6),
            __webpack_require__(7)
        ];
    
        /**
         * Encodes a Url parameter string.
         *
         * @param {Object} obj
         */
    
        Url.params = function (obj) {
    
            var params = [], escape = encodeURIComponent;
    
            params.add = function (key, value) {
    
                if (_.isFunction(value)) {
                    value = value();
                }
    
                if (value === null) {
                    value = '';
                }
    
                this.push(escape(key) + '=' + escape(value));
            };
    
            serialize(params, obj);
    
            return params.join('&').replace(/%20/g, '+');
        };
    
        /**
         * Parse a URL and return its components.
         *
         * @param {String} url
         */
    
        Url.parse = function (url) {
    
            if (ie) {
                el.href = url;
                url = el.href;
            }
    
            el.href = url;
    
            return {
                href: el.href,
                protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',
                port: el.port,
                host: el.host,
                hostname: el.hostname,
                pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,
                search: el.search ? el.search.replace(/^?/, '') : '',
                hash: el.hash ? el.hash.replace(/^#/, '') : ''
            };
        };
    
        function factory(handler, next, vm) {
            return function (options) {
                return handler.call(vm, options, next);
            };
        }
    
        function serialize(params, obj, scope) {
    
            var array = _.isArray(obj), plain = _.isPlainObject(obj), hash;
    
            _.each(obj, function (value, key) {
    
                hash = _.isObject(value) || _.isArray(value);
    
                if (scope) {
                    key = scope + '[' + (plain || hash ? key : '') + ']';
                }
    
                if (!scope && array) {
                    params.add(value.name, value.value);
                } else if (hash) {
                    serialize(params, value, key);
                } else {
                    params.add(key, value);
                }
            });
        }
    
        module.exports = _.url = Url;
    
    
    /***/ },
    /* 3 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * URL Template (RFC 6570) Transform.
         */
    
        var UrlTemplate = __webpack_require__(4);
    
        module.exports = function (options) {
    
            var variables = [], url = UrlTemplate.expand(options.url, options.params, variables);
    
            variables.forEach(function (key) {
                delete options.params[key];
            });
    
            return url;
        };
    
    
    /***/ },
    /* 4 */
    /***/ function(module, exports) {
    
        /**
         * URL Template v2.0.6 (https://github.com/bramstein/url-template)
         */
    
        exports.expand = function (url, params, variables) {
    
            var tmpl = this.parse(url), expanded = tmpl.expand(params);
    
            if (variables) {
                variables.push.apply(variables, tmpl.vars);
            }
    
            return expanded;
        };
    
        exports.parse = function (template) {
    
            var operators = ['+', '#', '.', '/', ';', '?', '&'], variables = [];
    
            return {
                vars: variables,
                expand: function (context) {
                    return template.replace(/{([^{}]+)}|([^{}]+)/g, function (_, expression, literal) {
                        if (expression) {
    
                            var operator = null, values = [];
    
                            if (operators.indexOf(expression.charAt(0)) !== -1) {
                                operator = expression.charAt(0);
                                expression = expression.substr(1);
                            }
    
                            expression.split(/,/g).forEach(function (variable) {
                                var tmp = /([^:*]*)(?::(d+)|(*))?/.exec(variable);
                                values.push.apply(values, exports.getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
                                variables.push(tmp[1]);
                            });
    
                            if (operator && operator !== '+') {
    
                                var separator = ',';
    
                                if (operator === '?') {
                                    separator = '&';
                                } else if (operator !== '#') {
                                    separator = operator;
                                }
    
                                return (values.length !== 0 ? operator : '') + values.join(separator);
                            } else {
                                return values.join(',');
                            }
    
                        } else {
                            return exports.encodeReserved(literal);
                        }
                    });
                }
            };
        };
    
        exports.getValues = function (context, operator, key, modifier) {
    
            var value = context[key], result = [];
    
            if (this.isDefined(value) && value !== '') {
                if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
                    value = value.toString();
    
                    if (modifier && modifier !== '*') {
                        value = value.substring(0, parseInt(modifier, 10));
                    }
    
                    result.push(this.encodeValue(operator, value, this.isKeyOperator(operator) ? key : null));
                } else {
                    if (modifier === '*') {
                        if (Array.isArray(value)) {
                            value.filter(this.isDefined).forEach(function (value) {
                                result.push(this.encodeValue(operator, value, this.isKeyOperator(operator) ? key : null));
                            }, this);
                        } else {
                            Object.keys(value).forEach(function (k) {
                                if (this.isDefined(value[k])) {
                                    result.push(this.encodeValue(operator, value[k], k));
                                }
                            }, this);
                        }
                    } else {
                        var tmp = [];
    
                        if (Array.isArray(value)) {
                            value.filter(this.isDefined).forEach(function (value) {
                                tmp.push(this.encodeValue(operator, value));
                            }, this);
                        } else {
                            Object.keys(value).forEach(function (k) {
                                if (this.isDefined(value[k])) {
                                    tmp.push(encodeURIComponent(k));
                                    tmp.push(this.encodeValue(operator, value[k].toString()));
                                }
                            }, this);
                        }
    
                        if (this.isKeyOperator(operator)) {
                            result.push(encodeURIComponent(key) + '=' + tmp.join(','));
                        } else if (tmp.length !== 0) {
                            result.push(tmp.join(','));
                        }
                    }
                }
            } else {
                if (operator === ';') {
                    result.push(encodeURIComponent(key));
                } else if (value === '' && (operator === '&' || operator === '?')) {
                    result.push(encodeURIComponent(key) + '=');
                } else if (value === '') {
                    result.push('');
                }
            }
    
            return result;
        };
    
        exports.isDefined = function (value) {
            return value !== undefined && value !== null;
        };
    
        exports.isKeyOperator = function (operator) {
            return operator === ';' || operator === '&' || operator === '?';
        };
    
        exports.encodeValue = function (operator, value, key) {
    
            value = (operator === '+' || operator === '#') ? this.encodeReserved(value) : encodeURIComponent(value);
    
            if (key) {
                return encodeURIComponent(key) + '=' + value;
            } else {
                return value;
            }
        };
    
        exports.encodeReserved = function (str) {
            return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {
                if (!/%[0-9A-Fa-f]/.test(part)) {
                    part = encodeURI(part);
                }
                return part;
            }).join('');
        };
    
    
    /***/ },
    /* 5 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Legacy Transform.
         */
    
        var _ = __webpack_require__(1);
    
        module.exports = function (options, next) {
    
            var variables = [], url = next(options);
    
            url = url.replace(/(/?):([a-z]w*)/gi, function (match, slash, name) {
    
                _.warn('The `:' + name + '` parameter syntax has been deprecated. Use the `{' + name + '}` syntax instead.');
    
                if (options.params[name]) {
                    variables.push(name);
                    return slash + encodeUriSegment(options.params[name]);
                }
    
                return '';
            });
    
            variables.forEach(function (key) {
                delete options.params[key];
            });
    
            return url;
        };
    
        function encodeUriSegment(value) {
    
            return encodeUriQuery(value, true).
                replace(/%26/gi, '&').
                replace(/%3D/gi, '=').
                replace(/%2B/gi, '+');
        }
    
        function encodeUriQuery(value, spaces) {
    
            return encodeURIComponent(value).
                replace(/%40/gi, '@').
                replace(/%3A/gi, ':').
                replace(/%24/g, '$').
                replace(/%2C/gi, ',').
                replace(/%20/g, (spaces ? '%20' : '+'));
        }
    
    
    /***/ },
    /* 6 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Query Parameter Transform.
         */
    
        var _ = __webpack_require__(1);
    
        module.exports = function (options, next) {
    
            var urlParams = Object.keys(_.url.options.params), query = {}, url = next(options);
    
           _.each(options.params, function (value, key) {
                if (urlParams.indexOf(key) === -1) {
                    query[key] = value;
                }
            });
    
            query = _.url.params(query);
    
            if (query) {
                url += (url.indexOf('?') == -1 ? '?' : '&') + query;
            }
    
            return url;
        };
    
    
    /***/ },
    /* 7 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Root Prefix Transform.
         */
    
        var _ = __webpack_require__(1);
    
        module.exports = function (options, next) {
    
            var url = next(options);
    
            if (_.isString(options.root) && !url.match(/^(https?:)?//)) {
                url = options.root + '/' + url;
            }
    
            return url;
        };
    
    
    /***/ },
    /* 8 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Service for sending network requests.
         */
    
        var _ = __webpack_require__(1);
        var Client = __webpack_require__(9);
        var Promise = __webpack_require__(10);
        var interceptor = __webpack_require__(13);
        var jsonType = {'Content-Type': 'application/json'};
    
        function Http(url, options) {
    
            var client = Client, request, promise;
    
            Http.interceptors.forEach(function (handler) {
                client = interceptor(handler, this.$vm)(client);
            }, this);
    
            options = _.isObject(url) ? url : _.extend({url: url}, options);
            request = _.merge({}, Http.options, this.$options, options);
            promise = client(request).bind(this.$vm).then(function (response) {
    
                return response.ok ? response : Promise.reject(response);
    
            }, function (response) {
    
                if (response instanceof Error) {
                    _.error(response);
                }
    
                return Promise.reject(response);
            });
    
            if (request.success) {
                promise.success(request.success);
            }
    
            if (request.error) {
                promise.error(request.error);
            }
    
            return promise;
        }
    
        Http.options = {
            method: 'get',
            data: '',
            params: {},
            headers: {},
            xhr: null,
            upload: null,
            jsonp: 'callback',
            beforeSend: null,
            crossOrigin: null,
            emulateHTTP: false,
            emulateJSON: false,
            timeout: 0
        };
    
        Http.interceptors = [
            __webpack_require__(14),
            __webpack_require__(15),
            __webpack_require__(16),
            __webpack_require__(18),
            __webpack_require__(19),
            __webpack_require__(20),
            __webpack_require__(21)
        ];
    
        Http.headers = {
            put: jsonType,
            post: jsonType,
            patch: jsonType,
            delete: jsonType,
            common: {'Accept': 'application/json, text/plain, */*'},
            custom: {'X-Requested-With': 'XMLHttpRequest'}
        };
    
        ['get', 'put', 'post', 'patch', 'delete', 'jsonp'].forEach(function (method) {
    
            Http[method] = function (url, data, success, options) {
    
                if (_.isFunction(data)) {
                    options = success;
                    success = data;
                    data = undefined;
                }
    
                if (_.isObject(success)) {
                    options = success;
                    success = undefined;
                }
    
                return this(url, _.extend({method: method, data: data, success: success}, options));
            };
        });
    
        module.exports = _.http = Http;
    
    
    /***/ },
    /* 9 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Base client.
         */
    
        var _ = __webpack_require__(1);
        var Promise = __webpack_require__(10);
        var xhrClient = __webpack_require__(12);
    
        module.exports = function (request) {
    
            var response = (request.client || xhrClient)(request);
    
            return Promise.resolve(response).then(function (response) {
    
                if (response.headers) {
    
                    var headers = parseHeaders(response.headers);
    
                    response.headers = function (name) {
    
                        if (name) {
                            return headers[_.toLower(name)];
                        }
    
                        return headers;
                    };
    
                }
    
                response.ok = response.status >= 200 && response.status < 300;
    
                return response;
            });
    
        };
    
        function parseHeaders(str) {
    
            var headers = {}, value, name, i;
    
            if (_.isString(str)) {
                _.each(str.split('
    '), function (row) {
    
                    i = row.indexOf(':');
                    name = _.trim(_.toLower(row.slice(0, i)));
                    value = _.trim(row.slice(i + 1));
    
                    if (headers[name]) {
    
                        if (_.isArray(headers[name])) {
                            headers[name].push(value);
                        } else {
                            headers[name] = [headers[name], value];
                        }
    
                    } else {
    
                        headers[name] = value;
                    }
    
                });
            }
    
            return headers;
        }
    
    
    /***/ },
    /* 10 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Promise adapter.
         */
    
        var _ = __webpack_require__(1);
        var PromiseObj = window.Promise || __webpack_require__(11);
    
        function Promise(executor, context) {
    
            if (executor instanceof PromiseObj) {
                this.promise = executor;
            } else {
                this.promise = new PromiseObj(executor.bind(context));
            }
    
            this.context = context;
        }
    
        Promise.all = function (iterable, context) {
            return new Promise(PromiseObj.all(iterable), context);
        };
    
        Promise.resolve = function (value, context) {
            return new Promise(PromiseObj.resolve(value), context);
        };
    
        Promise.reject = function (reason, context) {
            return new Promise(PromiseObj.reject(reason), context);
        };
    
        Promise.race = function (iterable, context) {
            return new Promise(PromiseObj.race(iterable), context);
        };
    
        var p = Promise.prototype;
    
        p.bind = function (context) {
            this.context = context;
            return this;
        };
    
        p.then = function (fulfilled, rejected) {
    
            if (fulfilled && fulfilled.bind && this.context) {
                fulfilled = fulfilled.bind(this.context);
            }
    
            if (rejected && rejected.bind && this.context) {
                rejected = rejected.bind(this.context);
            }
    
            this.promise = this.promise.then(fulfilled, rejected);
    
            return this;
        };
    
        p.catch = function (rejected) {
    
            if (rejected && rejected.bind && this.context) {
                rejected = rejected.bind(this.context);
            }
    
            this.promise = this.promise.catch(rejected);
    
            return this;
        };
    
        p.finally = function (callback) {
    
            return this.then(function (value) {
                    callback.call(this);
                    return value;
                }, function (reason) {
                    callback.call(this);
                    return PromiseObj.reject(reason);
                }
            );
        };
    
        p.success = function (callback) {
    
            _.warn('The `success` method has been deprecated. Use the `then` method instead.');
    
            return this.then(function (response) {
                return callback.call(this, response.data, response.status, response) || response;
            });
        };
    
        p.error = function (callback) {
    
            _.warn('The `error` method has been deprecated. Use the `catch` method instead.');
    
            return this.catch(function (response) {
                return callback.call(this, response.data, response.status, response) || response;
            });
        };
    
        p.always = function (callback) {
    
            _.warn('The `always` method has been deprecated. Use the `finally` method instead.');
    
            var cb = function (response) {
                return callback.call(this, response.data, response.status, response) || response;
            };
    
            return this.then(cb, cb);
        };
    
        module.exports = Promise;
    
    
    /***/ },
    /* 11 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)
         */
    
        var _ = __webpack_require__(1);
    
        var RESOLVED = 0;
        var REJECTED = 1;
        var PENDING  = 2;
    
        function Promise(executor) {
    
            this.state = PENDING;
            this.value = undefined;
            this.deferred = [];
    
            var promise = this;
    
            try {
                executor(function (x) {
                    promise.resolve(x);
                }, function (r) {
                    promise.reject(r);
                });
            } catch (e) {
                promise.reject(e);
            }
        }
    
        Promise.reject = function (r) {
            return new Promise(function (resolve, reject) {
                reject(r);
            });
        };
    
        Promise.resolve = function (x) {
            return new Promise(function (resolve, reject) {
                resolve(x);
            });
        };
    
        Promise.all = function all(iterable) {
            return new Promise(function (resolve, reject) {
                var count = 0, result = [];
    
                if (iterable.length === 0) {
                    resolve(result);
                }
    
                function resolver(i) {
                    return function (x) {
                        result[i] = x;
                        count += 1;
    
                        if (count === iterable.length) {
                            resolve(result);
                        }
                    };
                }
    
                for (var i = 0; i < iterable.length; i += 1) {
                    Promise.resolve(iterable[i]).then(resolver(i), reject);
                }
            });
        };
    
        Promise.race = function race(iterable) {
            return new Promise(function (resolve, reject) {
                for (var i = 0; i < iterable.length; i += 1) {
                    Promise.resolve(iterable[i]).then(resolve, reject);
                }
            });
        };
    
        var p = Promise.prototype;
    
        p.resolve = function resolve(x) {
            var promise = this;
    
            if (promise.state === PENDING) {
                if (x === promise) {
                    throw new TypeError('Promise settled with itself.');
                }
    
                var called = false;
    
                try {
                    var then = x && x['then'];
    
                    if (x !== null && typeof x === 'object' && typeof then === 'function') {
                        then.call(x, function (x) {
                            if (!called) {
                                promise.resolve(x);
                            }
                            called = true;
    
                        }, function (r) {
                            if (!called) {
                                promise.reject(r);
                            }
                            called = true;
                        });
                        return;
                    }
                } catch (e) {
                    if (!called) {
                        promise.reject(e);
                    }
                    return;
                }
    
                promise.state = RESOLVED;
                promise.value = x;
                promise.notify();
            }
        };
    
        p.reject = function reject(reason) {
            var promise = this;
    
            if (promise.state === PENDING) {
                if (reason === promise) {
                    throw new TypeError('Promise settled with itself.');
                }
    
                promise.state = REJECTED;
                promise.value = reason;
                promise.notify();
            }
        };
    
        p.notify = function notify() {
            var promise = this;
    
            _.nextTick(function () {
                if (promise.state !== PENDING) {
                    while (promise.deferred.length) {
                        var deferred = promise.deferred.shift(),
                            onResolved = deferred[0],
                            onRejected = deferred[1],
                            resolve = deferred[2],
                            reject = deferred[3];
    
                        try {
                            if (promise.state === RESOLVED) {
                                if (typeof onResolved === 'function') {
                                    resolve(onResolved.call(undefined, promise.value));
                                } else {
                                    resolve(promise.value);
                                }
                            } else if (promise.state === REJECTED) {
                                if (typeof onRejected === 'function') {
                                    resolve(onRejected.call(undefined, promise.value));
                                } else {
                                    reject(promise.value);
                                }
                            }
                        } catch (e) {
                            reject(e);
                        }
                    }
                }
            });
        };
    
        p.then = function then(onResolved, onRejected) {
            var promise = this;
    
            return new Promise(function (resolve, reject) {
                promise.deferred.push([onResolved, onRejected, resolve, reject]);
                promise.notify();
            });
        };
    
        p.catch = function (onRejected) {
            return this.then(undefined, onRejected);
        };
    
        module.exports = Promise;
    
    
    /***/ },
    /* 12 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * XMLHttp client.
         */
    
        var _ = __webpack_require__(1);
        var Promise = __webpack_require__(10);
    
        module.exports = function (request) {
            return new Promise(function (resolve) {
    
                var xhr = new XMLHttpRequest(), response = {request: request}, handler;
    
                request.cancel = function () {
                    xhr.abort();
                };
    
                xhr.open(request.method, _.url(request), true);
    
                handler = function (event) {
    
                    response.data = xhr.responseText;
                    response.status = xhr.status;
                    response.statusText = xhr.statusText;
                    response.headers = xhr.getAllResponseHeaders();
    
                    resolve(response);
                };
    
                xhr.timeout = 0;
                xhr.onload = handler;
                xhr.onabort = handler;
                xhr.onerror = handler;
                xhr.ontimeout = function () {};
                xhr.onprogress = function () {};
    
                if (_.isPlainObject(request.xhr)) {
                    _.extend(xhr, request.xhr);
                }
    
                if (_.isPlainObject(request.upload)) {
                    _.extend(xhr.upload, request.upload);
                }
    
                _.each(request.headers || {}, function (value, header) {
                    xhr.setRequestHeader(header, value);
                });
    
                xhr.send(request.data);
            });
        };
    
    
    /***/ },
    /* 13 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Interceptor factory.
         */
    
        var _ = __webpack_require__(1);
        var Promise = __webpack_require__(10);
    
        module.exports = function (handler, vm) {
    
            return function (client) {
    
                if (_.isFunction(handler)) {
                    handler = handler.call(vm, Promise);
                }
    
                return function (request) {
    
                    if (_.isFunction(handler.request)) {
                        request = handler.request.call(vm, request);
                    }
    
                    return when(request, function (request) {
                        return when(client(request), function (response) {
    
                            if (_.isFunction(handler.response)) {
                                response = handler.response.call(vm, response);
                            }
    
                            return response;
                        });
                    });
                };
            };
        };
    
        function when(value, fulfilled, rejected) {
    
            var promise = Promise.resolve(value);
    
            if (arguments.length < 2) {
                return promise;
            }
    
            return promise.then(fulfilled, rejected);
        }
    
    
    /***/ },
    /* 14 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Before Interceptor.
         */
    
        var _ = __webpack_require__(1);
    
        module.exports = {
    
            request: function (request) {
    
                if (_.isFunction(request.beforeSend)) {
                    request.beforeSend.call(this, request);
                }
    
                return request;
            }
    
        };
    
    
    /***/ },
    /* 15 */
    /***/ function(module, exports) {
    
        /**
         * Timeout Interceptor.
         */
    
        module.exports = function () {
    
            var timeout;
    
            return {
    
                request: function (request) {
    
                    if (request.timeout) {
                        timeout = setTimeout(function () {
                            request.cancel();
                        }, request.timeout);
                    }
    
                    return request;
                },
    
                response: function (response) {
    
                    clearTimeout(timeout);
    
                    return response;
                }
    
            };
        };
    
    
    /***/ },
    /* 16 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * JSONP Interceptor.
         */
    
        var jsonpClient = __webpack_require__(17);
    
        module.exports = {
    
            request: function (request) {
    
                if (request.method == 'JSONP') {
                    request.client = jsonpClient;
                }
    
                return request;
            }
    
        };
    
    
    /***/ },
    /* 17 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * JSONP client.
         */
    
        var _ = __webpack_require__(1);
        var Promise = __webpack_require__(10);
    
        module.exports = function (request) {
            return new Promise(function (resolve) {
    
                var callback = '_jsonp' + Math.random().toString(36).substr(2), response = {request: request, data: null}, handler, script;
    
                request.params[request.jsonp] = callback;
                request.cancel = function () {
                    handler({type: 'cancel'});
                };
    
                script = document.createElement('script');
                script.src = _.url(request);
                script.type = 'text/javascript';
                script.async = true;
    
                window[callback] = function (data) {
                    response.data = data;
                };
    
                handler = function (event) {
    
                    if (event.type === 'load' && response.data !== null) {
                        response.status = 200;
                    } else if (event.type === 'error') {
                        response.status = 404;
                    } else {
                        response.status = 0;
                    }
    
                    resolve(response);
    
                    delete window[callback];
                    document.body.removeChild(script);
                };
    
                script.onload = handler;
                script.onerror = handler;
    
                document.body.appendChild(script);
            });
        };
    
    
    /***/ },
    /* 18 */
    /***/ function(module, exports) {
    
        /**
         * HTTP method override Interceptor.
         */
    
        module.exports = {
    
            request: function (request) {
    
                if (request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(request.method)) {
                    request.headers['X-HTTP-Method-Override'] = request.method;
                    request.method = 'POST';
                }
    
                return request;
            }
    
        };
    
    
    /***/ },
    /* 19 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Mime Interceptor.
         */
    
        var _ = __webpack_require__(1);
    
        module.exports = {
    
            request: function (request) {
    
                if (request.emulateJSON && _.isPlainObject(request.data)) {
                    request.headers['Content-Type'] = 'application/x-www-form-urlencoded';
                    request.data = _.url.params(request.data);
                }
    
                if (_.isObject(request.data) && /FormData/i.test(request.data.toString())) {
                    delete request.headers['Content-Type'];
                }
    
                if (_.isPlainObject(request.data)) {
                    request.data = JSON.stringify(request.data);
                }
    
                return request;
            },
    
            response: function (response) {
    
                try {
                    response.data = JSON.parse(response.data);
                } catch (e) {}
    
                return response;
            }
    
        };
    
    
    /***/ },
    /* 20 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Header Interceptor.
         */
    
        var _ = __webpack_require__(1);
    
        module.exports = {
    
            request: function (request) {
    
                request.method = request.method.toUpperCase();
                request.headers = _.extend({}, _.http.headers.common,
                    !request.crossOrigin ? _.http.headers.custom : {},
                    _.http.headers[request.method.toLowerCase()],
                    request.headers
                );
    
                if (_.isPlainObject(request.data) && /^(GET|JSONP)$/i.test(request.method)) {
                    _.extend(request.params, request.data);
                    delete request.data;
                }
    
                return request;
            }
    
        };
    
    
    /***/ },
    /* 21 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * CORS Interceptor.
         */
    
        var _ = __webpack_require__(1);
        var xdrClient = __webpack_require__(22);
        var xhrCors = 'withCredentials' in new XMLHttpRequest();
        var originUrl = _.url.parse(location.href);
    
        module.exports = {
    
            request: function (request) {
    
                if (request.crossOrigin === null) {
                    request.crossOrigin = crossOrigin(request);
                }
    
                if (request.crossOrigin) {
    
                    if (!xhrCors) {
                        request.client = xdrClient;
                    }
    
                    request.emulateHTTP = false;
                }
    
                return request;
            }
    
        };
    
        function crossOrigin(request) {
    
            var requestUrl = _.url.parse(_.url(request));
    
            return (requestUrl.protocol !== originUrl.protocol || requestUrl.host !== originUrl.host);
        }
    
    
    /***/ },
    /* 22 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * XDomain client (Internet Explorer).
         */
    
        var _ = __webpack_require__(1);
        var Promise = __webpack_require__(10);
    
        module.exports = function (request) {
            return new Promise(function (resolve) {
    
                var xdr = new XDomainRequest(), response = {request: request}, handler;
    
                request.cancel = function () {
                    xdr.abort();
                };
    
                xdr.open(request.method, _.url(request), true);
    
                handler = function (event) {
    
                    response.data = xdr.responseText;
                    response.status = xdr.status;
                    response.statusText = xdr.statusText;
    
                    resolve(response);
                };
    
                xdr.timeout = 0;
                xdr.onload = handler;
                xdr.onabort = handler;
                xdr.onerror = handler;
                xdr.ontimeout = function () {};
                xdr.onprogress = function () {};
    
                xdr.send(request.data);
            });
        };
    
    
    /***/ },
    /* 23 */
    /***/ function(module, exports, __webpack_require__) {
    
        /**
         * Service for interacting with RESTful services.
         */
    
        var _ = __webpack_require__(1);
    
        function Resource(url, params, actions, options) {
    
            var self = this, resource = {};
    
            actions = _.extend({},
                Resource.actions,
                actions
            );
    
            _.each(actions, function (action, name) {
    
                action = _.merge({url: url, params: params || {}}, options, action);
    
                resource[name] = function () {
                    return (self.$http || _.http)(opts(action, arguments));
                };
            });
    
            return resource;
        }
    
        function opts(action, args) {
    
            var options = _.extend({}, action), params = {}, data, success, error;
    
            switch (args.length) {
    
                case 4:
    
                    error = args[3];
                    success = args[2];
    
                case 3:
                case 2:
    
                    if (_.isFunction(args[1])) {
    
                        if (_.isFunction(args[0])) {
    
                            success = args[0];
                            error = args[1];
    
                            break;
                        }
    
                        success = args[1];
                        error = args[2];
    
                    } else {
    
                        params = args[0];
                        data = args[1];
                        success = args[2];
    
                        break;
                    }
    
                case 1:
    
                    if (_.isFunction(args[0])) {
                        success = args[0];
                    } else if (/^(POST|PUT|PATCH)$/i.test(options.method)) {
                        data = args[0];
                    } else {
                        params = args[0];
                    }
    
                    break;
    
                case 0:
    
                    break;
    
                default:
    
                    throw 'Expected up to 4 arguments [params, data, success, error], got ' + args.length + ' arguments';
            }
    
            options.data = data;
            options.params = _.extend({}, options.params, params);
    
            if (success) {
                options.success = success;
            }
    
            if (error) {
                options.error = error;
            }
    
            return options;
        }
    
        Resource.actions = {
    
            get: {method: 'GET'},
            save: {method: 'POST'},
            query: {method: 'GET'},
            update: {method: 'PUT'},
            remove: {method: 'DELETE'},
            delete: {method: 'DELETE'}
    
        };
    
        module.exports = _.resource = Resource;
    
    
    /***/ }
    /******/ ])
    });
    ;
    View Code
  • 相关阅读:
    scrapy 模块功能流程--转
    CP三次握手和四次分手--转
    获取免费IP--代码--转
    爬虫介绍+Jupyter Notebook--转
    In Ubuntu, How to install Chinese Pinyin with Fcitx?
    对json文件进行简单读写操作
    ubuntu 中wget (下载)命令用法
    如何更改Ubuntu 16.04 默认Python版本方法
    如何将本地文件上传通过命令行命令上传到远程服务器上
    Ubuntu上,如何成功的安装pygrib
  • 原文地址:https://www.cnblogs.com/coding4/p/6412214.html
Copyright © 2011-2022 走看看