Best JavaScript code snippet using argos
themedTokenizer.ts
Source:themedTokenizer.ts
1/*---------------------------------------------------------2 * Copyright (C) Microsoft Corporation. All rights reserved.3 *--------------------------------------------------------*/4'use strict';5import { IGrammar, StackElement, IRawTheme, IRawThemeSetting } from '../main';6import { StackElementMetadata } from '../grammar';7export interface IThemedTokenScopeExplanation {8 scopeName: string;9 themeMatches: IRawThemeSetting[];10}11export interface IThemedTokenExplanation {12 content: string;13 scopes: IThemedTokenScopeExplanation[];14}15export interface IThemedToken {16 content: string;17 color: string;18 explanation: IThemedTokenExplanation[];19}20export function tokenizeWithTheme(theme: IRawTheme, colorMap: string[], fileContents: string, grammar: IGrammar): IThemedToken[] {21 let lines = fileContents.split(/\r\n|\r|\n/);22 let ruleStack: StackElement = null;23 let actual: IThemedToken[] = [], actualLen = 0;24 for (let i = 0, len = lines.length; i < len; i++) {25 let line = lines[i];26 let resultWithScopes = grammar.tokenizeLine(line, ruleStack);27 let tokensWithScopes = resultWithScopes.tokens;28 let result = grammar.tokenizeLine2(line, ruleStack);29 let tokensLength = result.tokens.length / 2;30 let tokensWithScopesIndex = 0;31 for (let j = 0; j < tokensLength; j++) {32 let startIndex = result.tokens[2 * j];33 let nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;34 let tokenText = line.substring(startIndex, nextStartIndex);35 if (tokenText === '') {36 continue;37 }38 let metadata = result.tokens[2 * j + 1];39 let foreground = StackElementMetadata.getForeground(metadata);40 let foregroundColor = colorMap[foreground];41 let explanation: IThemedTokenExplanation[] = [];42 let tmpTokenText = tokenText;43 while (tmpTokenText.length > 0) {44 let tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];45 let tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);46 tmpTokenText = tmpTokenText.substring(tokenWithScopesText.length);47 explanation.push({48 content: tokenWithScopesText,49 scopes: explainThemeScopes(theme, tokenWithScopes.scopes)50 });51 tokensWithScopesIndex++;52 }53 actual[actualLen++] = {54 content: tokenText,55 color: foregroundColor,56 explanation: explanation57 };58 }59 ruleStack = result.ruleStack;60 }61 return actual;62}63function explainThemeScopes(theme: IRawTheme, scopes: string[]): IThemedTokenScopeExplanation[] {64 let result: IThemedTokenScopeExplanation[] = [];65 for (let i = 0, len = scopes.length; i < len; i++) {66 let parentScopes = scopes.slice(0, i);67 let scope = scopes[i];68 result[i] = {69 scopeName: scope,70 themeMatches: explainThemeScope(theme, scope, parentScopes)71 };72 }73 return result;74}75function matchesOne(selector: string, scope:string): boolean {76 let selectorPrefix = selector + '.';77 if (selector === scope || scope.substring(0, selectorPrefix.length) === selectorPrefix) {78 return true;79 }80 return false;81}82function matches(selector: string, selectorParentScopes: string[], scope: string, parentScopes: string[]): boolean {83 if (!matchesOne(selector, scope)) {84 return false;85 }86 let selectorParentIndex = selectorParentScopes.length - 1;87 let parentIndex = parentScopes.length - 1;88 while (selectorParentIndex >= 0 && parentIndex >= 0) {89 if (matchesOne(selectorParentScopes[selectorParentIndex], parentScopes[parentIndex])) {90 selectorParentIndex--;91 }92 parentIndex--;93 }94 if (selectorParentIndex === -1) {95 return true;96 }97 return false;98}99function explainThemeScope(theme: IRawTheme, scope: string, parentScopes: string[]): IRawThemeSetting[] {100 let result: IRawThemeSetting[] = [], resultLen = 0;101 for (let i = 0, len = theme.settings.length; i < len; i++) {102 let setting = theme.settings[i];103 let selectors: string[];104 if (typeof setting.scope === 'string') {105 selectors = setting.scope.split(/,/).map(scope => scope.trim());106 } else if (Array.isArray(setting.scope)) {107 selectors = setting.scope;108 } else {109 continue;110 }111 for (let j = 0, lenJ = selectors.length; j < lenJ; j++) {112 let rawSelector = selectors[j];113 let rawSelectorPieces = rawSelector.split(/ /);114 let selector = rawSelectorPieces[rawSelectorPieces.length - 1];115 let selectorParentScopes = rawSelectorPieces.slice(0, rawSelectorPieces.length - 1);116 if (matches(selector, selectorParentScopes, scope, parentScopes)) {117 // match!118 result[resultLen++] = setting;119 // break the loop120 j = lenJ;121 }122 }123 }124 return result;...
utils.js
Source:utils.js
1'use strict';2window.SwaggerUi.utils = {3 parseSecurityDefinitions: function (security) {4 var auths = Object.assign({}, window.swaggerUi.api.authSchemes || window.swaggerUi.api.securityDefinitions);5 var oauth2Arr = [];6 var authsArr = [];7 var scopes = [];8 var utils = window.SwaggerUi.utils;9 if (!Array.isArray(security)) { return null; }10 security.forEach(function (item) {11 var singleSecurity = {};12 var singleOauth2Security = {};13 for (var key in item) {14 if (Array.isArray(item[key])) {15 if (!auths[key]) { continue; }16 auths[key] = auths[key] || {};17 if (auths[key].type === 'oauth2') {18 singleOauth2Security[key] = Object.assign({}, auths[key]);19 singleOauth2Security[key].scopes = Object.assign({}, auths[key].scopes);20 for (var i in singleOauth2Security[key].scopes) {21 if (item[key].indexOf(i) < 0) {22 delete singleOauth2Security[key].scopes[i];23 }24 }25 singleOauth2Security[key].scopes = utils.parseOauth2Scopes(singleOauth2Security[key].scopes);26 scopes = _.merge(scopes, singleOauth2Security[key].scopes);27 } else {28 singleSecurity[key] = Object.assign({}, auths[key]);29 }30 } else {31 if (item[key].type === 'oauth2') {32 singleOauth2Security[key] = Object.assign({}, item[key]);33 singleOauth2Security[key].scopes = utils.parseOauth2Scopes(singleOauth2Security[key].scopes);34 scopes = _.merge(scopes, singleOauth2Security[key].scopes);35 } else {36 singleSecurity[key] = item[key];37 }38 }39 }40 if (!_.isEmpty(singleSecurity)) {41 authsArr.push(singleSecurity);42 }43 if (!_.isEmpty(singleOauth2Security)){44 oauth2Arr.push(singleOauth2Security);45 }46 });47 return {48 auths : authsArr,49 oauth2: oauth2Arr,50 scopes: scopes51 };52 },53 parseOauth2Scopes: function (data) {54 var scopes = Object.assign({}, data);55 var result = [];56 var key;57 for (key in scopes) {58 result.push({scope: key, description: scopes[key]});59 }60 return result;61 }...
authz.js
Source:authz.js
1/**2 * Helper3 *4 * @param {Object} ctx - Koa context5 * @param {Array} expectedScopes - List of permissions6 * @param {string} errorMessage - Error message7 *8 * @api private9 */10function _error(ctx, expectedScopes, errorMessage) {11 ctx.throw(401, 'Unauthorized', {12 statusCode: 401,13 error: 'Unauthorized',14 message: errorMessage,15 headers: {16 'WWW-Authenticate': `Bearer scope="${expectedScopes.join(' ')}", error="${errorMessage}"`,17 },18 })19}20/**21 * Helper for scopes22 *23 * @param {string | string[]} userScopeKey - permissions24 * @returns {Set | boolean}25 *26 * @api private27 */28function _userScopes(userScopeKey) {29 if (typeof userScopeKey === 'string') {30 return new Set(userScopeKey.split(' '))31 }32 if (Array.isArray(userScopeKey)) {33 return new Set(userScopeKey)34 }35 return false36}37/**38 * JWT Authz middleware.39 *40 * @param {string[]} expectedScopes - List of permissions41 * @param {any} [options={}]42 * - {boolean} checkAllScopes - default is false43 * - {String} customScopeKey - default is scope44 * @returns {function} - next function45 * @api public46 */47function jwtAuthz(expectedScopes, options = {}) {48 const {49 checkAllScopes = false,50 customScopeKey: scopeKey = 'scope',51 } = options52 if (Array.isArray(expectedScopes) === false) {53 throw new TypeError('Parameter expectedScopes must be an array of strings representing the scopes for the endpoint(s)')54 }55 return async (ctx, next) => {56 if (expectedScopes.length === 0) {57 await next()58 return59 }60 const {user} = ctx.state61 if (user === undefined) {62 _error(ctx, expectedScopes, 'Missing user data')63 }64 const userScopes = _userScopes(user[scopeKey])65 if (userScopes === false) {66 _error(ctx, expectedScopes, 'Insufficient scope')67 }68 const methods = ['some', 'every']69 const position = checkAllScopes ? 1 : 070 const allowed = expectedScopes[methods[position]](scope => userScopes.has(scope))71 if (allowed) {72 await next()73 return74 }75 _error(ctx, expectedScopes, 'User not allowed')76 }77}...
Using AI Code Generation
1var argosy = require('argosy')2var argosyPattern = require('argosy-pattern')3var service = argosy()4service.accept({5 ping: patterns.value('pong'),6})7service.pipe(argosy()).pipe(service)8service.on('request', function (req, cb) {9 console.log('received request', req)10 cb()11})12service.on('response', function (res, cb) {13 console.log('received response', res)14 cb()15})16service.on('error', function (err) {17 console.log('error', err)18})19service.on('gateway', function (gateway) {20 console.log('gateway', gateway)21})22var argosy = require('argosy')23var argosyPattern = require('argosy-pattern')24var service = argosy()25service.accept({26 ping: patterns.value('pong'),27})28service.pipe(argosy()).pipe(service)29service.on('request', function (req, cb) {30 console.log('received request', req)31 cb()32})33service.on('response', function (res, cb) {34 console.log('received response', res)35 cb()36})37service.on('error', function (err) {38 console.log('error', err)39})40service.on('gateway', function (gateway) {41 console.log('gateway', gateway)42})43var argosy = require('argosy')44var argosyPattern = require('argosy-pattern')45var service = argosy()46service.accept({47 ping: patterns.value('pong'),48})49service.pipe(argosy()).pipe
Using AI Code Generation
1var argosy = require('argosy')2var argosyPattern = require('argosy-pattern')3var service = argosy()4service.pipe(argosy.accept({test: argosyPattern.match.string})).pipe(service)5service.test('hello world', function (err, response) {6 if (err) return console.error(err)7 console.log(response)8})9service.test('hello world', function (err, response) {10 if (err) return console.error(err)11 console.log(response)12})13service.test('hello world', function (err, response) {14 if (err) return console.error(err)15 console.log(response)16})
Using AI Code Generation
1var argosy = require('argosy')2var pattern = require('argosy-pattern')3var service = argosy()4service.accept({5 greet: pattern.match('name')6})7service.pipe(service)8service.on('service', function (service) {9 service.greet('world', function (err, result) {10 console.log(result)11 })12})
Using AI Code Generation
1var argosy = require('argosy')2var service = argosy()3service.accept({4 add: function (a, b, reply) {5 reply(null, a + b)6 }7})8service.act({9}, function (err, result) {10})11service.act({12}, function (err, result) {13})14service.act({15}, function (err, result) {16})17service.act({18}, function (err, result) {19})20service.act({21}, function (err, result) {22})23service.act({24}, function (err, result) {25})26service.act({27}, function (err, result) {28})29service.act({30}, function (err, result) {31})32service.act({33}, function (err, result) {34})
Using AI Code Generation
1var argosy = require('argosy')2var argosyPattern = {3}4var argosyService = argosy()5 .use(argosyPattern)6 .listen(3000)7var argosy = require('argosy')8var argosyClient = require('argosy-client')9var argosyPattern = {10}11var client = argosyClient()12 .use(argosyPattern)13 .scope('test')14 .pipe(argosyService)15 .pipe(client.scope('test'))16client.test({hello: 'world'}, function(err, response) {17})
Using AI Code Generation
1argosy.pattern({2 'test': {3 'a': {4 'b': {5 }6 }7 }8}).scopes('a.b.c').on('data', function(data) {9 console.log(data);10});11argosy.pattern({12 'test': {13 'a': {14 'b': {15 }16 }17 }18}).scopes('a.b.c').on('data', function(data) {19 console.log(data);20});21argosy.pattern({22 'test': {23 'a': {24 'b': {25 }26 }27 }28}).scopes('a.b.c').on('data', function(data) {29 console.log(data);30});31argosy.pattern({32 'test': {33 'a': {34 'b': {35 }36 }37 }38}).scopes('a.b.c').on('data', function(data) {39 console.log(data);40});41argosy.pattern({42 'test': {43 'a': {44 'b': {45 }46 }47 }48}).scopes('a.b.c').on('data', function(data) {49 console.log(data);50});51argosy.pattern({52 'test': {53 'a': {54 'b': {55 }56 }57 }58}).scopes('a.b.c').on('data', function(data) {59 console.log(data);60});61argosy.pattern({62 'test': {63 'a': {64 'b': {65 }66 }67 }68}).scopes('a.b.c').on('data', function(data) {69 console.log(data);70});71argosy.pattern({72 'test': {73 'a': {74 'b': {75 }76 }77 }78}).scopes('a.b.c').on('
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!!