Server IP : 66.29.132.122 / Your IP : 3.141.27.207 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/alt/alt-nodejs8/root/lib/node_modules/npm/node_modules/json-schema/lib/ |
Upload File : |
/** * JSON Schema link handler * Copyright (c) 2007 Kris Zyp SitePen (www.sitepen.com) * Licensed under the MIT (MIT-LICENSE.txt) license. */ (function (root, factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define([], function () { return factory(); }); } else if (typeof module === 'object' && module.exports) { // Node. Does not work with strict CommonJS, but // only CommonJS-like environments that support module.exports, // like Node. module.exports = factory(); } else { // Browser globals root.jsonSchemaLinks = factory(); } }(this, function () {// setup primitive classes to be JSON Schema types var exports = {}; exports.cacheLinks = true; exports.getLink = function(relation, instance, schema){ // gets the URI of the link for the given relation based on the instance and schema // for example: // getLink( // "brother", // {"brother_id":33}, // {links:[{rel:"brother", href:"Brother/{brother_id}"}]}) -> // "Brother/33" var links = schema.__linkTemplates; if(!links){ links = {}; var schemaLinks = schema.links; if(schemaLinks && schemaLinks instanceof Array){ schemaLinks.forEach(function(link){ /* // TODO: allow for multiple same-name relations if(links[link.rel]){ if(!(links[link.rel] instanceof Array)){ links[link.rel] = [links[link.rel]]; } }*/ links[link.rel] = link.href; }); } if(exports.cacheLinks){ schema.__linkTemplates = links; } } var linkTemplate = links[relation]; return linkTemplate && exports.substitute(linkTemplate, instance); }; exports.substitute = function(linkTemplate, instance){ return linkTemplate.replace(/\{([^\}]*)\}/g, function(t, property){ var value = instance[decodeURIComponent(property)]; if(value instanceof Array){ // the value is an array, it should produce a URI like /Table/(4,5,8) and store.get() should handle that as an array of values return '(' + value.join(',') + ')'; } return value; }); }; return exports; }));