-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrtts_assert.map
1 lines (1 loc) · 17.6 KB
/
rtts_assert.map
1
{"version":3,"file":"/Users/deast/Angular/angular/modules/rtts_assert/src/rtts_assert.es6","sources":["@traceur/generated/TemplateParser/13","@traceur/generated/TemplateParser/12","rtts_assert.es6","@traceur/generated/TemplateParser/33","@traceur/generated/TemplateParser/28","@traceur/generated/TemplateParser/29","@traceur/generated/TemplateParser/34","@traceur/generated/TemplateParser/22","@traceur/generated/TemplateParser/11","@traceur/generated/TemplateParser/32"],"names":[],"mappings":"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","sourceRoot":"/Users/deast/Angular/angular/modules/rtts_assert/src/","sourcesContent":["System.register($__placeholder__0, $__placeholder__1, function($__export) {\n $__placeholder__2\n });","var __moduleName = $__placeholder__0;","// TODO(vojta):\n// - extract into multiple files\n// - different error types\n// - simplify/humanize error messages\n// - throw when invalid input (such as odd number of args into assert.argumentTypes)\n\nvar POSITION_NAME = ['', '1st', '2nd', '3rd'];\nfunction argPositionName(i) {\n var position = (i / 2) + 1;\n\n return POSITION_NAME[position] || (position + 'th');\n}\n\nvar primitives = $traceurRuntime.type;\n\nexport function proxy(){\n}\n\nfunction assertArgumentTypes(...params) {\n var actual, type;\n var currentArgErrors;\n var errors = [];\n var msg;\n\n for (var i = 0, l = params.length; i < l; i = i + 2) {\n actual = params[i];\n type = params[i + 1];\n\n currentArgErrors = [];\n\n // currentStack = [];\n //\n\n if (!isType(actual, type, currentArgErrors)) {\n\n // console.log(JSON.stringify(errors, null, ' '));\n // TODO(vojta): print \"an instance of\" only if T starts with uppercase.\n errors.push(argPositionName(i) + ' argument has to be an instance of ' + prettyPrint(type) + ', got ' + prettyPrint(actual));\n if (currentArgErrors.length) {\n errors.push(currentArgErrors);\n }\n }\n }\n\n if (errors.length) {\n throw new Error('Invalid arguments given!\\n' + formatErrors(errors));\n }\n}\n\nfunction prettyPrint(value) {\n if (typeof value === 'undefined') {\n return 'undefined';\n }\n\n if (typeof value === 'string') {\n return '\"' + value + '\"';\n }\n\n if (typeof value === 'boolean') {\n return value.toString();\n }\n\n if (value === null) {\n return 'null';\n }\n\n if (typeof value === 'object') {\n if (value.__assertName) {\n return value.__assertName;\n }\n\n if (value.map) {\n return '[' + value.map(prettyPrint).join(', ') + ']';\n }\n\n var properties = Object.keys(value);\n return '{' + properties.map((p) => p + ': ' + prettyPrint(value[p])).join(', ') + '}';\n }\n\n return value.__assertName || value.name || value.toString();\n}\n\nfunction isType(value, T, errors) {\n if (T === primitives.void) {\n return typeof value === 'undefined';\n }\n\n if (_isProxy(value)) {\n return true;\n }\n\n if (T === primitives.any || value === null) {\n return true;\n }\n\n if (T === primitives.string) {\n return typeof value === 'string';\n }\n\n if (T === primitives.number) {\n return typeof value === 'number';\n }\n\n if (T === primitives.boolean) {\n return typeof value === 'boolean';\n }\n\n // var parentStack = currentStack;\n // currentStack = [];\n\n // shouldnt this create new stack?\n if (typeof T.assert === 'function') {\n var parentStack = currentStack;\n var isValid;\n currentStack = errors;\n try {\n isValid = T.assert(value) ;\n } catch (e) {\n fail(e.message);\n isValid = false;\n }\n\n currentStack = parentStack;\n\n if (typeof isValid === 'undefined') {\n isValid = errors.length === 0;\n }\n\n return isValid;\n\n // if (!currentStack.length) {\n // currentStack = parentStack;\n // return [];\n // }\n // var res = currentStack;\n // currentStack = parentStack;\n // return ['not instance of ' + prettyPrint(T), res];\n }\n\n return value instanceof T;\n\n // if (!(value instanceof T)) {\n // fail('not instance of ' + prettyPrint(T));\n // }\n\n // var res = currentStack;\n // currentStack = parentStack;\n\n // return res;\n}\n\nfunction _isProxy(obj) {\n if (!obj || !obj.constructor || !obj.constructor.annotations) return false;\n return obj.constructor.annotations.filter((a) => a instanceof proxy).length > 0;\n}\n\nfunction formatErrors(errors, indent = ' ') {\n return errors.map((e) => {\n if (typeof e === 'string') return indent + '- ' + e;\n return formatErrors(e, indent + ' ');\n }).join('\\n');\n}\n\n\n// assert a type of given value and throw if does not pass\nfunction type(actual, T) {\n var errors = [];\n // currentStack = [];\n\n if (!isType(actual, T, errors)) {\n // console.log(JSON.stringify(errors, null, ' '));\n // TODO(vojta): print \"an instance of\" only if T starts with uppercase.\n var msg = 'Expected an instance of ' + prettyPrint(T) + ', got ' + prettyPrint(actual) + '!';\n if (errors.length) {\n msg += '\\n' + formatErrors(errors);\n }\n\n throw new Error(msg);\n }\n return actual;\n}\n\nfunction returnType(actual, T) {\n var errors = [];\n // currentStack = [];\n\n if (!isType(actual, T, errors)) {\n // console.log(JSON.stringify(errors, null, ' '));\n // TODO(vojta): print \"an instance of\" only if T starts with uppercase.\n var msg = 'Expected to return an instance of ' + prettyPrint(T) + ', got ' + prettyPrint(actual) + '!';\n if (errors.length) {\n msg += '\\n' + formatErrors(errors);\n }\n\n throw new Error(msg);\n }\n\n return actual;\n}\n\n\n// TODO(vojta): define these with DSL?\nvar string = define('string', function(value) {\n return typeof value === 'string';\n});\n\n// function string() {}\n// string.assert = function(value) {\n// return typeof value === 'string';\n// };\n\nvar boolean = define('boolean', function(value) {\n return typeof value === 'boolean';\n});\n// function boolean() {}\n// boolean.assert = function(value) {\n// return typeof value === 'boolean';\n// };\n\nvar number = define('number', function(value) {\n return typeof value === 'number';\n});\n// function number() {}\n// number.assert = function(value) {\n// return typeof value === 'number';\n// };\n\n\nfunction arrayOf(...types) {\n return assert.define('array of ' + types.map(prettyPrint).join('/'), function(value) {\n if (assert(value).is(Array)) {\n for (var item of value) {\n assert(item).is(...types);\n }\n }\n });\n}\n\nfunction structure(definition) {\n var properties = Object.keys(definition);\n return assert.define('object with properties ' + properties.join(', '), function(value) {\n if (assert(value).is(Object)) {\n for (var property of properties) {\n assert(value[property]).is(definition[property]);\n }\n }\n })\n}\n\n\n\n// I'm sorry, bad global state... to make the API nice ;-)\nvar currentStack = [];\n\nfunction fail(message) {\n currentStack.push(message);\n}\n\nfunction define(classOrName, check) {\n var cls = classOrName;\n\n if (typeof classOrName === 'string') {\n cls = function() {};\n cls.__assertName = classOrName;\n }\n\n cls.assert = function(value) {\n // var parentStack = currentStack;\n\n // currentStack = [];\n\n return check(value);\n\n // if (currentStack.length) {\n // parentStack.push(currentStack)\n // }\n // currentStack = parentStack;\n };\n\n return cls;\n}\n\n\n\nfunction assert(value) {\n return {\n is: function is(...types) {\n // var errors = []\n var allErrors = [];\n var errors;\n\n for (var type of types) {\n errors = [];\n\n if (isType(value, type, errors)) {\n return true;\n }\n\n // if no errors, merge multiple \"is not instance of \" into x/y/z ?\n allErrors.push(prettyPrint(value) + ' is not instance of ' + prettyPrint(type))\n if (errors.length) {\n allErrors.push(errors);\n }\n }\n\n // if (types.length > 1) {\n // currentStack.push(['has to be ' + types.map(prettyPrint).join(' or '), ...allErrors]);\n // } else {\n currentStack.push(...allErrors);\n // }\n return false;\n }\n };\n}\n\n\n// PUBLIC API\n\n// asserting API\n\n// throw if no type provided\nassert.type = type;\n\n// throw if odd number of args\nassert.argumentTypes = assertArgumentTypes;\nassert.returnType = returnType;\n\n\n// define AP;\nassert.define = define;\nassert.fail = fail;\n\n// primitive value type;\nassert.string = string;\nassert.number = number;\nassert.boolean = boolean;\n\n// custom types\nassert.arrayOf = arrayOf;\nassert.structure = structure;\n\n\nexport {assert}\n","\n for (var $__placeholder__0 = [], $__placeholder__1 = 0;\n $__placeholder__2 < arguments.length; $__placeholder__3++)\n $__placeholder__4[$__placeholder__5] = arguments[$__placeholder__6];","\n for (var $__placeholder__0 =\n $__placeholder__1[\n $traceurRuntime.toProperty(Symbol.iterator)](),\n $__placeholder__2;\n !($__placeholder__3 = $__placeholder__4.next()).done; ) {\n $__placeholder__5;\n $__placeholder__6;\n }","void 0","$traceurRuntime.spread($__placeholder__0)","\n $__export($__placeholder__0, $__placeholder__1)\n ","return {\n setters: $__placeholder__0,\n execute: $__placeholder__1\n }","$__export($__placeholder__0, $__placeholder__1);"]}