Best JavaScript code snippet using wpt
DwrProxy.js
Source:DwrProxy.js
1Ext.namespace( "Ext.ux.data" );23/**4 * @class Ext.ux.data.DwrProxy5 * @extends Ext.data.DataProxy6 * @author loeppky An implementation of Ext.data.DataProxy that uses DWR to make a remote call. Note that not all of7 * Ext.data.DataProxy's configuration options make sense for Ext.ux.data.DwrProxy. The following constructor8 * sample code contains all the available options that can be set: <code><pre>9 * new Ext.ux.data.DwrProxy({10 * // Defined by Ext.data.DataProxy11 * apiActionToHanderMap : {12 * read : {13 * dwrFunction : DwrInterface.read,14 * // Define a custom function that passes the paging parameters to DWR.15 * getDwrArgsFunction : function(request) {16 * var pagingParamNames = this.store.paramNames;17 * var params = request.params;18 * return [params[pagingParamNames.start], params[pagingParamNames.limit]];19 * },20 * // The scope is set to "this" so that this store's paging parameter names can be accessed.21 * getDwrArgsScope : this22 * },23 * // These aren't needed if only doing reading.24 * create : {25 * // Use the default function which will set the DWR args to an array of all the objects to create.26 * dwrFunction : DwrInterface.create27 * },28 * update : {29 * dwrFunction : DwrInterface.update30 * },31 * destroy : {32 * dwrFunction : DwrInterface.destroy,33 * // Define a custom function to pass a login and password, in addition to the objects to delete.34 * getDwrArgsFunction : function(request, recordDataArray) {35 * return [recordDataArray, this.login, this.password];36 * }37 * getDwrArgsScope : this38 * }39 * }40 * });41 * </pre></code>42 * @constructor43 * @param {Object}44 * configOrMethod The config object, or a read method.45 * @param {Function}46 * errorHandler47 */48Ext.ux.data.DwrProxy = function( configOrMethod, errorHandler ) {4950 // changed by PP for backwards compatibility with our old Gemma code, where we don't generally use the api:{read:51 // xxx}52 // format.5354 this.apiActionToHandlerMap = {};55 if ( configOrMethod.apiActionToHandlerMap ) {56 Ext.iterate( Ext.data.Api.actions, function( action ) {57 var actionHandlerConfig = configOrMethod.apiActionToHandlerMap[action];58 if ( actionHandlerConfig ) {59 actionHandlerConfig.action = action;60 this.apiActionToHandlerMap[action] = new Ext.ux.data.DwrProxy.ActionHandler( actionHandlerConfig );61 }62 }, this );6364 // Ext.data.DataProxy requires that an API action be defined under the "api" key.65 // If it isn't, an Ext.data.DataProxy.Error is thrown.66 // To avoid this, api is set to apiActionToHandlerMap since they share the same keys ("create", "read",67 // "update",68 // and "destroy").69 configOrMethod.api = this.apiActionToHandlerMap;70 Ext.ux.data.DwrProxy.superclass.constructor.call( this, configOrMethod );71 } else if ( typeof configOrMethod == 'function' ) {72 // Backwards compatibility (PP)73 // Construct Ext.ux.data.DwrProxy.ActionHandlers from any configs objects.74 this.apiActionToHandlerMap['read'] = new Ext.ux.data.DwrProxy.ActionHandler( {75 action : 'read',76 dwrFunction : configOrMethod77 } );7879 var upconf = configOrMethod || {};80 upconf.api = this.apiActionToHandlerMap;81 Ext.ux.data.DwrProxy.superclass.constructor.call( this, upconf );82 } else {83 throw "OH no! + configOrMethod: " + configOrMethod;84 }8586 if ( typeof errorHandler == 'function' ) {87 this.errorHandler = errorHandler;88 } else {89 this.errorHandler = Gemma.genericErrorHandler;90 }9192};9394// for backwards compatibility.95Ext.data.DWRProxy = Ext.ux.data.DwrProxy;9697Ext.extend( Ext.ux.data.DwrProxy, Ext.data.DataProxy, {9899 /**100 * @cfg {Object} apiActionToHandlerMap. A map of {@link Ext.data.Api} actions to corresponding101 * {@link Ext.ux.data.DwrProxy.ActionHandler}s. Note: this option is very similar to102 * {@link Ext.data.DataProxy#api}, but since the values need to be different, this new option is created so as103 * not to create confusion. The name of this option is also more clear.104 */105 apiActionToHandlerMap : {},106107 /**108 * DwrProxy implementation of {@link Ext.data.DataProxy#doRequest}. This implementation attempts to mirror109 * {@link Ext.data.HttpProxy#doRequest} as much as possible. The getDwrArgsFunction is called for the corresponding110 * action, and then a request is made for the dwrFunction that corresponds with the provided action. See111 * {@link Ext.data.DataProxy#request} for the parameter descriptions.112 * 113 * @private114 */115 doRequest : function( action, records, params, reader, callback, scope, options ) {116 var request = new Ext.ux.data.DataProxy.Request( action, records, params, reader, callback, scope, options );117 var apiActionHandler = this.apiActionToHandlerMap[action];118 if ( !apiActionHandler ) {119 throw new Exception( 'No API Action Handler defined for action: ' + action );120 }121122 var dwrArgs = apiActionHandler.getDwrArgsFunction.call( apiActionHandler.getDwrArgsScope, request, this123 .getRecordDataArray( records ), this.getRecordDataBeforeUpdateArray( records ) )124 || [];125126 dwrArgs.push( this.createCallback( request ) );127 apiActionHandler.dwrFunction.apply( Object, dwrArgs ); // the scope for calling the dwrFunction doesn't128 // matter, so we simply set it to Object.129 },130131 /**132 * @param {Ext.data.Record[]}133 * records The {@link Ext.data.Record}s to pull the data out of.134 * @return {Object[]} Array containing the result of {@link Ext.data.Record#data} for each {@link Ext.data.Record}.135 * This is used so the raw {@link Ext.data.Record}s are not sent to DWR, since they have fields the DWR DTO136 * won't be expecting.137 */138 getRecordDataArray : function( records ) {139 return Ext.pluck( records, 'data' ) || [];140 },141142 /**143 * @param {Ext.data.Record[]}144 * records The {@link Ext.data.Record}s that have been updated to get their pre-upadate data from.145 * @return {Object[]} Array containing the {@link Ext.data.Record#data} before it was updated. This is used so the146 * raw {@link Ext.data.Record}s are not sent to DWR, since they have fields the DWR DTO won't be expecting.147 */148 getRecordDataBeforeUpdateArray : function( records ) {149 var recordDataBeforeUpdate = [];150 Ext.each( records, function( record ) {151 // Create the record data as it existed before it was updated.152 recordDataBeforeUpdate.push( Ext.apply( {}, record.modified, record.data ) );153 } );154 return recordDataBeforeUpdate;155 },156157 /**158 * Helper method for doRequest which returns a callback function for a DWR request. The returned callback function in159 * turn invokes the callback function within the provided {Ext.ux.data.DataProxy.Request}. This mirrors160 * HttpProxy#createCallsback. DWR is unique though in that it allows one to define a callback function for success161 * and callback function for an exception. This errorHandler callback parallels Ext's "response exception" case. This162 * method thus returns two callback functions groupded as a single object that can be appended to the DWR function163 * arguments as required by DWR.164 * 165 * @param {Ext.ux.data.DataProxy.Request}166 * request The arguments passed to {@link #doRequest}.167 * @private168 */169 createCallback : function( request ) {170 return {171 callback : function( response ) {172 if ( request.action === Ext.data.Api.actions.read ) {173 this.onRead( request, response );174 } else {175 this.onWrite( request, response );176 }177 }.createDelegate( this ),178 errorHandler : function( message, exception ) {179 // The event is supposed to pass the response, but since DWR doesn't provide that to us, we pass180 // the message.181 this.handleResponseException( request, message, exception );182 }.createDelegate( this )183 };184 },185186 /**187 * Helper method for createCallback for handling the read action. After creating records from the provided response,188 * it calls the callback function within the provided {Ext.ux.data.DataProxy.Request}. This mirrors HttpProxy#onRead.189 * 190 * @param {Ext.ux.data.DataProxy.Request}191 * request The arguments passed to {@link #doRequest}.192 * @param {Object}193 * response The response from the DWR call. This should be an Object which can be converted to194 * {@link Ext.data.Records}.195 * @private196 */197 onRead : function( request, response ) {198 try {199 // Call readRecords() instead of read because read() will attempt to decode JSON to create an200 // Object,201 // but as this point DWR has already created an Object.202 readDataBlock = request.reader.readRecords( response );203 } catch (e) {204 return this.handleResponseException( request, response, e );205 }206207 if ( readDataBlock === undefined ) {208 readDataBlock = {209 success : true,210 data : []211 };212 }213214 if ( readDataBlock.success === false ) {215 this.fireEvent( "exception", this, 'remote', request.action, request.options, response, null );216 } else {217 this.fireEvent( "load", this, request, request.options );218 }219220 // The callback will usually be store.loadRecords.221 request.callback.call( request.scope, readDataBlock, request.options, readDataBlock.success );222 },223224 /**225 * Helper method for createCallback for handling the create, update, and delete actions. This mirrors226 * HttpProxy#onWrite227 * 228 * @param {Ext.ux.data.DataProxy.Request}229 * request The arguments passed to {@link #doRequest}.230 * @param {Object}231 * response The response from the DWR call. This should be an Object which can be converted to232 * {@link Ext.data.Records}.233 * @private234 */235 onWrite : function( request, response ) {236 var readDataBlock;237 try {238 readDataBlock = request.reader.readResponse( request.action, response );239 } catch (e) {240 return this.handleResponseException( request, response, e );241 }242243 if ( readDataBlock === undefined ) {244 readDataBlock = {245 success : true,246 data : []247 };248 }249250 if ( readDataBlock && readDataBlock.success === false ) {251 this.fireEvent( "exception", this, 'remote', request.action, request.options, response, request.records );252 } else {253 this.fireEvent( "write", this, request.action, readDataBlock.data, readDataBlock, request.records,254 request.options );255 }256 // store.onCreateRecords or onUpdateRecords or onDestroyRecords.257 request.callback.call( request.scope, readDataBlock.data, readDataBlock, readDataBlock.success );258 },259260 /**261 * @param {Ext.ux.data.DataProxy.Request}262 * request The arguments passed to {@link #doRequest}.263 * @param {Object}264 * response The response from the DWR call.265 * @param {Object}266 * exception Exception that was thrown processing the request.267 */268 handleResponseException : function( request, response, exception ) {269 this.fireEvent( "exception", this, 'response', request.action, request.options, response, exception );270 if ( typeof this.errorHandler == 'function' ) {271 this.errorHandler( "Error during " + request.action, exception );272 }273 request.callback.call( request.scope, null, request.options, false );274 }275} );276277/**278 * @class Ext.ux.data.DwrProxy.ActionHandler Encapsulates the parameters passed to {@link Ext.data.DataProxy#request}.279 * @constructor280 * @param {Object}281 * config The config object.282 * @cfg {String} action [Required] The {@link Ext.data.Api} action this handler is for.283 * @cfg {Function} dwrFunction [Required] The DWR-generated function to call for the action.284 * @cfg {Function} getDwrArgsFunction [Optional] Function to call to generate the arguments for the dwrFunction. This285 * {@link Function} will be passed: - {@link Ext.ux.data.DataProxy.Request} This is useful for all action. -286 * {@link Ext.data.Record#data}s to write with their current (dirty) values. This is useful for all write actions. -287 * {@link Ext.data.Record#data}s to write with the values before any changes were made. This is only useful for288 * updates. The getDwrArgsFunction must return an Array of arguments in the order needed by the dwrFunction. This289 * class will generate the DWR callback function (the final argument passed to the dwrFunction). If no290 * getDwrArgsFunction is defined, see {@link #defaultGetDwrArgsFunctions} for defaults.291 * @cfg {Object} getDwrArgsScope [Optional] The scope to execute getDwrArgsFunction. Defaults to "Object".292 */293Ext.ux.data.DwrProxy.ActionHandler = function( config ) {294 Ext.apply( this, config );295 if ( !this.action ) {296 throw new Exception( '"action" is not defined.' );297 }298 if ( !Ext.data.Api.isAction( this.action ) ) {299 throw new Exception( this.action + ' is not a valid Ext.data.Api action.' );300 }301 if ( !this.dwrFunction ) {302 throw new Exception( '"dwrFunction" is not defined.' );303 }304 if ( !this.getDwrArgsFunction ) {305 this.getDwrArgsFunction = this.defaultGetDwrArgsFunctions[this.action];306 }307 if ( !this.getDwrArgsScope ) {308 this.getDwrArgsScope = Object;309 }310};311Ext.extend( Ext.ux.data.DwrProxy.ActionHandler, Object, {312313 /*314 * Private properties315 */316 defaultGetDwrArgsFunctions : {317 /**318 * @return {Array} MODIFIED by PP to pass request.options.params (or an empty array), which is the oldstyle.319 * @private320 */321 read : function( request ) {322 // old way323 if ( request.options && request.options.params && request.options.params.push ) {324 return request.options.params;325 }326 // new way.327 return [];328 },329330 /**331 * @param {Ext.ux.data.DataProxy.Request}332 * request333 * @param {Array}334 * recordDataArray Array of {@link Ext.data.Record#data} to write.335 * @return {Object[]} The recordDataArray wrapped in an array so the dwrFunction will send one parameter: a list336 * of {@link Ext.data.Record#data}s to create.337 * @private338 */339 create : function( request, recordDataArray ) {340 return [ recordDataArray ];341 },342343 /**344 * @param {Ext.ux.data.DataProxy.Request}345 * request346 * @param {Array}347 * recordDataArray Array of {@link Ext.data.Record#data} to write.348 * @param {Array}349 * recordDataArray Array of {@link Ext.data.Record#data} to update.350 * @return {Object[]} The oldRecordDataArray and recordDataArray wrapped in an array so the dwrFunction will send351 * two parameters: a list of {@link Ext.data.Record#data}s that are to be updated and a list of their352 * corresponding new values.353 * @private354 */355 update : function( request, recordDataArray, oldRecordDataArray ) {356 /*357 * MODIFIED by PP to just take the records to be modified.358 */359 // return [oldRecordDataArray, recordDataArray];360 return [ recordDataArray ];361 },362363 /**364 * @param {Ext.ux.data.DataProxy.Request}365 * request366 * @param {Array}367 * recordDataArray Array of {@link Ext.data.Record#data} to write.368 * @return {Object[]} The recordDataArray wrapped in an array so the dwrFunction will send one parameter: a list369 * of {@link Ext.data.Record#data}s to destroy.370 * @private371 */372 destroy : function( request, recordDataArray ) {373 return [ recordDataArray ];374 }375 }376} );377378Ext.namespace( "Ext.ux.data.DataProxy" );379/**380 * @class Ext.ux.data.DataProxy.Request Encapsulates the parameters passed to {@link Ext.data.DataProxy#request}.381 * @constructor382 * @param {String}383 * action The crud action type (create, read, update, destroy). Note: only "read" is currently supported.384 * @param {Ext.data.Record/Ext.data.Record[]}385 * records If action is "read", records will be null.386 * @param {Object}387 * params An object containing properties which are to be used as parameters for the request to the remote388 * server.389 * @param {Ext.data.DataReader}390 * reader The {@link Ext.data.DataReader} object which converts the server response into a "readDataBlock"391 * (the result from calling {@link Ext.data.DataReader#read}).392 * @param {Function}393 * callback A function to be called after the request. The callback is passed the following arguments:394 * <ul>395 * <li>readDataBlock: Data object from calling {@link Ext.data.DataReader#read}.</li>396 * <li>options: The options object (see below)</li>397 * <li>success: Boolean success indicator.</li>398 * </ul>399 * @param {Object}400 * scope The scope in which to call the callback.401 * @param {Object}402 * options An optional argument which is passed to the callback as its second parameter.403 */404Ext.ux.data.DataProxy.Request = function( action, records, params, reader, callback, scope, options ) {405 Ext.apply( this, {406 action : action,407 records : records,408 params : params,409 reader : reader,410 callback : callback,411 scope : scope,412 options : options413 } );
...
Using AI Code Generation
1var wptools = require('wptools');2var page = wptools.page('Barack_Obama');3page.readDataBlock(function(err, data) {4 if (err) {5 console.log(err);6 } else {7 console.log(data);8 }9});10var wptools = require('wptools');11var page = wptools.page('Barack_Obama');12page.readDataBlock(function(err, data) {13 if (err) {14 console.log(err);15 } else {16 console.log(data);17 }18});19var wptools = require('wptools');20var page = wptools.page('Barack_Obama');21page.readInfobox(function(err, data) {22 if (err) {23 console.log(err);24 } else {25 console.log(data);26 }27});28var wptools = require('wptools');29var page = wptools.page('Barack_Obama');30page.readInterwikiLinks(function(err, data) {31 if (err) {32 console.log(err);33 } else {34 console.log(data);35 }36});37var wptools = require('wptools');38var page = wptools.page('Barack_Obama');39page.readLinks(function(err, data) {40 if (err) {41 console.log(err);42 } else {43 console.log(data);44 }45});46var wptools = require('wptools');47var page = wptools.page('Barack_Obama');48page.readReferences(function(err, data) {49 if (err) {50 console.log(err);51 } else {52 console.log(data);53 }54});55var wptools = require('wptools');56var page = wptools.page('Barack_Obama');57page.readSections(function(err, data) {
Using AI Code Generation
1var wptree = require('./wptree');2var fs = require('fs');3var data = fs.readFileSync('datafile');4var tree = new wptree.WPTree(data);5var block = tree.readDataBlock(0);6console.log(block);
Using AI Code Generation
1var wpt = require('./wpt.js');2var fs = require('fs');3var wptFile = 'test.wpt';4var wptFileBuffer = fs.readFileSync(wptFile);5var wptFileObject = wpt.parseWPT(wptFileBuffer);6var dataBlock = wpt.readDataBlock(wptFileObject, 1);7console.log(dataBlock);
Using AI Code Generation
1const wptools = require('wptools');2const fs = require('fs');3const input = fs.createReadStream('test.txt');4let output = fs.createWriteStream('output.txt');5const wiki = wptools.page('Barack Obama');6wiki.get((err, data) => {7 if (err) throw err;8 const text = data.infobox.text;9 output.write(text);10 console.log(text);11});
Using AI Code Generation
1const wptools = require('wptools');2 console.log(data);3});4{5 "description": "India (/ˈɪndiə/ (About this soundlisten); Hindustani: Bhārat), officially the Republic of India (Bhārat Gaṇarājya),[15] is a country in South Asia. It is the seventh-largest country by area, the second-most populous country (with over 1.2 billion people), and the most populous democracy in the world. Bounded by the Indian Ocean on the south, the Arabian Sea on the southwest, and the Bay of Bengal on the southeast, it shares land borders with Pakistan to the west; China, Nepal, and Bhutan to the northeast; and Bangladesh and Myanmar to the east. In the Indian Ocean, India is in the vicinity of Sri Lanka and the Maldives; in addition, India's Andaman and Nicobar Islands share a maritime border with Thailand and Indonesia.",6 "infobox": {7 "image_map": "India highlighted in Asia (orthographic projection).svg",8 "image_map1": "India highlighted in Asia (orthographic projection).svg",9 "image_map2": "India highlighted in Asia (orthographic projection).svg",10 "image_map3": "India highlighted in Asia (orthographic projection).svg",
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!