UNPKG

closure-builder

Version:

Simple Closure, Soy and JavaScript Build system

103 lines (92 loc) 2.74 kB
/** * @fileoverview Provides Soy runtime checks for safe types. */ goog.provide('soy.checks'); goog.require('goog.asserts'); goog.require('goog.soy.data.SanitizedContentKind'); goog.require('goog.soy.data.SanitizedCss'); goog.require('goog.soy.data.SanitizedHtml'); goog.require('goog.soy.data.SanitizedHtmlAttribute'); goog.require('goog.soy.data.SanitizedJs'); goog.require('goog.soy.data.SanitizedTrustedResourceUri'); goog.require('goog.soy.data.SanitizedUri'); goog.require('goog.soy.data.UnsanitizedText'); /** * Checks whether a given value is of a given content kind. * * @param {?} value The value to be examined. * @param {!goog.soy.data.SanitizedContentKind} contentKind The desired content * kind. * @param {!Object} constructor * @return {boolean} Whether the given value is of the given kind. * @private */ soy.checks.isContentKind_ = function(value, contentKind, constructor) { var ret = value != null && value.contentKind === contentKind; if (ret) { goog.asserts.assert(value.constructor === constructor); } return ret; }; /** * @param {?} value * @return {boolean} */ soy.checks.isHtml = function(value) { return soy.checks.isContentKind_( value, goog.soy.data.SanitizedContentKind.HTML, goog.soy.data.SanitizedHtml); }; /** * @param {?} value * @return {boolean} */ soy.checks.isCss = function(value) { return soy.checks.isContentKind_( value, goog.soy.data.SanitizedContentKind.CSS, goog.soy.data.SanitizedCss); }; /** * @param {?} value * @return {boolean} */ soy.checks.isAttribute = function(value) { return soy.checks.isContentKind_( value, goog.soy.data.SanitizedContentKind.ATTRIBUTES, goog.soy.data.SanitizedHtmlAttribute); }; /** * @param {?} value * @return {boolean} */ soy.checks.isJS = function(value) { return soy.checks.isContentKind_( value, goog.soy.data.SanitizedContentKind.JS, goog.soy.data.SanitizedJs); }; /** * @param {?} value * @return {boolean} */ soy.checks.isTrustedResourceURI = function(value) { return soy.checks.isContentKind_( value, goog.soy.data.SanitizedContentKind.TRUSTED_RESOURCE_URI, goog.soy.data.SanitizedTrustedResourceUri); }; /** * @param {?} value * @return {boolean} */ soy.checks.isURI = function(value) { return soy.checks.isContentKind_( value, goog.soy.data.SanitizedContentKind.URI, goog.soy.data.SanitizedUri); }; /** * @param {?} value * @return {boolean} */ soy.checks.isText = function(value) { return soy.checks.isContentKind_( value, goog.soy.data.SanitizedContentKind.TEXT, goog.soy.data.UnsanitizedText); };