Skip to content
This repository was archived by the owner on Jan 28, 2026. It is now read-only.

Commit c481cd0

Browse files
Simplified by elements
1 parent 67ecace commit c481cd0

11 files changed

Lines changed: 47 additions & 139 deletions

File tree

app/Actions/QuestionsAction.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@
1313
use PackageWizard\Installer\Data\ReplaceData;
1414
use PackageWizard\Installer\Enums\ConditionOperatorEnum;
1515
use PackageWizard\Installer\Enums\TypeEnum;
16-
use PackageWizard\Installer\Fillers\AskFiller;
1716
use PackageWizard\Installer\Fillers\Questions\AuthorFiller;
1817
use PackageWizard\Installer\Fillers\Questions\LicenseFiller;
18+
use PackageWizard\Installer\Fillers\Questions\SelectFiller;
19+
use PackageWizard\Installer\Fillers\Questions\TextFiller;
1920
use PackageWizard\Installer\Replacers\AskReplacer;
2021
use PackageWizard\Installer\Replacers\AuthorReplacer;
2122
use PackageWizard\Installer\Replacers\LicenseReplacer;
@@ -67,9 +68,10 @@ protected function question(QuestionData $question): void
6768
protected function getValue(QuestionData $question): array|Data|null
6869
{
6970
return match ($question->type) {
70-
TypeEnum::Ask => AskReplacer::get(AskFiller::make(data: $question), true),
7171
TypeEnum::Author => AuthorReplacer::get(AuthorFiller::make(data: $question), true),
7272
TypeEnum::License => LicenseReplacer::get(LicenseFiller::make(data: $question), true),
73+
TypeEnum::Select => AskReplacer::get(SelectFiller::make(data: $question), true),
74+
TypeEnum::Text => AskReplacer::get(TextFiller::make(data: $question), true),
7375
};
7476
}
7577

app/Data/Casts/QuestionsCast.php

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
namespace PackageWizard\Installer\Data\Casts;
66

77
use PackageWizard\Installer\Concerns\Data\ChoiceData;
8-
use PackageWizard\Installer\Data\Questions\QuestionAskSelectData;
9-
use PackageWizard\Installer\Data\Questions\QuestionAskTextData;
108
use PackageWizard\Installer\Data\Questions\QuestionAuthorData;
119
use PackageWizard\Installer\Data\Questions\QuestionLicenseData;
12-
use PackageWizard\Installer\Enums\PromptEnum;
10+
use PackageWizard\Installer\Data\Questions\QuestionSelectData;
11+
use PackageWizard\Installer\Data\Questions\QuestionTextData;
1312
use PackageWizard\Installer\Enums\TypeEnum;
1413
use Spatie\LaravelData\Casts\Cast;
1514
use Spatie\LaravelData\Data;
@@ -21,31 +20,11 @@ class QuestionsCast implements Cast
2120
protected function map(string|TypeEnum $type, array $item): Data
2221
{
2322
return match ($this->type($type)) {
24-
TypeEnum::Ask => $this->ask($item),
2523
TypeEnum::Author => QuestionAuthorData::from($item),
2624
TypeEnum::License => QuestionLicenseData::from($item),
25+
TypeEnum::Select => QuestionSelectData::from($item),
26+
TypeEnum::Text => QuestionTextData::from($item),
2727
default => $this->throw($type)
2828
};
2929
}
30-
31-
protected function ask(array $item): Data
32-
{
33-
return match ($this->prompt($item['prompt'] ?? null)) {
34-
PromptEnum::Select => QuestionAskSelectData::from($item),
35-
default => QuestionAskTextData::from($item)
36-
};
37-
}
38-
39-
protected function prompt(PromptEnum|string|null $prompt): ?PromptEnum
40-
{
41-
if ($prompt === null) {
42-
return null;
43-
}
44-
45-
if ($prompt instanceof PromptEnum) {
46-
return $prompt;
47-
}
48-
49-
return PromptEnum::tryFrom($prompt);
50-
}
5130
}

app/Data/Questions/QuestionAskSelectData.php renamed to app/Data/Questions/QuestionSelectData.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,12 @@
66

77
use PackageWizard\Installer\Data\Casts\ArrayWrapCast;
88
use PackageWizard\Installer\Data\Casts\TranslatableCast;
9-
use PackageWizard\Installer\Enums\PromptEnum;
109
use PackageWizard\Installer\Enums\TypeEnum;
1110
use Spatie\LaravelData\Attributes\WithCast;
1211

