fix: generate code updates

This commit is contained in:
lohxt1 2024-10-08 16:46:26 +05:30
parent 4211575f01
commit 0fa0b3ef85
3 changed files with 14 additions and 4 deletions

View File

@ -10,6 +10,7 @@ import toast from 'react-hot-toast';
import { IconCopy } from '@tabler/icons'; import { IconCopy } from '@tabler/icons';
import { findCollectionByItemUid, getGlobalEnvironmentVariables } from '../../../../../../../utils/collections/index'; import { findCollectionByItemUid, getGlobalEnvironmentVariables } from '../../../../../../../utils/collections/index';
import { getAuthHeaders } from '../../../../../../../utils/codegenerator/auth'; import { getAuthHeaders } from '../../../../../../../utils/codegenerator/auth';
import { cloneDeep } from 'lodash';
const CodeView = ({ language, item }) => { const CodeView = ({ language, item }) => {
const { displayedTheme } = useTheme(); const { displayedTheme } = useTheme();
@ -17,11 +18,13 @@ const CodeView = ({ language, item }) => {
const { globalEnvironments, activeGlobalEnvironmentUid } = useSelector((state) => state.globalEnvironments); const { globalEnvironments, activeGlobalEnvironmentUid } = useSelector((state) => state.globalEnvironments);
const { target, client, language: lang } = language; const { target, client, language: lang } = language;
const requestHeaders = item.draft ? get(item, 'draft.request.headers') : get(item, 'request.headers'); const requestHeaders = item.draft ? get(item, 'draft.request.headers') : get(item, 'request.headers');
let collection = findCollectionByItemUid( let _collection = findCollectionByItemUid(
useSelector((state) => state.collections.collections), useSelector((state) => state.collections.collections),
item.uid item.uid
); );
let collection = cloneDeep(_collection);
// add selected global env variables to the collection object // add selected global env variables to the collection object
const globalEnvironmentVariables = getGlobalEnvironmentVariables({ globalEnvironments, activeGlobalEnvironmentUid }); const globalEnvironmentVariables = getGlobalEnvironmentVariables({ globalEnvironments, activeGlobalEnvironmentUid });
collection.globalEnvironmentVariables = globalEnvironmentVariables; collection.globalEnvironmentVariables = globalEnvironmentVariables;

View File

@ -3,15 +3,20 @@ import { useState } from 'react';
import CodeView from './CodeView'; import CodeView from './CodeView';
import StyledWrapper from './StyledWrapper'; import StyledWrapper from './StyledWrapper';
import { isValidUrl } from 'utils/url'; import { isValidUrl } from 'utils/url';
import { find, get } from 'lodash'; import { get } from 'lodash';
import { findEnvironmentInCollection } from 'utils/collections'; import { findEnvironmentInCollection } from 'utils/collections';
import { interpolateUrl, interpolateUrlPathParams } from 'utils/url/index'; import { interpolateUrl, interpolateUrlPathParams } from 'utils/url/index';
import { getLanguages } from 'utils/codegenerator/targets'; import { getLanguages } from 'utils/codegenerator/targets';
import { useSelector } from 'react-redux';
import { getGlobalEnvironmentVariables } from 'utils/collections/index';
const GenerateCodeItem = ({ collection, item, onClose }) => { const GenerateCodeItem = ({ collection, item, onClose }) => {
const languages = getLanguages(); const languages = getLanguages();
const environment = findEnvironmentInCollection(collection, collection.activeEnvironmentUid); const { globalEnvironments, activeGlobalEnvironmentUid } = useSelector((state) => state.globalEnvironments);
const globalEnvironmentVariables = getGlobalEnvironmentVariables({ globalEnvironments, activeGlobalEnvironmentUid });
const environment = findEnvironmentInCollection(collection, collection?.activeEnvironmentUid);
let envVars = {}; let envVars = {};
if (environment) { if (environment) {
const vars = get(environment, 'variables', []); const vars = get(environment, 'variables', []);
@ -27,6 +32,7 @@ const GenerateCodeItem = ({ collection, item, onClose }) => {
// interpolate the url // interpolate the url
const interpolatedUrl = interpolateUrl({ const interpolatedUrl = interpolateUrl({
url: requestUrl, url: requestUrl,
globalEnvironmentVariables,
envVars, envVars,
runtimeVariables: collection.runtimeVariables, runtimeVariables: collection.runtimeVariables,
processEnvVars: collection.processEnvVariables processEnvVars: collection.processEnvVariables

View File

@ -108,12 +108,13 @@ export const isValidUrl = (url) => {
} }
}; };
export const interpolateUrl = ({ url, envVars, runtimeVariables, processEnvVars }) => { export const interpolateUrl = ({ url, globalEnvironmentVariables = {}, envVars, runtimeVariables, processEnvVars }) => {
if (!url || !url.length || typeof url !== 'string') { if (!url || !url.length || typeof url !== 'string') {
return; return;
} }
return interpolate(url, { return interpolate(url, {
...globalEnvironmentVariables,
...envVars, ...envVars,
...runtimeVariables, ...runtimeVariables,
process: { process: {