Best JavaScript code snippet using apimocker
BsDrillDown.js
Source:BsDrillDown.js  
1var BsDrillDown = (function () {2    var innerDataStructure = { Child: {} };3    var levelWiseData = {};4    var currentNode = {};5    var keysArray = [];6    var tempKeysArray = [];7    var tempCurrentNode = {};8    var opts = {9        mainSelector: '#divHerirachy',10        keyField: 'OrgId',11        displayField: 'OrgName',12        ChildField: 'ChildOrgEntity',13        levelField: 'OrgLevel',14        headerSelector: '#header',15        hpBodySelector: '#hp',16        empLevel: 5,17        defaultState: [-1],18        headerEleClass: 'hp-header-breadcrumb',19        manageLevelWiseData:true20    };21    var $mainContainer = null;22    var $header = null;23    var $hpBody = null;24    function init(options, data) {25        opts = $.extend(opts, options);26        $mainContainer = $(opts.mainSelector);27        $header = $mainContainer.find(opts.headerSelector);28        $hpBody = $mainContainer.find(opts.hpBodySelector);29        keysArray = opts.defaultState;30        EventBinding();31        Generate(data);32        currentNode = innerDataStructure;33        //GenerateChildElementsInHp();34    }35    function onHPShow() {36        tempKeysArray = keysArray.slice();37        $header.empty();38        var result = FindNodebyKeys(keysArray, true);39        currentNode = result.currNode;40        $header.append(result.header);41        GenerateChildElementsInHp();42        //$mainContainer.show();43    }44    function onSelectionDone() {45        keysArray = tempKeysArray.slice();46        //$mainContainer.hide();47        return keysArray;48    }49    function onSelectionCancel() {50        tempKeysArray = [];51        //$mainContainer.hide();52    }53    function EventBinding() {54        $hpBody.on('click', 'a', function (e) {55            e.preventDefault();56            $(this).trigger('bsdrilldown.linkclicked');57            var currKey = $(this).data('oid');58            tempKeysArray.push(currKey);59            CreateHeaderNode($(this).text(), currKey, $header);60            currentNode = currentNode.Child[currKey];61            GenerateChildElementsInHp();62            return false;63        });64        $header.on('click', 'a.' + opts.headerEleClass, function (e) {65            e.preventDefault();66            HpHeaderHandler($(this));67        });68    }69    function Generate(root) {70        var key = root[opts.keyField];71        var nonHierObj = Object.assign({}, root);72        delete nonHierObj[opts.ChildField];73        nonHierObj.HierPaths = [];74        innerDataStructure.Child[key] = { Data: nonHierObj };75        innerDataStructure.Child[key].Child = {};76        77        if(opts.manageLevelWiseData){78            levelWiseData[0] = [];79            levelWiseData[0].push(nonHierObj);80        }81        if (root[opts.ChildField] && root[opts.ChildField].length > 0) {82            GenerateList(root, root[opts.ChildField], innerDataStructure.Child[key], {});83            delete innerDataStructure.Child[key][opts.ChildField];84        }85    }86    function GenerateList(parent, list, parentInNewFormt, topLevelKeys) {87        if (parentInNewFormt.Child == undefined)88            parentInNewFormt.Child = {};89        for (var i = 0; i < list.length; i++) {90            var objInOldFormat = list[i];91            var level = objInOldFormat[opts.levelField];92            var key = objInOldFormat[opts.keyField];93            if (level >= 1 && level < opts.empLevel) {94                topLevelKeys[level] = key;95                for(var l = opts.empLevel-1;l > level;l-- ){96                    delete topLevelKeys[l];97                }98            }99            if (level > opts.empLevel)100                level = opts.empLevel;101            102                103            if (opts.manageLevelWiseData && levelWiseData[level] == undefined)104                levelWiseData[level] = [];105            106            var nonHierObj = null; 107            if(opts.manageLevelWiseData){108                nonHierObj = MyFind(levelWiseData[level], opts.keyField, key)109            }110            if (!nonHierObj) {111                nonHierObj = Object.assign({}, objInOldFormat);112                delete nonHierObj[opts.ChildField];113                nonHierObj.HierPaths = [];114                115                if(opts.manageLevelWiseData)116                    levelWiseData[level].push(nonHierObj);117            }118            //if (level == opts.empLevel) {119                nonHierObj.HierPaths.push(Object.assign({}, topLevelKeys));120            //}121            parentInNewFormt.Child[key] = { Data: nonHierObj }122            parentInNewFormt.Child[key].Child = {};123            parentInNewFormt.Child[key].Parent = parentInNewFormt;124            delete parentInNewFormt.Child[key][opts.ChildField];125            if (objInOldFormat[opts.ChildField] && objInOldFormat[opts.ChildField].length > 0) {126                GenerateList(objInOldFormat, objInOldFormat[opts.ChildField], parentInNewFormt.Child[key], topLevelKeys);127            }128            else {129                parentInNewFormt.Child[key].islast = true;130            }131        }// end of for132    }// end of GenerateList133    function FindChildNodes(list, resultToReturn,filterCriteriaFn) {134        var childKeys = Object.keys(list);135        for (var key in list) {136            var obj = list[key];137            if(filterCriteriaFn && filterCriteriaFn(obj.Data) == true){138                if(!MyFind(resultToReturn, opts.keyField, obj.Data[opts.keyField]))139                    resultToReturn.push(obj.Data)140            }141            if (obj.Child && Object.keys(obj.Child).length > 0) {142                FindChildNodes(obj.Child, resultToReturn,filterCriteriaFn);143            }144        }// end of for145    }// end of GenerateList146    function GenerateChildElementsInHp() {147        var $documentFragment = $(document.createDocumentFragment());148        var childKeys = Object.keys(currentNode.Child);149        for (var i = 0; i < childKeys.length; i++) {150            var key = childKeys[i];151            var textToDisplay = currentNode.Child[key].Data[opts.displayField];152            var childCount = Object.keys(currentNode.Child[key].Child).length;153            var extText = "";154            if (childCount > 0)155                extText = "(" + childCount + ")";156            var $a = $("<a href='#'/>").text(textToDisplay + extText).data('oid', key).attr('oid', key);157            var $li = $("<li>").append($a);158            if (childCount > 0) {159                $li.append('<span class="fa fa-chevron-right pull-right"></span>');160            };161            $documentFragment.append($li);162        }163        $hpBody.html('').append($documentFragment);164    }165    function CreateHeaderNode(text, key, $headerObj) {166        var $a = $("<a href='#' class='" + opts.headerEleClass + "'/>").html(text + " <span>/</span> ").data('oid', key).attr('oid', key);167        $headerObj.append($a);168    }169    function HpHeaderHandler($this) {170        $this.nextAll().remove();171        tempKeysArray = GetKeysFromHeader();172        var result = FindNodebyKeys(tempKeysArray);173        currentNode = result.currNode;174        GenerateChildElementsInHp();175    }176    function GetKeysFromHeader() {177        var keys = [];178        $header.find("a." + opts.headerEleClass).each(function () {179            keys.push($(this).data('oid'));180        });181        return keys;182    }183    function GetNodesListbyKeys(topLevelkeys) {184        //Starting Point185        var _currentNode = innerDataStructure;186        var _resultToReturn = [];187        //Iterate keys Array 188        for (var i = 0; i < topLevelkeys.length; i++) {189            var key = topLevelkeys[i];190                //simply find node from child and make that node as current node191                _currentNode = _currentNode.Child[key];192                if(_currentNode.Data)193                    _resultToReturn.push(_currentNode.Data);194        }195        return _resultToReturn;196    }197    function FindNodebyKeys(keys, updateHeader) {198        var $documentFragment = null;199        if (updateHeader) {200            $documentFragment = $(document.createDocumentFragment());201        }202        //Starting Point203        var _currentNode = innerDataStructure;204        //Iterate keys Array 205        for (var i = 0; i < keys.length; i++) {206            var key = keys[i];207            //If a key is provided as 0, it means iterate all child elements and find next key in them208            if (key == 0) {209                for (var childKey in _currentNode.Child) {210                    if (_currentNode.Child[childKey].Child[keys[i + 1]]) {211                        _currentNode = _currentNode.Child[childKey];212                        break;213                    }214                }215            }216            else {217                //simply find node from child and make that node as current node218                _currentNode = _currentNode.Child[key];219            }220            if (updateHeader) {221                var extText = "";222                var childCount = Object.keys(_currentNode.Child).length;223                if (childCount > 0)224                    extText = "(" + childCount + ")";225                CreateHeaderNode(_currentNode.Data[opts.displayField] + extText, key, $documentFragment);226            }227        }228        return { currNode: _currentNode, header: $documentFragment };229    }230    //It takes a list of nodes and find a node by key. It also allows to search from specific level.231    //It returns list of nodes from target node, goes up till nodeToFindSearchStartlevel232    function FindNodeByKey(list, nodeToFindKey, nodeToFindSearchStartlevel) {233        for (var nodeKey in list) {234            if (list[nodeKey].Data[opts.levelField] >= nodeToFindSearchStartlevel && nodeKey == nodeToFindKey) {235                return [list[nodeKey]];236            }237            else {238                var result = FindNodeByKey(list[nodeKey].Child, nodeToFindKey, nodeToFindSearchStartlevel);239                if (result) {240                    result.push(list[nodeKey]);241                    return result;242                }243            }244        }245    }246    //It selects a node in hierarcal way by using toplevel keys247    //then it find248    function FindAndSelectHerirachy(topLevelKeys, nodeToFindKey) {249        var resultToReturn = topLevelKeys.slice();250        var result = FindNodebyKeys(topLevelKeys);251        currentNode = result.currNode;252        //topLevelKeys have found some node253        if (result.currNode && nodeToFindKey) {254            var nodesFromTargetTillSearchLevel = FindNodeByKey(result.currNode.Child, nodeToFindKey, opts.empLevel);255            if (nodesFromTargetTillSearchLevel && nodesFromTargetTillSearchLevel.length > 0) {256                currentNode = nodesFromTargetTillSearchLevel[0];257                for (var i = nodesFromTargetTillSearchLevel.length - 1; i >= 0; i--) {258                    resultToReturn.push(nodesFromTargetTillSearchLevel[i].Data[opts.keyField]);259                }260            }261        }262        keysArray = resultToReturn.slice();263        console.log(keysArray);264        return resultToReturn;265    }266    //Helper Method267    function MyFind(arr, attrToMatch, valueToMatch) {268        return arr.find(function (element) {269            return element[attrToMatch] == valueToMatch;270        });271    }272    return {273        initialize: function (settings, data) {274            init(settings, data);275        },276        getData: function () {277            return innerDataStructure;278        },279        getDataByLevel: function (level) {280            if(!opts.manageLevelWiseData){281                throw new Error('manageLevelWiseData is not set. Levelwise Data is not managed');282            }283            return levelWiseData[level];284        },285        SelectHerirachyByKeys: function (topLevelKeys, empKey) {286            if (topLevelKeys && topLevelKeys.length == 0)287                topLevelKeys = [-1];288            return FindAndSelectHerirachy(topLevelKeys, empKey);289        },290        showHP: function () {291            onHPShow();292        },293        doneSelection: function (callBackFn) {294            callBackFn(BsDrillDown.getCurrentNode(), function () {295                return onSelectionDone();296            });297        },298        cancelSelection: function () {299            onSelectionCancel();300        },301        getCurrentNode: function () {302            return currentNode.Data;303        },304        getCurrentHierarchy: function () {305            return keysArray;306        },307        getDataByLevelAndKey: function(level,key){308            if(!opts.manageLevelWiseData){309                throw new Error('manageLevelWiseData is not set. Levelwise Data is not managed');310            }311            return MyFind(levelWiseData[level],opts.keyField,key);312        },313        getAllChlideNodesOfCurrentSelection: function(filterCriteriaFn){314            var resultToReturn = [];315            if(filterCriteriaFn && filterCriteriaFn(currentNode.Data) == true){316                resultToReturn.push(currentNode.Data);317            }318            FindChildNodes(currentNode.Child, resultToReturn,filterCriteriaFn);319            return resultToReturn;320        },321        getCurrentHierarchyDetail: function(topLevelKeys){322            return GetNodesListbyKeys(topLevelKeys);323        }324    };...opensearch_raw_response.ts
Source:opensearch_raw_response.ts  
1/*2 * SPDX-License-Identifier: Apache-2.03 *4 * The OpenSearch Contributors require contributions made to5 * this file be licensed under the Apache-2.0 license or a6 * compatible open source license.7 */8/*9 * Licensed to Elasticsearch B.V. under one or more contributor10 * license agreements. See the NOTICE file distributed with11 * this work for additional information regarding copyright12 * ownership. Elasticsearch B.V. licenses this file to you under13 * the Apache License, Version 2.0 (the "License"); you may14 * not use this file except in compliance with the License.15 * You may obtain a copy of the License at16 *17 *    http://www.apache.org/licenses/LICENSE-2.018 *19 * Unless required by applicable law or agreed to in writing,20 * software distributed under the License is distributed on an21 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY22 * KIND, either express or implied.  See the License for the23 * specific language governing permissions and limitations24 * under the License.25 */26/*27 * Modifications Copyright OpenSearch Contributors. See28 * GitHub history for details.29 */30import { SearchResponse } from 'elasticsearch';31import { ExpressionTypeDefinition } from '../../../../expressions/common';32const name = 'opensearch_raw_response';33export interface OpenSearchRawResponse<T = unknown> {34  type: typeof name;35  body: SearchResponse<T>;36}37// flattens opensearch object into table rows38function flatten(obj: any, keyPrefix = '') {39  let topLevelKeys: Record<string, any> = {};40  const nestedRows: any[] = [];41  const prefix = keyPrefix ? keyPrefix + '.' : '';42  Object.keys(obj).forEach((key) => {43    if (Array.isArray(obj[key])) {44      nestedRows.push(45        ...obj[key]46          .map((nestedRow: any) => flatten(nestedRow, prefix + key))47          .reduce((acc: any, object: any) => [...acc, ...object], [])48      );49    } else if (typeof obj[key] === 'object' && obj[key] !== null) {50      const subRows = flatten(obj[key], prefix + key);51      if (subRows.length === 1) {52        topLevelKeys = { ...topLevelKeys, ...subRows[0] };53      } else {54        nestedRows.push(...subRows);55      }56    } else {57      topLevelKeys[prefix + key] = obj[key];58    }59  });60  if (nestedRows.length === 0) {61    return [topLevelKeys];62  } else {63    return nestedRows.map((nestedRow) => ({ ...nestedRow, ...topLevelKeys }));64  }65}66const parseRawDocs = (hits: SearchResponse<unknown>['hits']) => {67  return hits.hits.map((hit) => hit.fields || hit._source).filter((hit) => hit);68};69const convertResult = (body: SearchResponse<unknown>) => {70  return !body.aggregations ? parseRawDocs(body.hits) : flatten(body.aggregations);71};72export type OpenSearchRawResponseExpressionTypeDefinition = ExpressionTypeDefinition<73  typeof name,74  OpenSearchRawResponse,75  OpenSearchRawResponse76>;77export const opensearchRawResponse: OpenSearchRawResponseExpressionTypeDefinition = {78  name,79  to: {80    datatable: (context: OpenSearchRawResponse) => {81      const rows = convertResult(context.body);82      const columns = rows.length83        ? Object.keys(rows[0]).map((key) => ({84            id: key,85            name: key,86            meta: {87              type: typeof rows[0][key],88              field: key,89              params: {},90            },91          }))92        : [];93      return {94        type: 'datatable',95        meta: {96          type: 'opensearchdsl',97          source: '*',98        },99        columns,100        rows,101      };102    },103  },...es_raw_response.js
Source:es_raw_response.js  
1"use strict";2Object.defineProperty(exports, "__esModule", {3  value: true4});5exports.esRawResponse = void 0;6/*7 * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one8 * or more contributor license agreements. Licensed under the Elastic License9 * 2.0 and the Server Side Public License, v 1; you may not use this file except10 * in compliance with, at your election, the Elastic License 2.0 or the Server11 * Side Public License, v 1.12 */13const name = 'es_raw_response';14// flattens elasticsearch object into table rows15function flatten(obj, keyPrefix = '') {16  let topLevelKeys = {};17  const nestedRows = [];18  const prefix = keyPrefix ? keyPrefix + '.' : '';19  Object.keys(obj).forEach(key => {20    if (Array.isArray(obj[key])) {21      nestedRows.push(...obj[key].map(nestedRow => flatten(nestedRow, prefix + key)).reduce((acc, object) => [...acc, ...object], []));22    } else if (typeof obj[key] === 'object' && obj[key] !== null) {23      const subRows = flatten(obj[key], prefix + key);24      if (subRows.length === 1) {25        topLevelKeys = { ...topLevelKeys,26          ...subRows[0]27        };28      } else {29        nestedRows.push(...subRows);30      }31    } else {32      topLevelKeys[prefix + key] = obj[key];33    }34  });35  if (nestedRows.length === 0) {36    return [topLevelKeys];37  } else {38    return nestedRows.map(nestedRow => ({ ...nestedRow,39      ...topLevelKeys40    }));41  }42}43const parseRawDocs = hits => {44  return hits.hits.map(hit => hit.fields || hit._source).filter(hit => hit);45};46const convertResult = body => {47  return !body.aggregations ? parseRawDocs(body.hits) : flatten(body.aggregations);48};49const esRawResponse = {50  name,51  to: {52    datatable: context => {53      const rows = convertResult(context.body);54      const columns = rows.length ? Object.keys(rows[0]).map(key => ({55        id: key,56        name: key,57        meta: {58          type: typeof rows[0][key],59          field: key,60          params: {}61        }62      })) : [];63      return {64        type: 'datatable',65        meta: {66          type: 'esdsl',67          source: '*'68        },69        columns,70        rows71      };72    }73  }74};...Using AI Code Generation
1const apimocker = require('apimocker');2apimocker.loadConfig('./apimocker.json');3apimocker.setGlobalHeaders({ 'X-Global-Header': 'global' });4apimocker.setGlobalHeaders({ 'X-Global-Header2': 'global2' });5apimocker.setGlobalHeaders({ 'X-Global-Header3': 'global3' });6apimocker.setGlobalHeaders({ 'X-Global-Header4': 'global4' });7apimocker.setGlobalHeaders({ 'X-Global-Header5': 'global5' });8apimocker.setGlobalHeaders({ 'X-Global-Header6': 'global6' });9apimocker.setGlobalHeaders({ 'X-Global-Header7': 'global7' });10apimocker.setGlobalHeaders({ 'X-Global-Header8': 'global8' });11apimocker.setGlobalHeaders({ 'X-Global-Header9': 'global9' });12apimocker.setGlobalHeaders({ 'X-Global-Header10': 'global10' });13apimocker.setGlobalHeaders({ 'X-Global-Header11': 'global11' });14apimocker.setGlobalHeaders({ 'X-Global-Header12': 'global12' });15apimocker.setGlobalHeaders({ 'X-Global-Header13': 'global13' });16apimocker.setGlobalHeaders({ 'X-Global-Header14': 'global14' });17apimocker.setGlobalHeaders({ 'X-Global-Header15': 'global15' });18apimocker.setGlobalHeaders({ 'X-Global-Header16': 'global16' });19apimocker.setGlobalHeaders({ 'X-Global-Header17': 'global17' });20apimocker.setGlobalHeaders({ 'X-Global-Header18': 'global18' });21apimocker.setGlobalHeaders({ 'X-Global-Header19': 'global19' });22apimocker.setGlobalHeaders({ 'X-Global-Header20': 'global20' });23apimocker.setGlobalHeaders({ 'X-Global-Header21': 'global21' });24apimocker.setGlobalHeaders({ 'X-Global-Header22': 'global22' });25apimocker.setGlobalHeaders({ 'X-Global-Header23': 'global23' });26apimocker.setGlobalHeaders({ 'X-Global-Header24': 'global24'Using AI Code Generation
1var apimocker = require('apimocker');2var path = require('path');3var mockServer = apimocker.createServer({4  rootDir: path.join(__dirname, 'mocks'),5});6mockServer.start(function() {7  console.log('Mock server started at ' + mockServer.url);8  console.log('Press Ctrl+C to stop');9});10{11  "test": {12    "response": {13      "headers": {14      },15      "json": {16      }17    }18  }19}20var apimocker = require('apimocker');21var path = require('path');22var mockServer = apimocker.createServer({23  rootDir: path.join(__dirname, 'mocks'),24});25mockServer.start(function() {26  console.log('Mock server started at ' + mockServer.url);27  console.log('Press Ctrl+C to stop');28  mockServer.topLevelKeys().then(function(keys) {29    console.log(keys);30  });31});32{33  "test": {34    "response": {35      "headers": {36      },37      "json": {38      }39    }Using AI Code Generation
1var apimocker = require('apimocker');2apimocker.load({3});4apimocker.topLevelKeys(function (err, keys) {5    if (err) {6        console.log(err);7    } else {8        console.log(keys);9    }10});11### apimocker.topLevelKeysSync()12var apimocker = require('apimocker');13apimocker.load({14});15var keys = apimocker.topLevelKeysSync();16console.log(keys);17### apimocker.topLevelKeysFor()18var apimocker = require('apimocker');19apimocker.load({20});21apimocker.topLevelKeysFor('test', function (err, keys) {22    if (err) {23        console.log(err);24    } else {25        console.log(keys);26    }27});28### apimocker.topLevelKeysForSync()29var apimocker = require('apimocker');30apimocker.load({31});32var keys = apimocker.topLevelKeysForSync('test');33console.log(keys);34### apimocker.get()Using AI Code Generation
1var apimocker = require('apimocker');2var path = require('path');3var fs = require('fs');4var options = {5  "mappings": path.join(__dirname, 'mappings'),6  "static": path.join(__dirname, 'static'),7};8apimocker.loadMockFiles(options, function() {9  apimocker.listen(options, function() {10    console.log("Listening on port " + options.port);11    var keys = apimocker.topLevelKeys();12    console.log("Top level keys: " + keys);13  });14});15var apimocker = require('apimocker');16var path = require('path');17var fs = require('fs');18var options = {19  "mappings": path.join(__dirname, 'mappings'),20  "static": path.join(__dirname, 'static'),21};22apimocker.loadMockFiles(options, function() {23  apimocker.listen(options, function() {24    console.log("Listening on port " + options.port);25    var mappings = apimocker.getMappings();26    console.log("Mappings: " + JSON.stringify(mappings));27  });28});29var apimocker = require('apimocker');30var path = require('path');31var fs = require('fs');32var options = {33  "mappings": path.join(__dirname, 'mappings'),34  "static": path.join(__dirname, 'static'),35};36apimocker.loadMockFiles(options, function() {37  apimocker.listen(options, function() {38    console.log("Listening on port " + options.port);39    var mappings = apimocker.getMappings();40    console.log("Mappings: " + JSON.stringify(mappings));Using AI Code Generation
1var apimocker = require('apimocker');2apimocker.load({3});4apimocker.setGlobalHeaders({5});6apimocker.setGlobalHeaders({7});8apimocker.setGlobalHeaders({9},true);10apimocker.setGlobalHeaders({11},false);12apimocker.setGlobalHeaders({13});14apimocker.setGlobalHeaders({15},true);16apimocker.setGlobalHeaders({17},false);18apimocker.setGlobalHeaders({19});20apimocker.setGlobalHeaders({21},true);22apimocker.setGlobalHeaders({23},false);24apimocker.setGlobalHeaders({25});26apimocker.setGlobalHeaders({27},true);28apimocker.setGlobalHeaders({29},false);30apimocker.setGlobalHeaders({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!!
