diff --git a/README.md b/README.md index 5110daa3..6e18b504 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ REST Client allows you to send HTTP request and view the response in Visual Stud + `{{$datetime rfc1123|iso8601 [offset option]}}` + `{{$localDatetime rfc1123|iso8601 [offset option]}}` + `{{$processEnv [%]envVarName}}` - + `{{$dotenv [%]variableName}}` + + `{{$dotenv [%]variableName [filename]}}` + `{{$aadToken [new] [public|cn|de|us|ppe] [] [aud:]}}` + `{{$oidcAccessToken [new] [] [] [authorizeEndpoint: { let folderPath = path.dirname(document.fileName); const { name : environmentName } = await EnvironmentController.getCurrentEnvironment(); + const [, refToggle, key, dotEnvFilename] = this.dotenvRegex.exec(name) ?? []; - let pathsFound = [false, false]; + if (key === undefined) { + return { warning: ResolveWarningMessage.IncorrectDotenvVariableFormat }; + } + + let pathsFound = [false, false, false]; while ((pathsFound = await Promise.all([ + !!dotEnvFilename && fs.pathExists(path.join(folderPath, dotEnvFilename)), fs.pathExists(path.join(folderPath, `.env.${environmentName}`)), fs.pathExists(path.join(folderPath, '.env')) ])).every(result => result === false)) { @@ -205,23 +211,19 @@ export class SystemVariableProvider implements HttpVariableProvider { return { warning: ResolveWarningMessage.DotenvFileNotFound }; } } - const absolutePath = path.join(folderPath, pathsFound[0] ? `.env.${environmentName}` : '.env'); - const groups = this.dotenvRegex.exec(name); - if (groups !== null && groups.length === 3) { - const parsed = dotenv.parse(await fs.readFile(absolutePath)); - const [, refToggle, key] = groups; - let dotEnvVarName = key; - if (refToggle !== undefined) { - dotEnvVarName = await this.resolveSettingsEnvironmentVariable(key); - } - if (!(dotEnvVarName in parsed)) { - return { warning: ResolveWarningMessage.DotenvVariableNotFound }; - } + const envFilename = dotEnvFilename ?? (pathsFound[1] ? `.env.${environmentName}` : ".env"); - return { value: parsed[dotEnvVarName] }; + const absolutePath = path.join(folderPath, envFilename); + const parsed = dotenv.parse(await fs.readFile(absolutePath)); + let dotEnvVarName = key; + if (refToggle !== undefined) { + dotEnvVarName = await this.resolveSettingsEnvironmentVariable(key); + } + if (!(dotEnvVarName in parsed)) { + return { warning: ResolveWarningMessage.DotenvVariableNotFound }; } - return { warning: ResolveWarningMessage.IncorrectDotenvVariableFormat }; + return { value: parsed[dotEnvVarName] }; }); }