generathor-laravel 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -3
- package/dist/configuration.d.ts +6 -0
- package/dist/configuration.js +15 -6
- package/dist/{template.d.ts → generator.d.ts} +1 -0
- package/dist/{template.js → generator.js} +81 -21
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/laravel11.d.ts +7 -0
- package/dist/laravel11.js +41 -0
- package/dist/laravel12.d.ts +7 -0
- package/dist/laravel12.js +39 -0
- package/package.json +2 -2
- package/templates/eloquent/laravel11/user.handlebars +67 -0
- package/templates/eloquent/laravel12/user.handlebars +60 -0
- package/templates/others/laravel12/base-controller.handlebars +54 -0
- package/templates/others/laravel12/pagination.handlebars +106 -0
- package/templates/views/laravel11/menu.handlebars +31 -0
- package/templates/views/laravel12/banner.handlebars +48 -0
- package/templates/views/laravel12/breadcrumbs.handlebars +21 -0
- package/templates/views/laravel12/edit.handlebars +31 -0
- package/templates/views/laravel12/form.handlebars +103 -0
- package/templates/views/laravel12/index.handlebars +171 -0
- package/templates/views/laravel12/loader.handlebars +6 -0
- package/templates/views/laravel12/menu.handlebars +21 -0
- package/templates/views/laravel12/modal.handlebars +36 -0
- package/templates/views/laravel12/record-input.handlebars +90 -0
- package/templates/views/laravel12/relation-item.handlebars +170 -0
- package/templates/views/laravel12/relation-list.handlebars +189 -0
- package/templates/views/laravel12/show.handlebars +124 -0
- package/templates/views/laravel12/tabs.handlebars +16 -0
- package/templates/views/menu.handlebars +0 -39
- /package/templates/others/{base-controller.handlebars → laravel11/base-controller.handlebars} +0 -0
- /package/templates/views/{breadcrumbs.handlebars → laravel11/breadcrumbs.handlebars} +0 -0
- /package/templates/views/{edit.handlebars → laravel11/edit.handlebars} +0 -0
- /package/templates/views/{form.handlebars → laravel11/form.handlebars} +0 -0
- /package/templates/views/{index.handlebars → laravel11/index.handlebars} +0 -0
- /package/templates/views/{loader.handlebars → laravel11/loader.handlebars} +0 -0
- /package/templates/views/{modal.handlebars → laravel11/modal.handlebars} +0 -0
- /package/templates/views/{record-input.handlebars → laravel11/record-input.handlebars} +0 -0
- /package/templates/views/{relation-item.handlebars → laravel11/relation-item.handlebars} +0 -0
- /package/templates/views/{relation-list.handlebars → laravel11/relation-list.handlebars} +0 -0
- /package/templates/views/{show.handlebars → laravel11/show.handlebars} +0 -0
- /package/templates/views/{tabs.handlebars → laravel11/tabs.handlebars} +0 -0
package/README.md
CHANGED
|
@@ -145,6 +145,44 @@ module.exports = {
|
|
|
145
145
|
};
|
|
146
146
|
```
|
|
147
147
|
|
|
148
|
+
You can optionally use the preconfigured generator with the following "shortcuts".
|
|
149
|
+
|
|
150
|
+
```js
|
|
151
|
+
const { Laravel11 } = require('generathor-laravel');
|
|
152
|
+
|
|
153
|
+
const laravel = Laravel11.jetstreamEloquentModels();
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
```js
|
|
157
|
+
const { Laravel11 } = require('generathor-laravel');
|
|
158
|
+
|
|
159
|
+
const laravel = Laravel11.eloquentModels();
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
```js
|
|
163
|
+
const { Laravel11 } = require('generathor-laravel');
|
|
164
|
+
|
|
165
|
+
const laravel = Laravel11.jetstreamCrud();
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
```js
|
|
169
|
+
const { Laravel12 } = require('generathor-laravel');
|
|
170
|
+
|
|
171
|
+
const laravel = Laravel12.starterKitEloquentModels();
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
```js
|
|
175
|
+
const { Laravel12 } = require('generathor-laravel');
|
|
176
|
+
|
|
177
|
+
const laravel = Laravel12.eloquentModels();
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
```js
|
|
181
|
+
const { Laravel12 } = require('generathor-laravel');
|
|
182
|
+
|
|
183
|
+
const laravel = Laravel12.starterKitCrud();
|
|
184
|
+
```
|
|
185
|
+
|
|
148
186
|
Then, run the following command:
|
|
149
187
|
|
|
150
188
|
```bash
|
|
@@ -162,27 +200,33 @@ Also, you need to install the following packages:
|
|
|
162
200
|
|
|
163
201
|
* alpinejs
|
|
164
202
|
* @alpinejs/collapse
|
|
203
|
+
* @alpinejs/mask
|
|
165
204
|
* laravel-precognition-alpine
|
|
166
205
|
* sweetalert2
|
|
167
206
|
* @fortawesome/fontawesome-free
|
|
207
|
+
* axios
|
|
168
208
|
|
|
169
209
|
```bash
|
|
170
|
-
npm i -D alpinejs @alpinejs/collapse laravel-precognition-alpine sweetalert2 @fortawesome/fontawesome-free
|
|
210
|
+
npm i -D alpinejs @alpinejs/collapse @alpinejs/mask laravel-precognition-alpine sweetalert2 @fortawesome/fontawesome-free axios
|
|
171
211
|
```
|
|
172
212
|
|
|
173
213
|
File `app.js` must contain:
|
|
174
214
|
|
|
175
215
|
```js
|
|
176
216
|
import Alpine from 'alpinejs';
|
|
177
|
-
import collapse from '@alpinejs/collapse'
|
|
217
|
+
import collapse from '@alpinejs/collapse';
|
|
218
|
+
import mask from '@alpinejs/mask';
|
|
178
219
|
import Precognition from 'laravel-precognition-alpine';
|
|
179
220
|
import Swal from 'sweetalert2';
|
|
221
|
+
import axios from 'axios';// Laravel 11 import this by default in bootstrap.js
|
|
180
222
|
|
|
223
|
+
window.axios = axios;
|
|
181
224
|
window.Alpine = Alpine;
|
|
182
225
|
window.Swal = Swal;
|
|
183
226
|
|
|
184
227
|
Alpine.plugin(Precognition);
|
|
185
228
|
Alpine.plugin(collapse);
|
|
229
|
+
Alpine.plugin(mask);
|
|
186
230
|
Alpine.start();
|
|
187
231
|
```
|
|
188
232
|
|
|
@@ -204,7 +248,7 @@ Route::prefix('manage')->group(function () {
|
|
|
204
248
|
|
|
205
249
|
#### Set up your 'home' route
|
|
206
250
|
|
|
207
|
-
You
|
|
251
|
+
You need to set up your `home` route. You can change the home route reference in the `generathor.config.cjs` file.
|
|
208
252
|
|
|
209
253
|
```php
|
|
210
254
|
Route::get('/', function () {
|
|
@@ -287,7 +331,13 @@ if (typeof Livewire !== undefined) {
|
|
|
287
331
|
Add the following code in `layout.blade.php` or in your layout:
|
|
288
332
|
|
|
289
333
|
```blade
|
|
334
|
+
<!-- LARAVEL 11 -->
|
|
335
|
+
<x-generathor.loader />
|
|
336
|
+
<x-banner /><!-- You can use this with laravel 11 + jetstream -->
|
|
337
|
+
|
|
338
|
+
<!-- LARAVEL 12 -->
|
|
290
339
|
<x-generathor.loader />
|
|
340
|
+
<x-generathor.banner /><!-- Only needed with laravel 12 -->
|
|
291
341
|
```
|
|
292
342
|
|
|
293
343
|
#### Set up header (optional)
|
|
@@ -313,6 +363,9 @@ You can modify settings in the `generathor.config.cjs` file.
|
|
|
313
363
|
| `createChildModel` | `No` | boolean | true | Prevents overwriting the child class of a model, so you retain your custom changes. |
|
|
314
364
|
| `createEloquentModelsOnly` | `No` | boolean | false | Creates only Eloquent models, skipping the generation of other files. |
|
|
315
365
|
| `reference` | `No` | string | 'laravel-generathor' | Reference name used in templates. |
|
|
366
|
+
| `laravelVersion` | `No` | 11 or 12 | 12 | Laravel application version. |
|
|
367
|
+
| `createLaravel11UserModel` | `No` | boolean | false | Check if a custom laravel 11 user model is required. |
|
|
368
|
+
| `createLaravel12UserModel` | `No` | boolean | false | Check if a custom laravel 12 user model is required. |
|
|
316
369
|
| `source` | `No` | string | 'db' | Reference to the Generathor source for database structure. |
|
|
317
370
|
| `directory` | `No` | string | '.' | Directory path for the Laravel project. |
|
|
318
371
|
| `homeRoute` | `No` | string | 'home' | Initial base route, used for redirection to the home page. |
|
package/dist/configuration.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export type ConfigurationAttributes = {
|
|
2
|
+
laravelVersion?: 11 | 12;
|
|
2
3
|
createChildModel?: boolean;
|
|
3
4
|
createEloquentModelsOnly?: boolean;
|
|
5
|
+
createLaravel12UserModel?: boolean;
|
|
6
|
+
createLaravel11UserModel?: boolean;
|
|
4
7
|
reference?: string;
|
|
5
8
|
source?: string;
|
|
6
9
|
directory?: string;
|
|
@@ -16,6 +19,9 @@ export declare class Configuration {
|
|
|
16
19
|
constructor($attributes: ConfigurationAttributes);
|
|
17
20
|
directory(): string;
|
|
18
21
|
reference(): string;
|
|
22
|
+
laravelVersion(): 11 | 12;
|
|
23
|
+
createLaravel12UserModel(): boolean;
|
|
24
|
+
createLaravel11UserModel(): boolean;
|
|
19
25
|
source(): string;
|
|
20
26
|
homeRoute(): string;
|
|
21
27
|
layout(): string;
|
package/dist/configuration.js
CHANGED
|
@@ -11,6 +11,17 @@ class Configuration {
|
|
|
11
11
|
reference() {
|
|
12
12
|
return this.$attributes.reference || 'laravel-generathor';
|
|
13
13
|
}
|
|
14
|
+
laravelVersion() {
|
|
15
|
+
return this.$attributes.laravelVersion || 12;
|
|
16
|
+
}
|
|
17
|
+
createLaravel12UserModel() {
|
|
18
|
+
var _a;
|
|
19
|
+
return (_a = this.$attributes.createLaravel12UserModel) !== null && _a !== void 0 ? _a : false;
|
|
20
|
+
}
|
|
21
|
+
createLaravel11UserModel() {
|
|
22
|
+
var _a;
|
|
23
|
+
return (_a = this.$attributes.createLaravel11UserModel) !== null && _a !== void 0 ? _a : false;
|
|
24
|
+
}
|
|
14
25
|
source() {
|
|
15
26
|
return this.$attributes.source || 'db';
|
|
16
27
|
}
|
|
@@ -30,14 +41,12 @@ class Configuration {
|
|
|
30
41
|
'Illuminate\\Database\\Eloquent\\Model');
|
|
31
42
|
}
|
|
32
43
|
createChildModel() {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
: this.$attributes.createChildModel;
|
|
44
|
+
var _a;
|
|
45
|
+
return (_a = this.$attributes.createChildModel) !== null && _a !== void 0 ? _a : true;
|
|
36
46
|
}
|
|
37
47
|
createEloquentModelsOnly() {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
: this.$attributes.createEloquentModelsOnly;
|
|
48
|
+
var _a;
|
|
49
|
+
return (_a = this.$attributes.createEloquentModelsOnly) !== null && _a !== void 0 ? _a : false;
|
|
41
50
|
}
|
|
42
51
|
}
|
|
43
52
|
exports.Configuration = Configuration;
|
|
@@ -5,6 +5,7 @@ type GeneratorType = GeneratorForItem | GeneratorForCollection;
|
|
|
5
5
|
type Templates = Record<string, GeneratorType>;
|
|
6
6
|
export declare class LaravelGenerator {
|
|
7
7
|
private $configuration;
|
|
8
|
+
private $viewFolder;
|
|
8
9
|
constructor(configuration?: ConfigurationAttributes);
|
|
9
10
|
private templateKey;
|
|
10
11
|
private templateFile;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LaravelGenerator = void 0;
|
|
4
4
|
const path_1 = require("path");
|
|
5
|
+
const fs_1 = require("fs");
|
|
5
6
|
const generathor_1 = require("generathor");
|
|
6
7
|
const configuration_1 = require("./configuration");
|
|
7
8
|
const laravel_1 = require("./transformers/item/laravel");
|
|
@@ -18,10 +19,10 @@ const hasManyRelation_1 = require("./transformers/collection/hasManyRelation");
|
|
|
18
19
|
const handlebars_1 = require("./helpers/handlebars");
|
|
19
20
|
class LaravelGenerator {
|
|
20
21
|
constructor(configuration) {
|
|
21
|
-
|
|
22
|
-
configuration = {};
|
|
23
|
-
}
|
|
22
|
+
configuration = configuration || {};
|
|
24
23
|
this.$configuration = new configuration_1.Configuration(configuration);
|
|
24
|
+
this.$viewFolder =
|
|
25
|
+
this.$configuration.laravelVersion() == 12 ? 'laravel12' : 'laravel11';
|
|
25
26
|
handlebars_1.HandlebarsHelper.configure();
|
|
26
27
|
}
|
|
27
28
|
templateKey(key) {
|
|
@@ -57,6 +58,7 @@ class LaravelGenerator {
|
|
|
57
58
|
template: this.templateFile('eloquent/child'),
|
|
58
59
|
source: this.$configuration.source(),
|
|
59
60
|
directory: this.directory('/app/Models'),
|
|
61
|
+
overwriteFiles: false,
|
|
60
62
|
prepareItems: (items) => items.map((item) => item.laravel.eloquent),
|
|
61
63
|
fileName: (item) => item.model + '.php',
|
|
62
64
|
});
|
|
@@ -100,56 +102,57 @@ class LaravelGenerator {
|
|
|
100
102
|
fileName: (item) => item.class + '.php',
|
|
101
103
|
});
|
|
102
104
|
templates[this.templateKey('menu')] = new generathor_1.GeneratorForItem({
|
|
103
|
-
template: this.templateFile(
|
|
105
|
+
template: this.templateFile(`views/${this.$viewFolder}/menu`),
|
|
104
106
|
source: this.$configuration.source(),
|
|
105
107
|
directory: this.directory('/resources/views/generathor'),
|
|
106
108
|
prepareItems: (items) => new menu_1.Menu(items, this.$configuration).transform(),
|
|
107
109
|
fileName: () => 'menu.blade.php',
|
|
108
110
|
});
|
|
109
111
|
templates[this.templateKey('base-controller')] = new generathor_1.GeneratorForItem({
|
|
110
|
-
template: this.templateFile(
|
|
112
|
+
template: this.templateFile(`others/${this.$viewFolder}/base-controller`),
|
|
111
113
|
source: this.$configuration.source(),
|
|
112
114
|
directory: this.directory('/app/Http/Controllers/Generathor'),
|
|
115
|
+
overwriteFiles: false,
|
|
113
116
|
prepareItems: (items) => new baseController_1.BaseController(items, this.$configuration).transform(),
|
|
114
117
|
fileName: () => 'Controller.php',
|
|
115
118
|
});
|
|
116
119
|
templates[this.templateKey('create-form')] = new generathor_1.GeneratorForItem({
|
|
117
|
-
template: this.templateFile(
|
|
120
|
+
template: this.templateFile(`views/${this.$viewFolder}/form`),
|
|
118
121
|
source: this.$configuration.source(),
|
|
119
122
|
directory: this.directory('/resources/views/components/generathor'),
|
|
120
123
|
prepareItems: (items) => items.map((item) => item.laravel.forms.create),
|
|
121
124
|
fileName: (item) => item.context + '/create-form.blade.php',
|
|
122
125
|
});
|
|
123
126
|
templates[this.templateKey('filter-form')] = new generathor_1.GeneratorForItem({
|
|
124
|
-
template: this.templateFile(
|
|
127
|
+
template: this.templateFile(`views/${this.$viewFolder}/form`),
|
|
125
128
|
source: this.$configuration.source(),
|
|
126
129
|
directory: this.directory('/resources/views/components/generathor'),
|
|
127
130
|
prepareItems: (items) => items.map((item) => item.laravel.forms.filter),
|
|
128
131
|
fileName: (item) => item.context + '/filter-form.blade.php',
|
|
129
132
|
});
|
|
130
133
|
templates[this.templateKey('update-form')] = new generathor_1.GeneratorForItem({
|
|
131
|
-
template: this.templateFile(
|
|
134
|
+
template: this.templateFile(`views/${this.$viewFolder}/form`),
|
|
132
135
|
source: this.$configuration.source(),
|
|
133
136
|
directory: this.directory('/resources/views/components/generathor'),
|
|
134
137
|
prepareItems: (items) => items.map((item) => item.laravel.forms.update),
|
|
135
138
|
fileName: (item) => item.context + '/update-form.blade.php',
|
|
136
139
|
});
|
|
137
140
|
templates[this.templateKey('attach-form')] = new generathor_1.GeneratorForItem({
|
|
138
|
-
template: this.templateFile(
|
|
141
|
+
template: this.templateFile(`views/${this.$viewFolder}/form`),
|
|
139
142
|
source: this.$configuration.source(),
|
|
140
143
|
directory: this.directory('/resources/views/components/generathor'),
|
|
141
144
|
prepareItems: (items) => new attachForm_1.AttachForm(items, this.$configuration).transform(),
|
|
142
145
|
fileName: (item) => `${item.context}/attach-${item.contextFile}-form.blade.php`,
|
|
143
146
|
});
|
|
144
147
|
templates[this.templateKey('create-relation-form')] = new generathor_1.GeneratorForItem({
|
|
145
|
-
template: this.templateFile(
|
|
148
|
+
template: this.templateFile(`views/${this.$viewFolder}/form`),
|
|
146
149
|
source: this.$configuration.source(),
|
|
147
150
|
directory: this.directory('/resources/views/components/generathor'),
|
|
148
151
|
prepareItems: (items) => new createRelationForm_1.CreateRelationForm(items, this.$configuration).transform(),
|
|
149
152
|
fileName: (item) => `${item.context}/create-${item.contextFile}-form.blade.php`,
|
|
150
153
|
});
|
|
151
154
|
templates[this.templateKey('filter-relation-form')] = new generathor_1.GeneratorForItem({
|
|
152
|
-
template: this.templateFile(
|
|
155
|
+
template: this.templateFile(`views/${this.$viewFolder}/form`),
|
|
153
156
|
source: this.$configuration.source(),
|
|
154
157
|
directory: this.directory('/resources/views/components/generathor'),
|
|
155
158
|
prepareItems: (items) => new filterRelationForm_1.FilterRelationForm(items, this.$configuration).transform(),
|
|
@@ -163,35 +166,35 @@ class LaravelGenerator {
|
|
|
163
166
|
fileName: (item) => item.class + '.php',
|
|
164
167
|
});
|
|
165
168
|
templates[this.templateKey('index-view')] = new generathor_1.GeneratorForItem({
|
|
166
|
-
template: this.templateFile(
|
|
169
|
+
template: this.templateFile(`views/${this.$viewFolder}/index`),
|
|
167
170
|
source: this.$configuration.source(),
|
|
168
171
|
directory: this.directory('/resources/views/generathor'),
|
|
169
172
|
prepareItems: (items) => items.map((item) => item.laravel.list),
|
|
170
173
|
fileName: (item) => item.context + '/index.blade.php',
|
|
171
174
|
});
|
|
172
175
|
templates[this.templateKey('edit-view')] = new generathor_1.GeneratorForItem({
|
|
173
|
-
template: this.templateFile(
|
|
176
|
+
template: this.templateFile(`views/${this.$viewFolder}/edit`),
|
|
174
177
|
source: this.$configuration.source(),
|
|
175
178
|
directory: this.directory('/resources/views/generathor'),
|
|
176
179
|
prepareItems: (items) => items.map((item) => item.laravel.edit),
|
|
177
180
|
fileName: (item) => item.context + '/edit.blade.php',
|
|
178
181
|
});
|
|
179
182
|
templates[this.templateKey('show-view')] = new generathor_1.GeneratorForItem({
|
|
180
|
-
template: this.templateFile(
|
|
183
|
+
template: this.templateFile(`views/${this.$viewFolder}/show`),
|
|
181
184
|
source: this.$configuration.source(),
|
|
182
185
|
directory: this.directory('/resources/views/generathor'),
|
|
183
186
|
prepareItems: (items) => items.map((item) => item.laravel.show),
|
|
184
187
|
fileName: (item) => item.context + '/show.blade.php',
|
|
185
188
|
});
|
|
186
189
|
templates[this.templateKey('relation-item-view')] = new generathor_1.GeneratorForItem({
|
|
187
|
-
template: this.templateFile(
|
|
190
|
+
template: this.templateFile(`views/${this.$viewFolder}/relation-item`),
|
|
188
191
|
source: this.$configuration.source(),
|
|
189
192
|
directory: this.directory('/resources/views/generathor'),
|
|
190
193
|
prepareItems: (items) => new belongsToRelation_1.BelongsToRelation(items, this.$configuration).transform(),
|
|
191
194
|
fileName: (item) => `${item.context}/${item.relationContext}.blade.php`,
|
|
192
195
|
});
|
|
193
196
|
templates[this.templateKey('relation-list-view')] = new generathor_1.GeneratorForItem({
|
|
194
|
-
template: this.templateFile(
|
|
197
|
+
template: this.templateFile(`views/${this.$viewFolder}/relation-list`),
|
|
195
198
|
source: this.$configuration.source(),
|
|
196
199
|
directory: this.directory('/resources/views/generathor'),
|
|
197
200
|
prepareItems: (items) => new hasManyRelation_1.HasManyRelation(items, this.$configuration).transform(),
|
|
@@ -217,39 +220,95 @@ class LaravelGenerator {
|
|
|
217
220
|
templates[this.templateKey('pk-trait')] = new generathor_1.GeneratorForCollection({
|
|
218
221
|
template: this.templateFile('others/pk-trait'),
|
|
219
222
|
source: this.$configuration.source(),
|
|
223
|
+
overwriteFiles: false,
|
|
220
224
|
prepareItems: () => [],
|
|
221
225
|
file: this.directory('/app/Models/Generathor/GenerathorKey.php'),
|
|
222
226
|
});
|
|
227
|
+
const laravelUserFile = this.directory('/app/Models/LaravelUser.php');
|
|
228
|
+
if (this.$configuration.createLaravel12UserModel()) {
|
|
229
|
+
templates[this.templateKey('l12-user-model')] =
|
|
230
|
+
new generathor_1.GeneratorForCollection({
|
|
231
|
+
template: this.templateFile('eloquent/laravel12/user'),
|
|
232
|
+
source: this.$configuration.source(),
|
|
233
|
+
overwriteFiles: false,
|
|
234
|
+
prepareItems: () => [],
|
|
235
|
+
file: laravelUserFile,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
if (this.$configuration.createLaravel11UserModel()) {
|
|
239
|
+
templates[this.templateKey('l11-user-model')] =
|
|
240
|
+
new generathor_1.GeneratorForCollection({
|
|
241
|
+
template: this.templateFile('eloquent/laravel11/user'),
|
|
242
|
+
source: this.$configuration.source(),
|
|
243
|
+
overwriteFiles: false,
|
|
244
|
+
prepareItems: () => [],
|
|
245
|
+
file: laravelUserFile,
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
if (!(0, fs_1.existsSync)(laravelUserFile) &&
|
|
249
|
+
(this.$configuration.createLaravel12UserModel() ||
|
|
250
|
+
this.$configuration.createLaravel11UserModel())) {
|
|
251
|
+
templates[this.templateKey('relation-item-view')] = new generathor_1.GeneratorForItem({
|
|
252
|
+
template: this.templateFile('eloquent/child'),
|
|
253
|
+
source: this.$configuration.source(),
|
|
254
|
+
directory: this.directory('/app/Models'),
|
|
255
|
+
prepareItems: (items) => items
|
|
256
|
+
.filter((item) => item.table == 'users')
|
|
257
|
+
.map((item) => item.laravel.eloquent),
|
|
258
|
+
fileName: () => 'User.php',
|
|
259
|
+
});
|
|
260
|
+
}
|
|
223
261
|
if (this.$configuration.createEloquentModelsOnly()) {
|
|
224
262
|
return templates;
|
|
225
263
|
}
|
|
264
|
+
if (this.$configuration.laravelVersion() == 12) {
|
|
265
|
+
templates[this.templateKey('banner')] = new generathor_1.GeneratorForCollection({
|
|
266
|
+
template: this.templateFile('views/laravel12/banner'),
|
|
267
|
+
source: this.$configuration.source(),
|
|
268
|
+
overwriteFiles: false,
|
|
269
|
+
prepareItems: () => [],
|
|
270
|
+
file: this.directory('/resources/views/components/generathor/banner.blade.php'),
|
|
271
|
+
});
|
|
272
|
+
templates[this.templateKey('pagination')] = new generathor_1.GeneratorForCollection({
|
|
273
|
+
template: this.templateFile('others/laravel12/pagination'),
|
|
274
|
+
source: this.$configuration.source(),
|
|
275
|
+
overwriteFiles: false,
|
|
276
|
+
prepareItems: () => [],
|
|
277
|
+
file: this.directory('/resources/views/vendor/pagination/tailwind.blade.php'),
|
|
278
|
+
});
|
|
279
|
+
}
|
|
226
280
|
templates[this.templateKey('record-input')] = new generathor_1.GeneratorForCollection({
|
|
227
|
-
template: this.templateFile(
|
|
281
|
+
template: this.templateFile(`views/${this.$viewFolder}/record-input`),
|
|
228
282
|
source: this.$configuration.source(),
|
|
283
|
+
overwriteFiles: false,
|
|
229
284
|
prepareItems: () => [],
|
|
230
285
|
file: this.directory('/resources/views/components/generathor/record-input.blade.php'),
|
|
231
286
|
});
|
|
232
287
|
templates[this.templateKey('breadcrumbs')] = new generathor_1.GeneratorForCollection({
|
|
233
|
-
template: this.templateFile(
|
|
288
|
+
template: this.templateFile(`views/${this.$viewFolder}/breadcrumbs`),
|
|
234
289
|
source: this.$configuration.source(),
|
|
290
|
+
overwriteFiles: false,
|
|
235
291
|
prepareItems: () => [],
|
|
236
292
|
file: this.directory('/resources/views/components/generathor/breadcrumbs.blade.php'),
|
|
237
293
|
});
|
|
238
294
|
templates[this.templateKey('tabs')] = new generathor_1.GeneratorForCollection({
|
|
239
|
-
template: this.templateFile(
|
|
295
|
+
template: this.templateFile(`views/${this.$viewFolder}/tabs`),
|
|
240
296
|
source: this.$configuration.source(),
|
|
297
|
+
overwriteFiles: false,
|
|
241
298
|
prepareItems: () => [],
|
|
242
299
|
file: this.directory('/resources/views/components/generathor/tabs.blade.php'),
|
|
243
300
|
});
|
|
244
301
|
templates[this.templateKey('modal')] = new generathor_1.GeneratorForCollection({
|
|
245
|
-
template: this.templateFile(
|
|
302
|
+
template: this.templateFile(`views/${this.$viewFolder}/modal`),
|
|
246
303
|
source: this.$configuration.source(),
|
|
304
|
+
overwriteFiles: false,
|
|
247
305
|
prepareItems: () => [],
|
|
248
306
|
file: this.directory('/resources/views/components/generathor/modal.blade.php'),
|
|
249
307
|
});
|
|
250
308
|
templates[this.templateKey('loader')] = new generathor_1.GeneratorForCollection({
|
|
251
|
-
template: this.templateFile(
|
|
309
|
+
template: this.templateFile(`views/${this.$viewFolder}/loader`),
|
|
252
310
|
source: this.$configuration.source(),
|
|
311
|
+
overwriteFiles: false,
|
|
253
312
|
prepareItems: () => [],
|
|
254
313
|
file: this.directory('/resources/views/components/generathor/loader.blade.php'),
|
|
255
314
|
});
|
|
@@ -274,6 +333,7 @@ class LaravelGenerator {
|
|
|
274
333
|
templates[this.templateKey(`icon-${icon}`)] = new generathor_1.GeneratorForCollection({
|
|
275
334
|
template: this.templateFile('views/icons/' + icon),
|
|
276
335
|
source: this.$configuration.source(),
|
|
336
|
+
overwriteFiles: false,
|
|
277
337
|
prepareItems: () => [],
|
|
278
338
|
file: this.directory(`/resources/views/components/generathor/icon-${icon}.blade.php`),
|
|
279
339
|
});
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -14,5 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./generator"), exports);
|
|
18
18
|
__exportStar(require("./configuration"), exports);
|
|
19
|
+
__exportStar(require("./laravel11"), exports);
|
|
20
|
+
__exportStar(require("./laravel12"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ConfigurationAttributes } from './configuration';
|
|
2
|
+
import { LaravelGenerator } from './generator';
|
|
3
|
+
export declare class Laravel11 {
|
|
4
|
+
static jetstreamEloquentModels(configuration?: ConfigurationAttributes): LaravelGenerator;
|
|
5
|
+
static eloquentModels(configuration?: ConfigurationAttributes): LaravelGenerator;
|
|
6
|
+
static jetstreamCrud(configuration?: ConfigurationAttributes): LaravelGenerator;
|
|
7
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Laravel11 = void 0;
|
|
4
|
+
const generator_1 = require("./generator");
|
|
5
|
+
class Laravel11 {
|
|
6
|
+
static jetstreamEloquentModels(configuration) {
|
|
7
|
+
configuration = configuration || {};
|
|
8
|
+
configuration.createEloquentModelsOnly = true;
|
|
9
|
+
configuration.createChildModel = true;
|
|
10
|
+
configuration.createLaravel11UserModel = true;
|
|
11
|
+
configuration.laravelVersion = 11;
|
|
12
|
+
configuration.eloquent = configuration.eloquent || {};
|
|
13
|
+
configuration.eloquent.customParents =
|
|
14
|
+
configuration.eloquent.customParents || {};
|
|
15
|
+
configuration.eloquent.customParents['users'] =
|
|
16
|
+
'App\\Models\\LaravelUser as Model';
|
|
17
|
+
return new generator_1.LaravelGenerator(configuration);
|
|
18
|
+
}
|
|
19
|
+
static eloquentModels(configuration) {
|
|
20
|
+
configuration = configuration || {};
|
|
21
|
+
configuration.createEloquentModelsOnly = true;
|
|
22
|
+
configuration.createChildModel = true;
|
|
23
|
+
return new generator_1.LaravelGenerator(configuration);
|
|
24
|
+
}
|
|
25
|
+
static jetstreamCrud(configuration) {
|
|
26
|
+
var _a;
|
|
27
|
+
configuration = configuration || {};
|
|
28
|
+
configuration.createEloquentModelsOnly = false;
|
|
29
|
+
configuration.createChildModel = true;
|
|
30
|
+
configuration.createLaravel11UserModel = true;
|
|
31
|
+
configuration.laravelVersion = 11;
|
|
32
|
+
configuration.eloquent = configuration.eloquent || {};
|
|
33
|
+
configuration.eloquent.customParents =
|
|
34
|
+
configuration.eloquent.customParents || {};
|
|
35
|
+
configuration.eloquent.customParents['users'] =
|
|
36
|
+
'App\\Models\\LaravelUser as Model';
|
|
37
|
+
configuration.layout = (_a = configuration.layout) !== null && _a !== void 0 ? _a : 'app-layout';
|
|
38
|
+
return new generator_1.LaravelGenerator(configuration);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.Laravel11 = Laravel11;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ConfigurationAttributes } from './configuration';
|
|
2
|
+
import { LaravelGenerator } from './generator';
|
|
3
|
+
export declare class Laravel12 {
|
|
4
|
+
static starterKitEloquentModels(configuration?: ConfigurationAttributes): LaravelGenerator;
|
|
5
|
+
static eloquentModels(configuration?: ConfigurationAttributes): LaravelGenerator;
|
|
6
|
+
static starterKitCrud(configuration?: ConfigurationAttributes): LaravelGenerator;
|
|
7
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Laravel12 = void 0;
|
|
4
|
+
const generator_1 = require("./generator");
|
|
5
|
+
const laravel11_1 = require("./laravel11");
|
|
6
|
+
class Laravel12 {
|
|
7
|
+
static starterKitEloquentModels(configuration) {
|
|
8
|
+
configuration = configuration || {};
|
|
9
|
+
configuration.createEloquentModelsOnly = true;
|
|
10
|
+
configuration.createChildModel = true;
|
|
11
|
+
configuration.createLaravel12UserModel = true;
|
|
12
|
+
configuration.laravelVersion = 12;
|
|
13
|
+
configuration.eloquent = configuration.eloquent || {};
|
|
14
|
+
configuration.eloquent.customParents =
|
|
15
|
+
configuration.eloquent.customParents || {};
|
|
16
|
+
configuration.eloquent.customParents['users'] =
|
|
17
|
+
'App\\Models\\LaravelUser as Model';
|
|
18
|
+
return new generator_1.LaravelGenerator(configuration);
|
|
19
|
+
}
|
|
20
|
+
static eloquentModels(configuration) {
|
|
21
|
+
return laravel11_1.Laravel11.eloquentModels(configuration);
|
|
22
|
+
}
|
|
23
|
+
static starterKitCrud(configuration) {
|
|
24
|
+
var _a;
|
|
25
|
+
configuration = configuration || {};
|
|
26
|
+
configuration.createEloquentModelsOnly = false;
|
|
27
|
+
configuration.createChildModel = true;
|
|
28
|
+
configuration.createLaravel12UserModel = true;
|
|
29
|
+
configuration.laravelVersion = 12;
|
|
30
|
+
configuration.eloquent = configuration.eloquent || {};
|
|
31
|
+
configuration.eloquent.customParents =
|
|
32
|
+
configuration.eloquent.customParents || {};
|
|
33
|
+
configuration.eloquent.customParents['users'] =
|
|
34
|
+
'App\\Models\\LaravelUser as Model';
|
|
35
|
+
configuration.layout = (_a = configuration.layout) !== null && _a !== void 0 ? _a : 'layouts.app';
|
|
36
|
+
return new generator_1.LaravelGenerator(configuration);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.Laravel12 = Laravel12;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "generathor-laravel",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Use this to create Eloquent models and CRUDs",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"generathor-db": "^1.0.2",
|
|
41
|
-
"generathor": "^1.0.
|
|
41
|
+
"generathor": "^1.0.12"
|
|
42
42
|
},
|
|
43
43
|
"optionalDependencies": {
|
|
44
44
|
"mysql2": "^3.11.3"
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace App\Models;
|
|
4
|
+
|
|
5
|
+
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
|
6
|
+
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
7
|
+
use Illuminate\Foundation\Auth\User as Authenticatable;
|
|
8
|
+
use Illuminate\Notifications\Notifiable;
|
|
9
|
+
use Laravel\Fortify\TwoFactorAuthenticatable;
|
|
10
|
+
use Laravel\Jetstream\HasProfilePhoto;
|
|
11
|
+
use Laravel\Sanctum\HasApiTokens;
|
|
12
|
+
|
|
13
|
+
class LaravelUser extends Authenticatable
|
|
14
|
+
{
|
|
15
|
+
use HasApiTokens;
|
|
16
|
+
|
|
17
|
+
/** @use HasFactory<\Database\Factories\UserFactory> */
|
|
18
|
+
use HasFactory;
|
|
19
|
+
use HasProfilePhoto;
|
|
20
|
+
use Notifiable;
|
|
21
|
+
use TwoFactorAuthenticatable;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The attributes that are mass assignable.
|
|
25
|
+
*
|
|
26
|
+
* @var array<int, string>
|
|
27
|
+
*/
|
|
28
|
+
protected $fillable = [
|
|
29
|
+
'name',
|
|
30
|
+
'email',
|
|
31
|
+
'password',
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The attributes that should be hidden for serialization.
|
|
36
|
+
*
|
|
37
|
+
* @var array<int, string>
|
|
38
|
+
*/
|
|
39
|
+
protected $hidden = [
|
|
40
|
+
'password',
|
|
41
|
+
'remember_token',
|
|
42
|
+
'two_factor_recovery_codes',
|
|
43
|
+
'two_factor_secret',
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The accessors to append to the model's array form.
|
|
48
|
+
*
|
|
49
|
+
* @var array<int, string>
|
|
50
|
+
*/
|
|
51
|
+
protected $appends = [
|
|
52
|
+
'profile_photo_url',
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Get the attributes that should be cast.
|
|
57
|
+
*
|
|
58
|
+
* @return array<string, string>
|
|
59
|
+
*/
|
|
60
|
+
protected function casts(): array
|
|
61
|
+
{
|
|
62
|
+
return [
|
|
63
|
+
'email_verified_at' => 'datetime',
|
|
64
|
+
'password' => 'hashed',
|
|
65
|
+
];
|
|
66
|
+
}
|
|
67
|
+
}
|