diff --git a/dist/amd/can-validate.js b/dist/amd/can-validate.js new file mode 100644 index 00000000..64af4850 --- /dev/null +++ b/dist/amd/can-validate.js @@ -0,0 +1,91 @@ +/*can-validate@1.1.0-pre.0#can-validate*/ +define(function (require, exports, module) { + var each = require('can-util/js/each'); + var isArray = require('can-util/js/is-array'); + var validate = {}; + var helpers = { + 'object': function (normalizedErrors) { + var errors = normalizedErrors.length > 0 ? {} : undefined; + each(normalizedErrors, function (error) { + each(error.related, function (related) { + if (!errors[related]) { + errors[related] = []; + } + errors[related].push(error.message); + }); + }); + return errors; + }, + 'flat': function (normalizedErrors) { + var errors = normalizedErrors.length > 0 ? [] : undefined; + each(normalizedErrors, function (error) { + errors.push(error.message); + }); + return errors; + }, + 'errors': function (normalizedErrors) { + return normalizedErrors.length > 0 ? normalizedErrors : undefined; + }, + 'errors-object': function (normalizedErrors) { + var errors = normalizedErrors.length > 0 ? {} : undefined; + each(normalizedErrors, function (error) { + each(error.related, function (related) { + if (!errors[related]) { + errors[related] = []; + } + errors[related].push(error); + }); + }); + return errors; + } + }; + var parseErrorItem = function (rawErrors) { + var errors = []; + if (typeof rawErrors === 'string') { + errors.push({ + message: rawErrors, + related: ['*'] + }); + } + if (typeof rawErrors === 'object' && !isArray(rawErrors)) { + if (rawErrors.related) { + if (!isArray(rawErrors.related)) { + rawErrors.related = [rawErrors.related]; + } + } else { + rawErrors.related = '*'; + } + errors.push(rawErrors); + } + if (isArray(rawErrors)) { + each(rawErrors, function (error) { + [].push.apply(errors, parseErrorItem(error)); + }); + } + return errors; + }; + var normalizeErrors = function (rawErrors) { + var normalizedErrors = []; + if (typeof rawErrors === 'string' || typeof rawErrors === 'object' && !isArray(rawErrors)) { + rawErrors = [rawErrors]; + } + each(rawErrors, function (error) { + [].push.apply(normalizedErrors, parseErrorItem(error)); + }); + return normalizedErrors; + }; + validate.formatErrors = function (errors, format) { + var normalized = normalizeErrors(errors); + if (format) { + if (helpers[format]) { + return helpers[format](normalized); + } else { + return normalized; + } + } else { + return normalized; + } + }; + module.exports = validate; +}); +//# sourceMappingURL=can-validate.js.map \ No newline at end of file diff --git a/dist/amd/can-validate.js.map b/dist/amd/can-validate.js.map new file mode 100644 index 00000000..6af9f8c2 --- /dev/null +++ b/dist/amd/can-validate.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../can-validate.js"],"names":["each","require","isArray","validate","helpers","normalizedErrors","errors","length","undefined","error","related","push","message","parseErrorItem","rawErrors","apply","normalizeErrors","formatErrors","format","normalized","module","exports"],"mappings":"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","file":"can-validate.js"} \ No newline at end of file diff --git a/dist/cjs/can-validate.js b/dist/cjs/can-validate.js new file mode 100644 index 00000000..79523a74 --- /dev/null +++ b/dist/cjs/can-validate.js @@ -0,0 +1,89 @@ +/*can-validate@1.1.0-pre.0#can-validate*/ +var each = require('can-util/js/each/each'); +var isArray = require('can-util/js/is-array/is-array'); +var validate = {}; +var helpers = { + 'object': function (normalizedErrors) { + var errors = normalizedErrors.length > 0 ? {} : undefined; + each(normalizedErrors, function (error) { + each(error.related, function (related) { + if (!errors[related]) { + errors[related] = []; + } + errors[related].push(error.message); + }); + }); + return errors; + }, + 'flat': function (normalizedErrors) { + var errors = normalizedErrors.length > 0 ? [] : undefined; + each(normalizedErrors, function (error) { + errors.push(error.message); + }); + return errors; + }, + 'errors': function (normalizedErrors) { + return normalizedErrors.length > 0 ? normalizedErrors : undefined; + }, + 'errors-object': function (normalizedErrors) { + var errors = normalizedErrors.length > 0 ? {} : undefined; + each(normalizedErrors, function (error) { + each(error.related, function (related) { + if (!errors[related]) { + errors[related] = []; + } + errors[related].push(error); + }); + }); + return errors; + } +}; +var parseErrorItem = function (rawErrors) { + var errors = []; + if (typeof rawErrors === 'string') { + errors.push({ + message: rawErrors, + related: ['*'] + }); + } + if (typeof rawErrors === 'object' && !isArray(rawErrors)) { + if (rawErrors.related) { + if (!isArray(rawErrors.related)) { + rawErrors.related = [rawErrors.related]; + } + } else { + rawErrors.related = '*'; + } + errors.push(rawErrors); + } + if (isArray(rawErrors)) { + each(rawErrors, function (error) { + [].push.apply(errors, parseErrorItem(error)); + }); + } + return errors; +}; +var normalizeErrors = function (rawErrors) { + var normalizedErrors = []; + if (typeof rawErrors === 'string' || typeof rawErrors === 'object' && !isArray(rawErrors)) { + rawErrors = [rawErrors]; + } + each(rawErrors, function (error) { + [].push.apply(normalizedErrors, parseErrorItem(error)); + }); + return normalizedErrors; +}; +validate.formatErrors = function (errors, format) { + var normalized = normalizeErrors(errors); + if (format) { + if (helpers[format]) { + return helpers[format](normalized); + } else { + return normalized; + } + } else { + return normalized; + } +}; +module.exports = validate; +//# sourceMappingURL=can-validate.js.map \ No newline at end of file diff --git a/dist/cjs/can-validate.js.map b/dist/cjs/can-validate.js.map new file mode 100644 index 00000000..2c7f2f6c --- /dev/null +++ b/dist/cjs/can-validate.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../can-validate.js"],"names":["each","require","isArray","validate","helpers","normalizedErrors","errors","length","undefined","error","related","push","message","parseErrorItem","rawErrors","apply","normalizeErrors","formatErrors","format","normalized","module","exports"],"mappings":"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","file":"can-validate.js"} \ No newline at end of file diff --git a/dist/global/can-validate.js b/dist/global/can-validate.js new file mode 100644 index 00000000..3b12523c --- /dev/null +++ b/dist/global/can-validate.js @@ -0,0 +1,206 @@ +/*[global-shim-start]*/ +(function(exports, global, doEval){ // jshint ignore:line + var origDefine = global.define; + + var get = function(name){ + var parts = name.split("."), + cur = global, + i; + for(i = 0 ; i < parts.length; i++){ + if(!cur) { + break; + } + cur = cur[parts[i]]; + } + return cur; + }; + var set = function(name, val){ + var parts = name.split("."), + cur = global, + i, part, next; + for(i = 0; i < parts.length - 1; i++) { + part = parts[i]; + next = cur[part]; + if(!next) { + next = cur[part] = {}; + } + cur = next; + } + part = parts[parts.length - 1]; + cur[part] = val; + }; + var useDefault = function(mod){ + if(!mod || !mod.__esModule) return false; + var esProps = { __esModule: true, "default": true }; + for(var p in mod) { + if(!esProps[p]) return false; + } + return true; + }; + var modules = (global.define && global.define.modules) || + (global._define && global._define.modules) || {}; + var ourDefine = global.define = function(moduleName, deps, callback){ + var module; + if(typeof deps === "function") { + callback = deps; + deps = []; + } + var args = [], + i; + for(i =0; i < deps.length; i++) { + args.push( exports[deps[i]] ? get(exports[deps[i]]) : ( modules[deps[i]] || get(deps[i]) ) ); + } + // CJS has no dependencies but 3 callback arguments + if(!deps.length && callback.length) { + module = { exports: {} }; + var require = function(name) { + return exports[name] ? get(exports[name]) : modules[name]; + }; + args.push(require, module.exports, module); + } + // Babel uses the exports and module object. + else if(!args[0] && deps[0] === "exports") { + module = { exports: {} }; + args[0] = module.exports; + if(deps[1] === "module") { + args[1] = module; + } + } else if(!args[0] && deps[0] === "module") { + args[0] = { id: moduleName }; + } + + global.define = origDefine; + var result = callback ? callback.apply(null, args) : undefined; + global.define = ourDefine; + + // Favor CJS module.exports over the return value + result = module && module.exports ? module.exports : result; + modules[moduleName] = result; + + // Set global exports + var globalExport = exports[moduleName]; + if(globalExport && !get(globalExport)) { + if(useDefault(result)) { + result = result["default"]; + } + set(globalExport, result); + } + }; + global.define.orig = origDefine; + global.define.modules = modules; + global.define.amd = true; + ourDefine("@loader", [], function(){ + // shim for @@global-helpers + var noop = function(){}; + return { + get: function(){ + return { prepareGlobal: noop, retrieveGlobal: noop }; + }, + global: global, + __exec: function(__load){ + doEval(__load.source, global); + } + }; + }); +} +)({},window,function(__$source__, __$global__) { // jshint ignore:line + eval("(function() { " + __$source__ + " \n }).call(__$global__);"); +} +) +/*can-validate@1.1.0-pre.0#can-validate*/ +define('can-validate', function (require, exports, module) { + var each = require('can-util/js/each/each'); + var isArray = require('can-util/js/is-array/is-array'); + var validate = {}; + var helpers = { + 'object': function (normalizedErrors) { + var errors = normalizedErrors.length > 0 ? {} : undefined; + each(normalizedErrors, function (error) { + each(error.related, function (related) { + if (!errors[related]) { + errors[related] = []; + } + errors[related].push(error.message); + }); + }); + return errors; + }, + 'flat': function (normalizedErrors) { + var errors = normalizedErrors.length > 0 ? [] : undefined; + each(normalizedErrors, function (error) { + errors.push(error.message); + }); + return errors; + }, + 'errors': function (normalizedErrors) { + return normalizedErrors.length > 0 ? normalizedErrors : undefined; + }, + 'errors-object': function (normalizedErrors) { + var errors = normalizedErrors.length > 0 ? {} : undefined; + each(normalizedErrors, function (error) { + each(error.related, function (related) { + if (!errors[related]) { + errors[related] = []; + } + errors[related].push(error); + }); + }); + return errors; + } + }; + var parseErrorItem = function (rawErrors) { + var errors = []; + if (typeof rawErrors === 'string') { + errors.push({ + message: rawErrors, + related: ['*'] + }); + } + if (typeof rawErrors === 'object' && !isArray(rawErrors)) { + if (rawErrors.related) { + if (!isArray(rawErrors.related)) { + rawErrors.related = [rawErrors.related]; + } + } else { + rawErrors.related = '*'; + } + errors.push(rawErrors); + } + if (isArray(rawErrors)) { + each(rawErrors, function (error) { + [].push.apply(errors, parseErrorItem(error)); + }); + } + return errors; + }; + var normalizeErrors = function (rawErrors) { + var normalizedErrors = []; + if (typeof rawErrors === 'string' || typeof rawErrors === 'object' && !isArray(rawErrors)) { + rawErrors = [rawErrors]; + } + each(rawErrors, function (error) { + [].push.apply(normalizedErrors, parseErrorItem(error)); + }); + return normalizedErrors; + }; + validate.formatErrors = function (errors, format) { + var normalized = normalizeErrors(errors); + if (format) { + if (helpers[format]) { + return helpers[format](normalized); + } else { + return normalized; + } + } else { + return normalized; + } + }; + module.exports = validate; +}); +/*[global-shim-end]*/ +(function(){ // jshint ignore:line + window._define = window.define; + window.define = window.define.orig; +} +)(); +//# sourceMappingURL=can-validate.js.map \ No newline at end of file diff --git a/dist/global/can-validate.js.map b/dist/global/can-validate.js.map new file mode 100644 index 00000000..cb2ce465 --- /dev/null +++ b/dist/global/can-validate.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../can-validate.js"],"names":["each","require","isArray","validate","helpers","normalizedErrors","errors","length","undefined","error","related","push","message","parseErrorItem","rawErrors","apply","normalizeErrors","formatErrors","format","normalized","module","exports"],"mappings":"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","file":"can-validate.js"} \ No newline at end of file