13-
class QuestionAskSelectData extends QuestionData
12+
class QuestionSelectData extends QuestionData
1413
{
15-
public TypeEnum $type = TypeEnum::Ask;
16-
17-
public PromptEnum $prompt = PromptEnum::Select;
14+
public TypeEnum $type = TypeEnum::Select;
1815

1916
#[WithCast(ArrayWrapCast::class)]
2017
public array $replace;

app/Data/Questions/QuestionAskTextData.php renamed to app/Data/Questions/QuestionTextData.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,12 @@
99
use PackageWizard\Installer\Data\Casts\ToStringCast;
1010
use PackageWizard\Installer\Data\Casts\TranslatableCast;
1111
use PackageWizard\Installer\Data\Casts\ValidationCast;
12-
use PackageWizard\Installer\Enums\PromptEnum;
1312
use PackageWizard\Installer\Enums\TypeEnum;
1413
use Spatie\LaravelData\Attributes\WithCast;
1514

16-
class QuestionAskTextData extends QuestionData
15+
class QuestionTextData extends QuestionData
1716
{
18-
public TypeEnum $type = TypeEnum::Ask;
19-
20-
public PromptEnum $prompt = PromptEnum::Text;
17+
public TypeEnum $type = TypeEnum::Text;
2118

2219
#[WithCast(ArrayWrapCast::class)]
2320
public array $replace;

app/Enums/PromptEnum.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace PackageWizard\Installer\Enums;
66

7+
/** @deprecated */
78
enum PromptEnum: string
89
{
910
case Text = 'text';

app/Enums/TypeEnum.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@
66

77
enum TypeEnum: string
88
{
9-
case Ask = 'ask';
109
case Author = 'author';
1110
case Date = 'date';
1211
case License = 'license';
1312
case Rename = 'rename';
13+
case Select = 'select';
14+
case Text = 'text';
1415
case Year = 'year';
1516
case YearRange = 'yearRange';
1617
}

app/Fillers/AskFiller.php

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@
44

55
namespace PackageWizard\Installer\Fillers\Questions;
66

7-
use PackageWizard\Installer\Data\Questions\QuestionAskSelectData;
7+
use PackageWizard\Installer\Data\Questions\QuestionSelectData;
88
use PackageWizard\Installer\Data\ReplaceData;
99
use PackageWizard\Installer\Fillers\Filler;
1010
use Spatie\LaravelData\Data;
1111

1212
use function Laravel\Prompts\select;
1313

14-
/** @method static make(QuestionAskSelectData|Data $data) */
15-
class AskSelectFiller extends Filler
14+
/** @method static make(QuestionSelectData|Data $data) */
15+
class SelectFiller extends Filler
1616
{
1717
public function __construct(
18-
protected QuestionAskSelectData $data
18+
protected QuestionSelectData $data
1919
) {}
2020

2121
public function get(): ReplaceData
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66

77
use Closure;
88
use Illuminate\Support\Str;
9-
use PackageWizard\Installer\Data\Questions\QuestionAskTextData;
9+
use PackageWizard\Installer\Data\Questions\QuestionTextData;
1010
use PackageWizard\Installer\Data\ReplaceData;
1111
use PackageWizard\Installer\Fillers\Filler;
1212
use PackageWizard\Installer\Helpers\ValidationHelper;
1313
use Spatie\LaravelData\Data;
1414

1515
use function Laravel\Prompts\text;
1616

17-
/** @method static make(QuestionAskTextData|Data $data) */
18-
class AskTextFiller extends Filler
17+
/** @method static make(QuestionTextData|Data $data) */
18+
class TextFiller extends Filler
1919
{
2020
public function __construct(
21-
protected QuestionAskTextData $data
21+
protected QuestionTextData $data
2222
) {}
2323

2424
public function get(): ?ReplaceData

resources/schemas/example-v2.json

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"clean": true
1111
},
1212
"authors": [
13-
[],
13+
{ },
1414
{
1515
"name": "John Doe",
1616
"email": "john@example.com",
@@ -170,8 +170,7 @@
170170
"operator": "!=",
171171
"value": "MIT License"
172172
},
173-
"type": "ask",
174-
"prompt": "text",
173+
"type": "text",
175174
"question": "Some question",
176175
"replace": ":some_answer:",
177176
"placeholder": "Some kind of auxiliary information"
@@ -181,8 +180,7 @@
181180
"for": "author123",
182181
"value": "John Doe <john@example.com>"
183182
},
184-
"type": "ask",
185-
"prompt": "text",
183+
"type": "text",
186184
"question": "form.question.name",
187185
"placeholder": "form.eg.name",
188186
"default": "foo",
@@ -194,8 +192,7 @@
194192
]
195193
},
196194
{
197-
"type": "ask",
198-
"prompt": "select",
195+
"type": "select",
199196
"question": "Select one of the options",
200197
"options": [
201198
100,
@@ -206,8 +203,7 @@
206203
"replace": ":foo:"
207204
},
208205
{
209-
"type": "ask",
210-
"prompt": "select",
206+
"type": "select",
211207
"question": "Select one of the options",
212208
"options": [
213209
100,
@@ -218,8 +214,7 @@
218214
"replace": ":foo:"
219215
},
220216
{
221-
"type": "ask",
222-
"prompt": "select",
217+
"type": "select",
223218
"question": "Select one of the options",
224219
"options": {
225220
"100": "foo",

0 commit comments

Comments
 (0)