UNPKG

super-siren

Version:

Siren client based built on top of superagent

88 lines (63 loc) 2.69 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _immutable = require('immutable'); var _immutable2 = _interopRequireDefault(_immutable); var _Client = require('./Client'); var _Client2 = _interopRequireDefault(_Client); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Siren link used to describe navigation through a siren entity graph. * * @property {Immutable.Set} rels - set of all rels which describe this link. * @property {String} href URL - that this link refers to. */ var SirenLink = function (_Immutable$Record) { (0, _inherits3.default)(SirenLink, _Immutable$Record); /** * Constructs a new SirenLink based on the provided rels and href values. * * @param {Array.<String>} rels - array of rel values for this link * @param {String} href - URL that this link refers to. * @param {Array.<String>} classes - Array of optional class names * * @return {SirenLink} Constructed SirenLink instance. */ function SirenLink(rels, href) { var classes = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; (0, _classCallCheck3.default)(this, SirenLink); return (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(SirenLink).call(this, { rels: new _immutable2.default.Set(rels), href: href, classes: new _immutable2.default.Set(classes) })); } /** * Perhaps an HTTP Get against the href represented by this Link. * * @return {superagent-promise} superagent request as a with a promise wrapper */ (0, _createClass3.default)(SirenLink, [{ key: 'follow', value: function follow() { return _Client2.default.get(this.href); } }]); return SirenLink; }(_immutable2.default.Record({ /** * @member {Immutable.Set} */ rels: new _immutable2.default.Set(), classes: new _immutable2.default.Set(), href: null })); exports.default = SirenLink; //# sourceMappingURL=SirenLink.js.map