anl 1.7.1 → 1.7.2
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.ar.md +182 -182
- package/README.es.md +180 -182
- package/README.fr.md +182 -182
- package/README.jp.md +181 -181
- package/README.md +162 -164
- package/README.ru.md +176 -176
- package/README.zh.md +89 -75
- package/package.json +1 -1
- package/lib/_virtual/argument.js +0 -1
- package/lib/_virtual/command.js +0 -1
- package/lib/_virtual/error.js +0 -1
- package/lib/_virtual/help.js +0 -1
- package/lib/_virtual/index.js +0 -1
- package/lib/_virtual/index2.js +0 -1
- package/lib/_virtual/option.js +0 -1
- package/lib/_virtual/suggestSimilar.js +0 -1
- package/lib/ajax-config/api-type.d.ts +0 -20
- package/lib/ajax-config/config.ts +0 -81
- package/lib/ajax-config/error-message.ts +0 -59
- package/lib/ajax-config/fetch.ts +0 -128
- package/lib/data/open-api.json.js +0 -1
- package/lib/git-local-config/.commit-type.cjs +0 -89
- package/lib/git-local-config/.gitattributes +0 -2
- package/lib/git-local-config/.gitconfig +0 -18
- package/lib/git-local-config/.githooks/commit-msg +0 -95
- package/lib/git-local-config/.githooks/get-commit-emoji.cjs +0 -16
- package/lib/git-local-config/.gitscripts/get-branch-types.cjs +0 -43
- package/lib/git-local-config/.gitscripts/get-branch-types.js +0 -43
- package/lib/git-local-config/.gitscripts/random-branch.bat +0 -97
- package/lib/git-local-config/.gitscripts/random-branch.sh +0 -102
- package/lib/node_modules/@inquirer/checkbox/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/@inquirer/confirm/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/Separator.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/create-prompt.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/errors.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/hook-engine.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/key.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/make-theme.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/pagination/lines.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/pagination/position.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/pagination/use-pagination.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/promise-polyfill.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/screen-manager.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/theme.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/use-effect.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/use-keypress.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/use-memo.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/use-prefix.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/use-ref.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/use-state.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/dist/esm/lib/utils.mjs.js +0 -1
- package/lib/node_modules/@inquirer/core/node_modules/signal-exit/dist/mjs/index.js +0 -1
- package/lib/node_modules/@inquirer/core/node_modules/signal-exit/dist/mjs/signals.js +0 -1
- package/lib/node_modules/@inquirer/editor/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/@inquirer/expand/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/@inquirer/figures/dist/esm/index.js +0 -1
- package/lib/node_modules/@inquirer/input/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/@inquirer/number/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/@inquirer/password/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/@inquirer/rawlist/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/@inquirer/search/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/@inquirer/select/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/commander/esm.mjs.js +0 -1
- package/lib/node_modules/commander/index.js +0 -1
- package/lib/node_modules/commander/lib/argument.js +0 -1
- package/lib/node_modules/commander/lib/command.js +0 -1
- package/lib/node_modules/commander/lib/error.js +0 -1
- package/lib/node_modules/commander/lib/help.js +0 -1
- package/lib/node_modules/commander/lib/option.js +0 -1
- package/lib/node_modules/commander/lib/suggestSimilar.js +0 -1
- package/lib/node_modules/inquirer/dist/esm/index.mjs.js +0 -1
- package/lib/node_modules/inquirer/dist/esm/ui/prompt.mjs.js +0 -1
- package/lib/node_modules/run-async/index.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/Observable.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/Subscriber.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/Subscription.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/config.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/lastValueFrom.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/observable/defer.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/observable/empty.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/observable/from.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/observable/of.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/operators/concatMap.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/operators/filter.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/operators/map.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/operators/reduce.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/operators/scanInternals.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/EmptyError.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/args.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/identity.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/isIterable.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/isObservable.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/isPromise.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/lift.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/noop.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/pipe.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +0 -1
- package/lib/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js +0 -1
- package/lib/node_modules/tslib/tslib.es6.js +0 -1
- package/lib/package.json.js +0 -1
- package/lib/src/build-type/core/components.js +0 -1
- package/lib/src/build-type/core/get-data.js +0 -1
- package/lib/src/build-type/core/path.js +0 -1
- package/lib/src/build-type/index.js +0 -1
- package/lib/src/build-type/tools/index.js +0 -1
- package/lib/src/git-local-config/index.js +0 -1
- package/lib/src/git-local-config/utils.js +0 -1
- package/lib/src/index.js +0 -1
- package/lib/src/standard/const.js +0 -1
- package/lib/src/standard/install-commitlint.js +0 -1
- package/lib/src/standard/install-eslint.js +0 -1
- package/lib/src/standard/lint-init.js +0 -1
- package/lib/src/standard/prettier.js +0 -1
- package/lib/src/standard/vscode.js +0 -1
- package/lib/src/utils/index.js +0 -1
package/README.ar.md
CHANGED
|
@@ -2,75 +2,99 @@
|
|
|
2
2
|
|
|
3
3
|
[简体中文](./README.zh.md) | [English](./README.md) | [Español](./README.es.md) | العربية | [Français](./README.fr.md) | [Русский](./README.ru.md) | [日本語](./README.jp.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
# نظرة عامة على الوظائف
|
|
6
6
|
|
|
7
|
-
an-cli هو أداة سطر أوامر
|
|
8
|
-
|
|
9
|
-
> `anl type`: أداة
|
|
10
|
-
|
|
11
|
-
> `anl
|
|
12
|
-
|
|
13
|
-
> `anl git`: تُنشئ إعدادات Git محلية تشمل فروع gitflow القياسية وموضوعات رسائل الالتزام وأوامر Git مخصصة.
|
|
7
|
+
> an-cli هو أداة سطر أوامر للواجهة الأمامية، يتضمن الأوامر التالية:
|
|
8
|
+
>
|
|
9
|
+
> - أمر `anl type`: أداة سطر أوامر لتوليد تعريفات أنواع TypeScript ودوال طلبات API تلقائيًا بناءً على Swagger JSON.
|
|
10
|
+
> - أمر `anl lint`: توليد تكوينات eslint و stylelint و prettier و commitLint و VSCode ذات الصلة لمشاريع react أو vue
|
|
11
|
+
> - أمر `anl git`: توليد تكوين git المحلي، مع وظائف اختيارية: إنشاء فروع gitflow القياسية، موضوعات رسائل git commit، تكوين أوامر git المخصصة
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
# الميزات الرئيسية
|
|
16
14
|
|
|
17
15
|
- `anl type`
|
|
18
|
-
- 🚀 تحليل
|
|
19
|
-
- 📦 توليد ملفات تعريف
|
|
20
|
-
- 🔄 توليد دوال طلبات API آمنة الأنواع
|
|
21
|
-
- 🎯 دعم معاملات المسار
|
|
22
|
-
- 📝 توليد
|
|
23
|
-
- 🎨 دعم تنسيق
|
|
24
|
-
- ⚡️ دعم
|
|
25
|
-
- 🛠 خيارات توليد قابلة
|
|
16
|
+
- 🚀 تحليل مستندات Swagger JSON تلقائيًا
|
|
17
|
+
- 📦 توليد ملفات تعريف أنواع TypeScript
|
|
18
|
+
- 🔄 توليد دوال طلبات API آمنة من حيث الأنواع
|
|
19
|
+
- 🎯 دعم معاملات المسار ومعاملات الاستعلام وجسم الطلب
|
|
20
|
+
- 📝 توليد تعريفات أنواع التعداد تلقائيًا
|
|
21
|
+
- 🎨 دعم تنسيق الكود
|
|
22
|
+
- ⚡️ دعم تحميل الملفات
|
|
23
|
+
- 🛠 خيارات توليد كود قابلة للتكوين
|
|
26
24
|
|
|
27
25
|
- `anl lint`
|
|
28
|
-
- 🔍
|
|
29
|
-
- 🎨
|
|
30
|
-
- 🎯
|
|
31
|
-
- 🔄
|
|
32
|
-
- 📦
|
|
26
|
+
- 🔍 تكوين أدوات lint المختلفة بنقرة واحدة
|
|
27
|
+
- 🎨 أتمتة تكوين ESLint
|
|
28
|
+
- 🎯 تكوين تنسيق Prettier
|
|
29
|
+
- 🔄 معيار التزام CommitLint
|
|
30
|
+
- 📦 تكوين محرر VSCode
|
|
33
31
|
|
|
34
|
-
|
|
32
|
+
- `anl git`
|
|
33
|
+
- 🔍 تثبيت اختياري لوظائف متعددة
|
|
34
|
+
- 🎨 إنشاء فروع git flow القياسية
|
|
35
|
+
- 🎯 تعيين موضوع تلقائي يتوافق مع معيار CommitLint
|
|
36
|
+
- 🔄 توفير تكوين أوامر git المخصصة ونقطة الدخول
|
|
37
|
+
- 📦 توليد تلقائي بدون تكوين
|
|
35
38
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
>
|
|
39
|
+
# التثبيت
|
|
40
|
+
|
|
41
|
+
> [!NOTE]
|
|
42
|
+
> يتطلب التثبيت العام
|
|
39
43
|
|
|
40
44
|
```bash
|
|
41
45
|
$ npm install anl -g
|
|
46
|
+
```
|
|
42
47
|
|
|
48
|
+
```bash
|
|
43
49
|
$ yarn global add anl
|
|
44
50
|
```
|
|
45
51
|
|
|
46
|
-
|
|
52
|
+
```bash
|
|
53
|
+
$ pnpm add -g anl
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
# تعليمات الاستخدام
|
|
47
57
|
|
|
48
|
-
>
|
|
58
|
+
> [!TIP]
|
|
49
59
|
>
|
|
50
|
-
> 1.
|
|
51
|
-
> 2. أو اتبع الخطوات أدناه
|
|
60
|
+
> 1. إذا كنت تستخدمه لأول مرة ولا تعرف ما هي النتائج، يُنصح بتنفيذ الأمر أولاً، ومراقبة التغييرات التي ستحدث في المشروع، ثم الجمع بين الوثائق، وتعديل التكوين بشكل أكبر، وإعادة التوليد، للوصول في النهاية إلى الشكل المثالي
|
|
61
|
+
> 2. أو اتبع الخطوات أدناه خطوة بخطوة، وستحصل على نتائج جيدة
|
|
62
|
+
> 3. يرجى تنفيذ أوامر `anl type` و `anl lint` و `anl git` في الدليل الجذر للمشروع
|
|
52
63
|
|
|
53
|
-
|
|
64
|
+
## تعليمات استخدام أمر `anl type`
|
|
54
65
|
|
|
55
|
-
|
|
66
|
+
- عند تنفيذ أمر `anl type` **للمرة الأولى**، سيتم _إنشاء تلقائي_ لملف تكوين باسم `an.config.json` في _الدليل الجذر للمشروع_ (يمكن أيضًا الإنشاء يدويًا) مع قالب تكوين أولي.
|
|
56
67
|
|
|
57
|
-
|
|
68
|
+
- عند تنفيذ أمر `anl type`، سيتم البحث عن ملف تكوين `an.config.json` في الدليل الجذر لمشروع المستخدم، وقراءة معلومات التكوين الخاصة به، وتوليد تغليف axios المقابل، والتكوين، وقائمة الواجهات، وطلبات الواجهة وأنواع TS لمعاملات الطلب والاستجابة لكل واجهة
|
|
58
69
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
70
|
+
- عناصر التكوين في ملف التكوين قابلة للتعديل بحرية
|
|
71
|
+
|
|
72
|
+
- حول ملف تكوين `an.config.json`
|
|
73
|
+
- يجب أن يكون ملف التكوين في الدليل الجذر للمشروع
|
|
74
|
+
|
|
75
|
+
- لا يمكن تغيير اسم ملف التكوين
|
|
76
|
+
|
|
77
|
+
- للحصول على وصف تفصيلي للمعاملات، يرجى الاطلاع على [شرح ملف التكوين بالتفصيل](#شرح-ملف-التكوين-بالتفصيل)
|
|
78
|
+
|
|
79
|
+
- قم بتحديث ملف التكوين وفقًا لاحتياجاتك، ثم قم بتنفيذ أمر `anl type` مرة أخرى، وسيتم التوليد وفقًا لمعلومات التكوين المحددة في ملف التكوين، وتوليد معلومات النوع المقابلة
|
|
80
|
+
|
|
81
|
+
- إذا كانت ملفات 'config.ts' و 'error-message.ts' و 'fetch.ts' و 'api-type.d.ts' موجودة، فلن يتم توليدها مرة أخرى
|
|
82
|
+
|
|
83
|
+
-
|
|
84
|
+
|
|
85
|
+
> [!NOTE]
|
|
86
|
+
>
|
|
87
|
+
> إذا لم تكن واضحًا بشأن هذه التكوينات، يمكنك أولاً تنفيذ أمر anl type لتوليد الأنواع أولاً، ثم فحص دليل المشروع، والجمع بين شرح عناصر التكوين، وتعديل عناصر التكوين، وإعادة التوليد، والتحقق تدريجيًا من وظيفة عناصر المشروع، وإكمال التكوين النهائي
|
|
62
88
|
|
|
63
|
-
|
|
89
|
+
### طريقة الاستخدام
|
|
64
90
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
91
|
+
```bash
|
|
92
|
+
$ anl lint
|
|
93
|
+
```
|
|
68
94
|
|
|
69
|
-
|
|
95
|
+
### شرح ملف التكوين بالتفصيل
|
|
70
96
|
|
|
71
|
-
|
|
72
|
-
- لا يمكن تغيير اسم الملف.
|
|
73
|
-
- تفاصيل المعاملات في قسم «خيارات الإعداد».
|
|
97
|
+
#### مثال على ملف التكوين
|
|
74
98
|
|
|
75
99
|
```json
|
|
76
100
|
{
|
|
@@ -101,51 +125,46 @@ $ anl type
|
|
|
101
125
|
}
|
|
102
126
|
```
|
|
103
127
|
|
|
104
|
-
|
|
128
|
+
#### شرح عناصر التكوين
|
|
105
129
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
130
|
+
| عنصر التكوين | النوع | مطلوب | الوصف |
|
|
131
|
+
| ------------------------ | ------------------------------------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
132
|
+
| saveTypeFolderPath | string | نعم | مسار حفظ ملفات تعريف الأنواع |
|
|
133
|
+
| saveApiListFolderPath | string | نعم | مسار حفظ ملفات دوال طلبات API |
|
|
134
|
+
| saveEnumFolderPath | string | نعم | مسار حفظ ملفات بيانات التعداد |
|
|
135
|
+
| importEnumPath | string | نعم | مسار استيراد التعداد (مسار ملف enum المُشار إليه في apps/types/models/\*.ts) |
|
|
136
|
+
| swaggerJsonUrl | string | نعم | عنوان مستند Swagger JSON |
|
|
137
|
+
| requestMethodsImportPath | string | نعم | مسار استيراد طرق الطلب |
|
|
138
|
+
| dataLevel | 'data' \| 'serve' \| 'axios' | نعم | مستوى بيانات استجابة الواجهة |
|
|
139
|
+
| formatting | object | لا | تكوين تنسيق الكود |
|
|
140
|
+
| headers | object | لا | تكوين رأس الطلب |
|
|
141
|
+
| includeInterface | Array<{path: string, method: string}> | لا | الواجهات المضمنة: ملف قائمة الواجهات المحدد بـ `saveApiListFolderPath` سيتضمن فقط الواجهات في القائمة، متعارض مع حقل `excludeInterface` |
|
|
142
|
+
| excludeInterface | Array<{path: string, method: string}> | لا | الواجهات المستبعدة: نص قائمة الواجهات المحدد بـ `saveApiListFolderPath` لن يتضمن الواجهات في هذه القائمة، متعارض مع `includeInterface` |
|
|
143
|
+
| publicPrefix | string | لا | البادئة العامة على مسار url، على سبيل المثال: api/users، api/users/{id}، api هي البادئة العامة |
|
|
109
144
|
|
|
110
|
-
|
|
111
|
-
>
|
|
112
|
-
> إذا لم تكن متأكدًا من الخيارات، نفّذ `anl type` أولًا وعاين المخرجات ثم عدّل الخيارات وأعد التشغيل حتى تصل لما تريد.
|
|
145
|
+
#### العلاقة بين عناصر التكوين والملفات المولدة
|
|
113
146
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
| الخيار | النوع | إلزامي | الوصف |
|
|
117
|
-
| ------------------------ | ------------------------------------- | ------ | ----------------------------- |
|
|
118
|
-
| saveTypeFolderPath | string | نعم | مسار حفظ ملفات تعريف الأنواع |
|
|
119
|
-
| saveApiListFolderPath | string | نعم | مسار حفظ ملفات دوال طلبات API |
|
|
120
|
-
| saveEnumFolderPath | string | نعم | مسار حفظ ملفات التعدادات |
|
|
121
|
-
| importEnumPath | string | نعم | مسار الاستيراد للتعدادات |
|
|
122
|
-
| swaggerJsonUrl | string | نعم | رابط ملف Swagger JSON |
|
|
123
|
-
| requestMethodsImportPath | string | نعم | مسار الاستيراد لطرائق الطلب |
|
|
124
|
-
| dataLevel | 'data' \| 'serve' \| 'axios' | نعم | مستوى بيانات الاستجابة |
|
|
125
|
-
| formatting | object | لا | إعدادات تنسيق الشيفرة |
|
|
126
|
-
| headers | object | لا | ترويسات الطلب |
|
|
127
|
-
| includeInterface | Array<{path: string, method: string}> | لا | توليد الواجهات المذكورة فقط |
|
|
128
|
-
| excludeInterface | Array<{path: string, method: string}> | لا | استبعاد الواجهات المذكورة |
|
|
129
|
-
|
|
130
|
-
## بنية الملفات المولدة
|
|
131
|
-
|
|
132
|
-
- يتم توليد البنية التالية اعتمادًا على ملف الإعداد.
|
|
147
|
+
> يتم إنشاء هيكل الملف بناءً على ملف التكوين، والمُشار إليه بـ **غير مُتحكم به** يعني: يتم إنشاء هذا المجلد وملفاته تلقائيًا ولا تتحكم فيه عناصر التكوين
|
|
133
148
|
|
|
134
149
|
```
|
|
135
150
|
project/
|
|
136
151
|
├── apps/
|
|
137
|
-
│ ├── types/
|
|
138
|
-
│ │ ├── models/
|
|
139
|
-
│ │ ├── connectors/
|
|
140
|
-
│
|
|
141
|
-
│
|
|
142
|
-
│
|
|
143
|
-
│
|
|
152
|
+
│ ├── types/ # محدد بواسطة عنصر التكوين saveTypeFolderPath
|
|
153
|
+
│ │ ├── models/ # جميع ملفات تعريف الأنواع (باستثناء أنواع التعداد) غير مُتحكم به
|
|
154
|
+
│ │ ├── connectors/ # تعريفات نوع API (ملفات تعريف الواجهة) غير مُتحكم به
|
|
155
|
+
│ └── api/ # ملف الطلب: محدد بواسطة عنصر التكوين saveApiListFolderPath
|
|
156
|
+
│ │ ├── fetch.ts # تنفيذ طريقة الطلب غير مُتحكم به
|
|
157
|
+
│ │ └── index.ts # قائمة دوال طلبات API غير مُتحكم به
|
|
158
|
+
│ │ └── api-type.d.ts # ملف تعريف نوع الطلب غير مُتحكم به
|
|
159
|
+
│ │ └── config.ts # الطلب، اعتراض الاستجابة، تكوين الطلب غير مُتحكم به
|
|
160
|
+
│ │ └── error-message.ts # رسائل خطأ على مستوى النظام غير مُتحكم به
|
|
161
|
+
│ │ ├── fetch.ts # تغليف طلب axios، يمكن استبداله بـ fetch غير مُتحكم به
|
|
162
|
+
│ └── enums/ # تعريف نوع بيانات التعداد: محدد بواسطة عنصر التكوين saveEnumFolderPath
|
|
144
163
|
```
|
|
145
164
|
|
|
146
|
-
|
|
165
|
+
### أمثلة على الكود المولد
|
|
147
166
|
|
|
148
|
-
|
|
167
|
+
#### تعريف نوع الواجهة
|
|
149
168
|
|
|
150
169
|
```typescript
|
|
151
170
|
declare namespace UserDetail_GET {
|
|
@@ -162,29 +181,29 @@ declare namespace UserDetail_GET {
|
|
|
162
181
|
}
|
|
163
182
|
```
|
|
164
183
|
|
|
165
|
-
|
|
184
|
+
#### دالة طلب API
|
|
166
185
|
|
|
167
186
|
```typescript
|
|
168
187
|
import { GET } from './fetch';
|
|
169
188
|
|
|
170
189
|
/**
|
|
171
|
-
*
|
|
190
|
+
* الحصول على تفاصيل المستخدم
|
|
172
191
|
*/
|
|
173
192
|
export const userDetailGet = (params: UserDetail_GET.Query) => GET<UserDetail_GET.Response>('/user/detail', params);
|
|
174
193
|
```
|
|
175
194
|
|
|
176
|
-
|
|
195
|
+
### شرح الميزات
|
|
177
196
|
|
|
178
|
-
|
|
197
|
+
#### تحليل الأنواع
|
|
179
198
|
|
|
180
|
-
- يدعم جميع أنواع
|
|
181
|
-
-
|
|
182
|
-
- يدعم المصفوفات والكائنات والتعدادات وغيرها
|
|
183
|
-
-
|
|
199
|
+
- يدعم جميع أنواع البيانات في مواصفات OpenAPI 3.0
|
|
200
|
+
- معالجة تلقائية للأنواع المتداخلة المعقدة
|
|
201
|
+
- يدعم أنواع المصفوفات والكائنات والتعدادات وغيرها
|
|
202
|
+
- توليد تعليقات الواجهة تلقائيًا
|
|
184
203
|
|
|
185
|
-
|
|
204
|
+
#### تحميل الملفات
|
|
186
205
|
|
|
187
|
-
عند اكتشاف
|
|
206
|
+
عند اكتشاف نوع تحميل ملف، سيتم إضافة رأس الطلب المقابل تلقائيًا:
|
|
188
207
|
|
|
189
208
|
```typescript
|
|
190
209
|
export const uploadFile = (params: UploadFile.Body) =>
|
|
@@ -193,29 +212,29 @@ export const uploadFile = (params: UploadFile.Body) =>
|
|
|
193
212
|
});
|
|
194
213
|
```
|
|
195
214
|
|
|
196
|
-
|
|
215
|
+
#### معالجة الأخطاء
|
|
197
216
|
|
|
198
|
-
|
|
217
|
+
تحتوي الأداة على آلية معالجة أخطاء كاملة:
|
|
199
218
|
|
|
200
|
-
-
|
|
201
|
-
- تحذيرات
|
|
202
|
-
-
|
|
219
|
+
- مطالبات أخطاء التحليل
|
|
220
|
+
- تحذيرات فشل توليد الأنواع
|
|
221
|
+
- معالجة استثناءات كتابة الملفات
|
|
203
222
|
|
|
204
|
-
|
|
223
|
+
#### تصفية الواجهات
|
|
205
224
|
|
|
206
|
-
|
|
225
|
+
تدعم الأداة تصفية الواجهات التي تحتاج إلى التوليد من خلال التكوين:
|
|
207
226
|
|
|
208
227
|
1. تضمين واجهات محددة
|
|
209
|
-
-
|
|
210
|
-
- سيتم توليد
|
|
211
|
-
-
|
|
228
|
+
- تحديد الواجهات التي تحتاج إلى التوليد من خلال عنصر التكوين `includeInterface`
|
|
229
|
+
- سيتم توليد الواجهات المحددة في التكوين فقط
|
|
230
|
+
- تنسيق التكوين هو مصفوفة كائنات تحتوي على `path` و `method`
|
|
212
231
|
|
|
213
232
|
2. استبعاد واجهات محددة
|
|
214
|
-
-
|
|
215
|
-
- سيتم توليد
|
|
216
|
-
-
|
|
233
|
+
- تحديد الواجهات التي تحتاج إلى الاستبعاد من خلال عنصر التكوين `excludeInterface`
|
|
234
|
+
- سيتم توليد جميع الواجهات باستثناء تلك المحددة في التكوين
|
|
235
|
+
- تنسيق التكوين هو مصفوفة كائنات تحتوي على `path` و `method`
|
|
217
236
|
|
|
218
|
-
|
|
237
|
+
مثال على التكوين: يتم تكوين هذا في `an.config.json`
|
|
219
238
|
|
|
220
239
|
```json
|
|
221
240
|
{
|
|
@@ -234,120 +253,101 @@ export const uploadFile = (params: UploadFile.Body) =>
|
|
|
234
253
|
}
|
|
235
254
|
```
|
|
236
255
|
|
|
237
|
-
ملاحظة: لا يمكن استخدام `includeInterface`
|
|
256
|
+
ملاحظة: لا يمكن استخدام `includeInterface` و `excludeInterface` في نفس الوقت، إذا تم تكوينهما معًا، سيتم إعطاء الأولوية لـ `includeInterface`.
|
|
238
257
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
# تثبيت الاعتمادات
|
|
243
|
-
npm install
|
|
244
|
-
|
|
245
|
-
# وضع التطوير
|
|
246
|
-
اضغط F5 لبدء التصحيح
|
|
247
|
-
|
|
248
|
-
# البناء
|
|
249
|
-
npm run build
|
|
250
|
-
|
|
251
|
-
# ربط محلي للتصحيح
|
|
252
|
-
npm run blink
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
## ملاحظات
|
|
256
|
-
|
|
257
|
-
1. تأكد من إمكانية الوصول إلى رابط Swagger JSON
|
|
258
|
-
2. المسارات في ملف الإعداد نسبية إلى جذر المشروع
|
|
259
|
-
3. سيتم استبدال الملفات المولدة للملفات الموجودة بنفس الاسم
|
|
260
|
-
4. يُنصح بإضافة الملفات المولدة إلى نظام التحكم بالإصدارات
|
|
261
|
-
|
|
262
|
-
## الأسئلة الشائعة
|
|
258
|
+
### ملاحظات
|
|
263
259
|
|
|
264
|
-
1.
|
|
265
|
-
|
|
266
|
-
|
|
260
|
+
1. تأكد من إمكانية الوصول إلى عنوان مستند Swagger JSON
|
|
261
|
+
2. يجب أن تكون المسارات في ملف التكوين نسبية إلى الدليل الجذر للمشروع
|
|
262
|
+
3. ستستبدل الملفات المولدة الملفات الموجودة بنفس الاسم
|
|
263
|
+
4. يُنصح بإضافة الملفات المولدة إلى التحكم في الإصدار
|
|
267
264
|
|
|
268
|
-
|
|
269
|
-
- تحقق من صحة `requestMethodsImportPath`
|
|
270
|
-
- تأكد من وجود ملف طرائق الطلب
|
|
265
|
+
### الأسئلة الشائعة
|
|
271
266
|
|
|
272
|
-
|
|
267
|
+
1. فشل تنسيق ملف النوع المولد
|
|
268
|
+
- تحقق من تثبيت prettier
|
|
269
|
+
- تأكد من وجود ملف تكوين prettier في الدليل الجذر للمشروع
|
|
273
270
|
|
|
274
|
-
|
|
271
|
+
2. خطأ في مسار استيراد دالة الطلب
|
|
272
|
+
- تحقق من صحة تكوين requestMethodsImportPath
|
|
273
|
+
- تأكد من وجود ملف طريقة الطلب
|
|
275
274
|
|
|
276
|
-
|
|
275
|
+
# تعليمات استخدام أمر `anl lint`
|
|
277
276
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
-
|
|
281
|
-
-
|
|
277
|
+
> يوفر وظيفة تكوين أدوات lint المختلفة لمشروع الواجهة الأمامية بنقرة واحدة، بما في ذلك:
|
|
278
|
+
>
|
|
279
|
+
> - فحص كود ESLint
|
|
280
|
+
> - تنسيق كود Prettier
|
|
281
|
+
> - معيار معلومات الالتزام CommitLint
|
|
282
|
+
> - تكوين محرر VSCode
|
|
282
283
|
|
|
283
|
-
### الاستخدام
|
|
284
|
+
### طريقة الاستخدام
|
|
284
285
|
|
|
285
286
|
```bash
|
|
286
287
|
$ anl lint
|
|
287
288
|
```
|
|
288
289
|
|
|
289
|
-
### تفاصيل
|
|
290
|
+
### تفاصيل التكوين
|
|
290
291
|
|
|
291
|
-
#### 1. ESLint
|
|
292
|
+
#### 1. تكوين ESLint
|
|
292
293
|
|
|
293
|
-
- تثبيت
|
|
294
|
-
-
|
|
295
|
-
- توليد `.eslintrc.js` و `.eslintignore`
|
|
294
|
+
- تثبيت التبعيات المطلوبة تلقائيًا
|
|
295
|
+
- يدعم إطارات React/Vue
|
|
296
|
+
- توليد `.eslintrc.js` و `.eslintignore` تلقائيًا
|
|
296
297
|
- دمج دعم TypeScript
|
|
297
298
|
|
|
298
|
-
#### 2. Prettier
|
|
299
|
+
#### 2. تكوين Prettier
|
|
299
300
|
|
|
300
|
-
- تثبيت
|
|
301
|
-
- توليد `.prettierrc.js`
|
|
302
|
-
-
|
|
301
|
+
- تثبيت التبعيات ذات الصلة بـ prettier تلقائيًا
|
|
302
|
+
- توليد ملف تكوين `.prettierrc.js`
|
|
303
|
+
- التكوين الافتراضي يتضمن:
|
|
303
304
|
- عرض السطر: 80
|
|
304
|
-
-
|
|
305
|
-
- علامات اقتباس
|
|
306
|
-
- أقواس
|
|
307
|
-
-
|
|
305
|
+
- مسافة بادئة Tab
|
|
306
|
+
- استخدام علامات اقتباس مفردة
|
|
307
|
+
- أقواس دالة السهم
|
|
308
|
+
- معايير نمط الكود الأخرى
|
|
308
309
|
|
|
309
|
-
#### 3. CommitLint
|
|
310
|
+
#### 3. تكوين CommitLint
|
|
310
311
|
|
|
311
|
-
- تثبيت
|
|
312
|
-
-
|
|
312
|
+
- تثبيت التبعيات ذات الصلة بـ commitlint
|
|
313
|
+
- تكوين husky git hooks
|
|
313
314
|
- توليد `commitlint.config.js`
|
|
314
|
-
- توحيد
|
|
315
|
+
- توحيد رسالة git commit
|
|
315
316
|
|
|
316
|
-
#### 4. VSCode
|
|
317
|
+
#### 4. تكوين VSCode
|
|
317
318
|
|
|
318
319
|
- إنشاء `.vscode/settings.json`
|
|
319
|
-
-
|
|
320
|
-
-
|
|
321
|
-
-
|
|
322
|
-
|
|
323
|
-
# أمر anl git
|
|
320
|
+
- تكوين التنسيق التلقائي للمحرر
|
|
321
|
+
- تعيين أداة التنسيق الافتراضية
|
|
322
|
+
- يدعم تحديث ملفات التكوين الموجودة
|
|
324
323
|
|
|
325
|
-
|
|
324
|
+
# أمر `anl git`
|
|
326
325
|
|
|
327
|
-
|
|
326
|
+
### نظرة عامة على الوظائف
|
|
328
327
|
|
|
329
|
-
-
|
|
330
|
-
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
-
|
|
334
|
-
-
|
|
335
|
-
|
|
336
|
-
-
|
|
337
|
-
-
|
|
328
|
+
- من خلال الاختيار المتعدد التفاعلي، يمكن تطبيق إمكانيات Git التالية على المستودع الحالي:
|
|
329
|
+
- إنشاء فروع gitflow القياسية
|
|
330
|
+
- نسخ `.gitscripts/` و `.gitconfig` و `.commit-type.cjs` إلى المشروع (فقط عند الغياب)
|
|
331
|
+
- إضافة أذونات التنفيذ لـ `.gitscripts/random-branch.sh`
|
|
332
|
+
- تنفيذ `git config --local include.path ../.gitconfig`
|
|
333
|
+
- تعيين موضوع commit تلقائيًا
|
|
334
|
+
- نسخ `.githooks/commit-msg` وتعيينه كقابل للتنفيذ
|
|
335
|
+
- تنفيذ `git config core.hooksPath .githooks`
|
|
336
|
+
- أوامر git المخصصة
|
|
337
|
+
- إضافة `.gitattributes` إلى المشروع (فقط عند الغياب)
|
|
338
338
|
|
|
339
|
-
### الاستخدام
|
|
339
|
+
### طريقة الاستخدام
|
|
340
340
|
|
|
341
341
|
```bash
|
|
342
342
|
$ anl git
|
|
343
343
|
```
|
|
344
344
|
|
|
345
|
-
اختر وظيفة أو أكثر
|
|
345
|
+
اختر وظيفة واحدة أو أكثر في المطالبة. يتم إنشاء الملفات فقط عند عدم وجودها؛ سيتم الاحتفاظ بالملفات الموجودة.
|
|
346
346
|
|
|
347
347
|
### ملاحظات
|
|
348
348
|
|
|
349
|
-
-
|
|
350
|
-
- إذا
|
|
349
|
+
- يرجى التشغيل داخل مستودع Git.
|
|
350
|
+
- إذا فشل تنفيذ git config تلقائيًا، يرجى التنفيذ يدويًا:
|
|
351
351
|
|
|
352
352
|
```bash
|
|
353
353
|
git config --local include.path ../.gitconfig
|
|
@@ -358,6 +358,6 @@ git config core.hooksPath .githooks
|
|
|
358
358
|
|
|
359
359
|
ISC License
|
|
360
360
|
|
|
361
|
-
# المساهمة
|
|
361
|
+
# دليل المساهمة
|
|
362
362
|
|
|
363
|
-
|
|
363
|
+
نرحب بتقديم [القضايا](https://github.com/bianliuzhu/an-cli/issues) و [طلبات السحب](https://github.com/bianliuzhu/an-cli/pulls)!
|