Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3734327357 | |||
|
af9c360684
|
|||
|
44f437eaf3
|
|||
|
1ebdffe2a6
|
|||
| d854732143 | |||
|
9b021296eb
|
|||
|
d581afa793
|
|||
| 95ca655eb0 | |||
|
25887a47d3
|
|||
|
1f7816c917
|
|||
|
fb7b4baa32
|
|||
|
2c4eedbf8b
|
@@ -32,7 +32,7 @@ These formats are supported for now: `http`, `curl`, `wget`.
|
|||||||
- tests, phpcs, psalm, etc.;
|
- tests, phpcs, psalm, etc.;
|
||||||
- web version.
|
- web version.
|
||||||
|
|
||||||
## Installation
|
## Install and upgrade
|
||||||
|
|
||||||
```
|
```
|
||||||
composer global r axenov/pm-convert
|
composer global r axenov/pm-convert
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "axenov/pm-convert",
|
"name": "axenov/pm-convert",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"description": "Postman collection coverter",
|
"description": "Postman collection converter",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"homepage": "https://axenov.dev/",
|
"homepage": "https://axenov.dev/",
|
||||||
"authors": [
|
"authors": [
|
||||||
|
|||||||
@@ -32,9 +32,9 @@ abstract class AbstractConverter implements ConverterContract
|
|||||||
protected array $vars = [];
|
protected array $vars = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Environment
|
* @var Environment|null
|
||||||
*/
|
*/
|
||||||
protected Environment $env;
|
protected ?Environment $env = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets an environment with vars
|
* Sets an environment with vars
|
||||||
@@ -71,7 +71,7 @@ abstract class AbstractConverter implements ConverterContract
|
|||||||
*/
|
*/
|
||||||
protected function setVariables(): static
|
protected function setVariables(): static
|
||||||
{
|
{
|
||||||
if ($this->collection->variable) {
|
if (isset($this->collection?->variable)) {
|
||||||
foreach ($this->collection->variable as $var) {
|
foreach ($this->collection->variable as $var) {
|
||||||
$this->vars["{{{$var->key}}}"] = $var->value;
|
$this->vars["{{{$var->key}}}"] = $var->value;
|
||||||
}
|
}
|
||||||
@@ -173,11 +173,11 @@ abstract class AbstractConverter implements ConverterContract
|
|||||||
*/
|
*/
|
||||||
protected function interpolate(string $content): string
|
protected function interpolate(string $content): string
|
||||||
{
|
{
|
||||||
if (empty($this->vars) && $this->env->hasVars()) {
|
if (empty($this->vars) && !$this->env?->hasVars()) {
|
||||||
return $content;
|
return $content;
|
||||||
}
|
}
|
||||||
$matches = [];
|
$matches = [];
|
||||||
if (preg_match_all('/\{\{[a-zA-Z][a-zA-Z0-9]+}}/', $content, $matches, PREG_PATTERN_ORDER) > 0) {
|
if (preg_match_all('/\{\{[a-zA-Z][a-zA-Z0-9]*}}/m', $content, $matches, PREG_PATTERN_ORDER) > 0) {
|
||||||
foreach ($matches[0] as $key => $var) {
|
foreach ($matches[0] as $key => $var) {
|
||||||
if (str_contains($content, $var)) {
|
if (str_contains($content, $var)) {
|
||||||
$content = str_replace($var, $this->vars[$var] ?? $this->env[$var] ?? $var, $content);
|
$content = str_replace($var, $this->vars[$var] ?? $this->env[$var] ?? $var, $content);
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class WgetRequest extends AbstractRequest
|
|||||||
$output[] = http_build_query($params);
|
$output[] = http_build_query($params);
|
||||||
return $output;
|
return $output;
|
||||||
default:
|
default:
|
||||||
return ["\t$this->body"];
|
return ["\t'$this->body' \ "];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +75,6 @@ class WgetRequest extends AbstractRequest
|
|||||||
$this->prepareHeaders(),
|
$this->prepareHeaders(),
|
||||||
$this->prepareBody()
|
$this->prepareBody()
|
||||||
);
|
);
|
||||||
$output[] = rtrim(array_pop($output), '\ ');
|
|
||||||
$output[] = "\t'$this->url'";
|
$output[] = "\t'$this->url'";
|
||||||
return implode(PHP_EOL, array_merge($output, ['']));
|
return implode(PHP_EOL, array_merge($output, ['']));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,22 +7,21 @@ namespace PmConverter;
|
|||||||
use Exception;
|
use Exception;
|
||||||
use InvalidArgumentException;
|
use InvalidArgumentException;
|
||||||
use JsonException;
|
use JsonException;
|
||||||
use PmConverter\Exceptions\CannotCreateDirectoryException;
|
use PmConverter\Exceptions\{
|
||||||
use PmConverter\Exceptions\DirectoryIsNotReadableException;
|
CannotCreateDirectoryException,
|
||||||
use PmConverter\Exceptions\DirectoryIsNotWriteableException;
|
DirectoryIsNotReadableException,
|
||||||
use PmConverter\Exceptions\DirectoryNotExistsException;
|
DirectoryIsNotWriteableException,
|
||||||
use PmConverter\Exporters\ConverterContract;
|
DirectoryNotExistsException};
|
||||||
use PmConverter\Exporters\ConvertFormat;
|
use PmConverter\Exporters\{
|
||||||
|
ConverterContract,
|
||||||
|
ConvertFormat};
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
class Processor
|
class Processor
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Converter version
|
* Converter version
|
||||||
*/
|
*/
|
||||||
public const VERSION = '1.2.1';
|
public const VERSION = '1.2.4';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string[] Paths to collection files
|
* @var string[] Paths to collection files
|
||||||
@@ -89,9 +88,6 @@ class Processor
|
|||||||
* Parses an array of arguments came from cli
|
* Parses an array of arguments came from cli
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
* @throws DirectoryIsNotWriteableException
|
|
||||||
* @throws DirectoryNotExistsException
|
|
||||||
* @throws DirectoryIsNotReadableException
|
|
||||||
*/
|
*/
|
||||||
protected function parseArgs(): void
|
protected function parseArgs(): void
|
||||||
{
|
{
|
||||||
@@ -229,6 +225,9 @@ class Processor
|
|||||||
*/
|
*/
|
||||||
protected function initEnv(): void
|
protected function initEnv(): void
|
||||||
{
|
{
|
||||||
|
if (!isset($this->envFile)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$content = file_get_contents(FileSystem::normalizePath($this->envFile));
|
$content = file_get_contents(FileSystem::normalizePath($this->envFile));
|
||||||
$content = json_decode($content, flags: JSON_THROW_ON_ERROR);
|
$content = json_decode($content, flags: JSON_THROW_ON_ERROR);
|
||||||
if (!property_exists($content, 'environment') || empty($content?->environment)) {
|
if (!property_exists($content, 'environment') || empty($content?->environment)) {
|
||||||
@@ -282,7 +281,7 @@ class Processor
|
|||||||
{
|
{
|
||||||
$time = (hrtime(true) - $this->initTime) / 1_000_000;
|
$time = (hrtime(true) - $this->initTime) / 1_000_000;
|
||||||
$ram = (memory_get_peak_usage(true) - $this->initRam) / 1024 / 1024;
|
$ram = (memory_get_peak_usage(true) - $this->initRam) / 1024 / 1024;
|
||||||
printf('Converted %d of %d in %.3f ms using %.3f MiB RAM', $success, $count, $time, $ram);
|
printf('Converted %d of %d in %.3f ms using %.3f MiB RAM%s', $success, $count, $time, $ram, PHP_EOL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -318,7 +317,7 @@ class Processor
|
|||||||
'',
|
'',
|
||||||
'Possible ARGUMENTS:',
|
'Possible ARGUMENTS:',
|
||||||
"\t-f, --file - a PATH to single collection located in PATH to convert from",
|
"\t-f, --file - a PATH to single collection located in PATH to convert from",
|
||||||
"\t-d, --dir - a directory with collections located in COLLECTION_FILEPATH to convert from",
|
"\t-d, --dir - a directory with collections located in PATH to convert from",
|
||||||
"\t-o, --output - a directory OUTPUT_PATH to put results in",
|
"\t-o, --output - a directory OUTPUT_PATH to put results in",
|
||||||
"\t-e, --env - use environment file with variable values to replace in request",
|
"\t-e, --env - use environment file with variable values to replace in request",
|
||||||
"\t-p, --preserve - do not delete OUTPUT_PATH (if exists)",
|
"\t-p, --preserve - do not delete OUTPUT_PATH (if exists)",
|
||||||
@@ -338,6 +337,7 @@ class Processor
|
|||||||
"\t--http - generate raw *.http files (default)",
|
"\t--http - generate raw *.http files (default)",
|
||||||
"\t--curl - generate shell scripts with curl command",
|
"\t--curl - generate shell scripts with curl command",
|
||||||
"\t--wget - generate shell scripts with wget command",
|
"\t--wget - generate shell scripts with wget command",
|
||||||
|
'',
|
||||||
'If no FORMATS specified then --http implied.',
|
'If no FORMATS specified then --http implied.',
|
||||||
'Any of FORMATS can be specified at the same time.',
|
'Any of FORMATS can be specified at the same time.',
|
||||||
'',
|
'',
|
||||||
|
|||||||
Reference in New Issue
Block a user