UNPKG

breeze-client

Version:

Breeze data management for JavaScript clients

1 lines 4.66 kB
{"version":3,"file":"breeze-client-adapter-ajax-post.mjs","sources":["../../src/adapter-ajax-post.ts","../../src/breeze-client-adapter-ajax-post.ts"],"sourcesContent":["import * as breeze from 'breeze-client';\r\n\r\n/**\r\n * Functions to enable Breeze to use POST for queries when\r\n * special parameters are passed using the .withParameters function.\r\n *\r\n * Copyright 2015-2021 IdeaBlade, Inc. All Rights Reserved.\r\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\r\n * conditions of the IdeaBlade Breeze license, available at http://www.breezejs.com/license\r\n *\r\n * Author: Steve Schmitt\r\n * Version: \r\n * 1.2.0 - Moved into breeze-client repo and npm package\r\n * 1.1.0 - revised: eliminated return object, configAjaxAdapter method; add ajaxPostEnabled flag\r\n * 1.0.6 - original\r\n *\r\n * Special parameters:\r\n * $method: ‘POST’ or ‘GET’ (the default)\r\n * $encoding: ‘JSON’ or x-www-form-urlencoded (the default)\r\n * $data: contains the data to be sent to the server\r\n *\r\n * Installation:\r\n * var ajaxAdapter = config.initializeAdapterInstance('ajax', adapterName, true);\r\n * AjaxPostWrapper.wrapAjax(ajaxAdapter);\r\n *\r\n * Example:\r\n * var query = breeze.EntityQuery.from('SimilarCustomersPOST')\r\n * .withParameters({\r\n * $method: 'POST',\r\n * $encoding: 'JSON',\r\n * $data: { CompanyName: 'Hilo Hattie', ContactName: 'Donald', City: 'Duck', Country: 'USA', Phone: '808-234-5678' }\r\n * });\r\n *\r\n **/\r\nexport class AjaxPostWrapper {\r\n\r\n static wrapAjax(ajaxAdapter: breeze.AjaxAdapter) {\r\n\r\n if ((ajaxAdapter as any).ajaxPostEnabled) {\r\n return; // already wrapped it.\r\n }\r\n\r\n let ajaxFunction = ajaxAdapter.ajax;\r\n if (ajaxFunction) {\r\n ajaxAdapter.ajax = function (settings) {\r\n processSettings(settings);\r\n return ajaxFunction.call(ajaxAdapter, settings);\r\n };\r\n (ajaxAdapter as any).ajaxPostEnabled = true;\r\n }\r\n\r\n\r\n // Handle the POST-specific properties in the settings - $method, $data, $encoding\r\n function processSettings(settings: any) {\r\n let parameters = settings && settings.params;\r\n if (!parameters) return settings;\r\n\r\n // wrapped data; handle the special properties\r\n settings.type = parameters.$method || settings.type; // GET is default method\r\n\r\n let data = parameters.$data;\r\n if (data) {\r\n // if $data exists, assume all of other parameters are guidance for building a POST\r\n if (parameters.$encoding === 'JSON') {\r\n // JSON encoding\r\n settings.processData = false; // don't let JQuery form-encode it\r\n settings.contentType = \"application/json; charset=UTF-8\";\r\n\r\n if (typeof (data) === 'object') {\r\n settings.data = JSON.stringify(data); // encode parameters as JSON\r\n } else {\r\n settings.data = data;\r\n }\r\n } else {\r\n settings.data = data;\r\n }\r\n // must be null or jQuery ajax adapter won't see settings.data\r\n settings.params = null;\r\n }\r\n\r\n return settings;\r\n }\r\n }\r\n\r\n\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './adapter-ajax-post';\n"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BI;MACS,eAAe,CAAA;IAE1B,OAAO,QAAQ,CAAC,WAA+B,EAAA;QAE7C,IAAK,WAAmB,CAAC,eAAe,EAAE;AACxC,YAAA,OAAO;AACR,SAAA;AAED,QAAA,IAAI,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;AACpC,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,WAAW,CAAC,IAAI,GAAG,UAAU,QAAQ,EAAA;gBACnC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC1B,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAClD,aAAC,CAAC;AACD,YAAA,WAAmB,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7C,SAAA;;QAID,SAAS,eAAe,CAAC,QAAa,EAAA;AACpC,YAAA,IAAI,UAAU,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC;AAC7C,YAAA,IAAI,CAAC,UAAU;AAAE,gBAAA,OAAO,QAAQ,CAAC;;AAGjC,YAAA,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC;AAEpD,YAAA,IAAI,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;AAC5B,YAAA,IAAI,IAAI,EAAE;;AAER,gBAAA,IAAI,UAAU,CAAC,SAAS,KAAK,MAAM,EAAE;;AAEnC,oBAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,oBAAA,QAAQ,CAAC,WAAW,GAAG,iCAAiC,CAAC;AAEzD,oBAAA,IAAI,QAAQ,IAAI,CAAC,KAAK,QAAQ,EAAE;wBAC9B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACtC,qBAAA;AAAM,yBAAA;AACL,wBAAA,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACtB,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACtB,iBAAA;;AAED,gBAAA,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AACxB,aAAA;AAED,YAAA,OAAO,QAAQ,CAAC;SACjB;KACF;AAGF;;ACrFD;;AAEG;;;;"}