meadow-endpoints 4.0.12 → 4.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3185,13 +3185,16 @@ tmpResult.error=pPreparedExecutionError;tmpResult.value=false;try{tmpResult.valu
3185
3185
  */var libSimpleGet=require('simple-get');var MeadowProvider=function MeadowProvider(){function createNew(pFable){// If a valid Fable object isn't passed in, return a constructor
3186
3186
  if(typeof pFable!=='object'){return{new:createNew};}var _Fable=pFable;var _GlobalLogLevel=0;var _Dialect='MeadowEndpoints';var _Headers={};var _Cookies=[];var _EndpointSettings=_Fable.settings.hasOwnProperty('MeadowEndpoints')?JSON.parse(JSON.stringify(_Fable.settings.MeadowEndpoints)):{ServerProtocol:'http',ServerAddress:'127.0.0.1',ServerPort:'8086',ServerEndpointPrefix:'1.0/'};var buildURL=function buildURL(pAddress){return"".concat(_EndpointSettings.ServerProtocol,"://").concat(_EndpointSettings.ServerAddress,":").concat(_EndpointSettings.ServerPort,"/").concat(_EndpointSettings.ServerEndpointPrefix).concat(pAddress);};var buildRequestOptions=function buildRequestOptions(pQuery){if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.records);}let tmpURL=buildURL(pQuery.query.body);let tmpRequestOptions={url:tmpURL,headers:_Fable.Utility.extend({cookie:''},_Headers)};tmpRequestOptions.headers.cookie=_Cookies.join(';');if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("Request options built...",tmpRequestOptions);return tmpRequestOptions;};// The Meadow marshaller also passes in the Schema as the third parameter, but this is a blunt function ATM.
3187
3187
  var marshalRecordFromSourceToObject=function marshalRecordFromSourceToObject(pObject,pRecord){for(var tmpColumn in pRecord){pObject[tmpColumn]=pRecord[tmpColumn];}};var Create=function Create(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect(_Dialect).buildCreateQuery();let tmpRequestOptions=buildRequestOptions(pQuery);// TODO: Should this test for exactly one?
3188
- if(!pQuery.query.records.length>0){tmpResult.error='No records passed for proxying to Meadow-Endpoints.';return fCallback();}tmpRequestOptions.body=pQuery.query.records[0];tmpRequestOptions.json=true;libSimpleGet.post(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> POST request connected");if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> POST data chunk size ".concat(pChunk.length,"b received"));tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData)tmpResult.value=JSON.parse(tmpData);// TODO Because this was proxied, read happens at this layer too. Inefficient -- fixable
3189
- let tmpIdentityColumn="ID".concat(pQuery.parameters.scope);if(tmpResult.value.hasOwnProperty(tmpIdentityColumn))tmpResult.value=tmpResult.value[tmpIdentityColumn];if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug("==> POST completed data size ".concat(tmpData.length,"b received"),tmpResult);}return fCallback();});});};// This is a synchronous read, good for a few records.
3188
+ if(!pQuery.query.records.length>0){tmpResult.error='No records passed for proxying to Meadow-Endpoints.';return fCallback();}tmpRequestOptions.body=pQuery.query.records[0];tmpRequestOptions.json=true;libSimpleGet.post(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> POST request connected");if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> POST data chunk size ".concat(pChunk.length,"b received"));tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData){try{tmpResult.value=JSON.parse(tmpData);}catch(pParseError){tmpResult.error=new Error("Failed to parse Create response as JSON: ".concat(pParseError.message));return fCallback();}}// TODO Because this was proxied, read happens at this layer too. Inefficient -- fixable
3189
+ const tmpIdentityColumn="ID".concat(pQuery.parameters.scope);if(tmpResult.value&&tmpResult.value.hasOwnProperty(tmpIdentityColumn)){tmpResult.value=tmpResult.value[tmpIdentityColumn];}if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug("==> POST completed data size ".concat(tmpData.length,"b received"),tmpResult);}return fCallback();});});};// This is a synchronous read, good for a few records.
3190
3190
  // TODO: Add a pipe-able read for huge sets
3191
- var Read=function Read(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect(_Dialect).buildReadQuery();let tmpRequestOptions=buildRequestOptions(pQuery);libSimpleGet.get(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> GET request connected");if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> GET data chunk size ".concat(pChunk.length,"b received"));tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData)tmpResult.value=JSON.parse(tmpData);if(pQuery.query.body.startsWith("".concat(pQuery.parameters.scope,"/"))){// If this is not a plural read, make the result into an array.
3191
+ var Read=function Read(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect(_Dialect).buildReadQuery();let tmpRequestOptions=buildRequestOptions(pQuery);libSimpleGet.get(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> GET request connected");if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> GET data chunk size ".concat(pChunk.length,"b received"));tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData){try{tmpResult.value=JSON.parse(tmpData);}catch(pParseError){tmpResult.error=new Error("Failed to parse Read response as JSON: ".concat(pParseError.message));return fCallback();}}if(pQuery.query.body.startsWith("".concat(pQuery.parameters.scope,"/"))){// If this is not a plural read, make the result into an array.
3192
3192
  tmpResult.value=[tmpResult.value];}if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug("==> GET completed data size ".concat(tmpData.length,"b received"),tmpResult);}fCallback();});});};var Update=function Update(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect(_Dialect).buildUpdateQuery();let tmpRequestOptions=buildRequestOptions(pQuery);// TODO: Should this test for exactly one?
3193
- if(!pQuery.query.records.length>0){tmpResult.error='No records passed for proxying to Meadow-Endpoints.';return fCallback();}tmpRequestOptions.body=pQuery.query.records[0];tmpRequestOptions.json=true;libSimpleGet.put(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> PUT request connected");if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> PUT data chunk size ".concat(pChunk.length,"b received"));tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData)tmpResult.value=JSON.parse(tmpData);// TODO Because this was proxied, read happens at this layer too. Inefficient -- fixable
3194
- let tmpIdentityColumn="ID".concat(pQuery.parameters.scope);if(tmpResult.value.hasOwnProperty(tmpIdentityColumn))tmpResult.value=tmpResult.value[tmpIdentityColumn];if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug("==> PUT completed data size ".concat(tmpData.length,"b received"),tmpResult);}return fCallback();});});};var Delete=function Delete(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect(_Dialect).buildDeleteQuery();let tmpRequestOptions=buildRequestOptions(pQuery);libSimpleGet.delete(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> DEL request connected");if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> DEL data chunk size ".concat(pChunk.length,"b received"));tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData)tmpResult.value=JSON.parse(tmpData);if(tmpResult.value.hasOwnProperty('Count'))tmpResult.value=tmpResult.value.Count;if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug("==> DEL completed data size ".concat(tmpData.length,"b received"),tmpResult);}fCallback();});});};var Count=function Count(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect(_Dialect).buildCountQuery();let tmpRequestOptions=buildRequestOptions(pQuery);libSimpleGet.get(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> GET request connected");if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> GET data chunk size ".concat(pChunk.length,"b received"));tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData)tmpResult.value=JSON.parse(tmpData);try{tmpResult.value=tmpResult.value.Count;}catch(pErrorGettingRowcount){// This is an error state...
3193
+ if(!pQuery.query.records.length>0){tmpResult.error='No records passed for proxying to Meadow-Endpoints.';return fCallback();}tmpRequestOptions.body=pQuery.query.records[0];tmpRequestOptions.json=true;libSimpleGet.put(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> PUT request connected");if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> PUT data chunk size ".concat(pChunk.length,"b received"));tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData){try{tmpResult.value=JSON.parse(tmpData);}catch(pParseError){tmpResult.error=new Error("Failed to parse Update response as JSON: ".concat(pParseError.message));return fCallback();}}// Keep result.value as the full response object so the
3194
+ // Meadow Update waterfall's typeof check passes (it expects
3195
+ // an object). The subsequent Read step uses the existing
3196
+ // filters to re-read the updated record.
3197
+ if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug("==> PUT completed data size ".concat(tmpData.length,"b received"),tmpResult);}return fCallback();});});};var Delete=function Delete(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect(_Dialect).buildDeleteQuery();let tmpRequestOptions=buildRequestOptions(pQuery);libSimpleGet.delete(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> DEL request connected");if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> DEL data chunk size ".concat(pChunk.length,"b received"));tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData){try{tmpResult.value=JSON.parse(tmpData);}catch(pParseError){tmpResult.error=new Error("Failed to parse Delete response as JSON: ".concat(pParseError.message));return fCallback();}}if(tmpResult.value&&tmpResult.value.hasOwnProperty('Count')){tmpResult.value=tmpResult.value.Count;}if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug("==> DEL completed data size ".concat(tmpData.length,"b received"),tmpResult);}fCallback();});});};var Count=function Count(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect(_Dialect).buildCountQuery();let tmpRequestOptions=buildRequestOptions(pQuery);libSimpleGet.get(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> GET request connected");if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug("--> GET data chunk size ".concat(pChunk.length,"b received"));tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData){try{tmpResult.value=JSON.parse(tmpData);}catch(pParseError){tmpResult.error=new Error("Failed to parse Count response as JSON: ".concat(pParseError.message));return fCallback();}}try{tmpResult.value=tmpResult.value.Count;}catch(pErrorGettingRowcount){// This is an error state...
3195
3198
  tmpResult.value=-1;_Fable.log.warn('Error getting rowcount during count query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug("==> GET completed data size ".concat(tmpData.length,"b received"),tmpResult);}fCallback();});});};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Count:Count,getProvider:{},providerCreatesSupported:false,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{"simple-get":143}],115:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
3196
3199
  /**
3197
3200
  * @license MIT