> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kayanos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# البدائل القديمة للتعبيرات

> أسماء توافقية قديمة ما زالت قابلة للاستدعاء في سياقات المنشئ المشتركة، مع الاسم الحديث المفضل وأمثلة للترحيل.

## متى تستخدم هذه الدوال؟

استخدم الدالة المفضلة في أي إعداد جديد. تسجل هذه البدائل لفهم الإعدادات القائمة وترحيلها بوضوح. معظمها ليس جزءاً من بيئة تشغيل قالب المستند.

## طريقة الكتابة

استخدم الدالة بصيغة `toLowercase($.service_name)`. لا تكون كل دالة متاحة في كل مكان: دوال التحقق ودوال النموذج ودوال قالب المستند لها عقود سياق مختلفة. لا تفترض أن اقتراح المحرر يعني أن الدالة مدعومة وقت التشغيل.

## مرجع الدوال الكامل

### `endWith`

اسم توافق قديم لفحص نهاية النص بلاحقة محددة. استخدم `endsWith(value, suffix)` في الإعدادات الجديدة.

**التوقيع:** `endWith(value, suffix)`

**مثال:**

```txt theme={null}
endWith($.email, ".gov.sy") // true
```

**التوافر:** متاحة في سياقات المنشئ المشتركة فقط؛ وليست عقداً قابلاً للنقل إلى قالب المستند.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | endWith(...)`.

### `flat`

اسم توافق قديم يسطّح مستوى واحداً من قائمة متداخلة. استخدم `flatten(list)` في الإعدادات الجديدة.

**التوقيع:** `flat(list)`

**مثال:**

```txt theme={null}
flat([["identity"], ["address"]]) // ["identity", "address"]
```

**التوافر:** متاحة في سياقات المنشئ المشتركة فقط؛ وليست عقداً قابلاً للنقل إلى قالب المستند.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | flat(...)`.

### `formatDate`

اسم توافق قديم لتنسيق التاريخ. استخدم `dateFormat(date, format)` في الإعدادات الجديدة.

**التوقيع:** `formatDate(date, format)`

**مثال:**

```txt theme={null}
formatDate($.received_at, "YYYY-MM-DD")
```

**التوافر:** متاحة في سياقات المنشئ المشتركة فقط؛ وليست عقداً قابلاً للنقل إلى قالب المستند.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | formatDate(...)`.

### `get`

اسم توافق قديم يقرأ قيمة متداخلة عبر مسار نصي. استخدم `getByPath(value, path)` في الإعدادات الجديدة.

**التوقيع:** `get(value, path)`

**مثال:**

```txt theme={null}
get($.applicant, "address.district")
```

**التوافر:** متاحة في سياقات المنشئ المشتركة فقط؛ وليست عقداً قابلاً للنقل إلى قالب المستند.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | get(...)`.

### `replaceFirst`

اسم توافق قديم يستبدل أول ظهور مطابق فقط داخل النص. استخدم الدالة الحديثة المناسبة بعد اختبار قيمة البحث والاستبدال.

**التوقيع:** `replaceFirst(value, search, replacement)`

**مثال:**

```txt theme={null}
replaceFirst("REQ-REQ-10", "REQ-", "") // "REQ-10"
```

**التوافر:** متاحة في سياقات المنشئ المشتركة فقط؛ وليست عقداً قابلاً للنقل إلى قالب المستند.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | replaceFirst(...)`.

### `sort`

دالة توافق تنسخ القائمة وترتب قيمها رقمياً عندما يكون ذلك ممكناً. استخدم `sortAsc` أو `sortDesc` أو `sortBy` في الإعدادات الجديدة.

**التوقيع:** `sort(list, direction = "asc")`

**مثال:**

```txt theme={null}
sort([12, 3, 8], "desc") // [12, 8, 3]
```

**التوافر:** متاحة في سياقات المنشئ المشتركة فقط؛ وليست عقداً قابلاً للنقل إلى قالب المستند.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | sort(...)`.

### `sortByField`

اسم توافق قديم لترتيب قائمة حسب حقل. استخدم `sortBy(list, field, direction)` في الإعدادات الجديدة.

**التوقيع:** `sortByField(list, field, direction = "asc")`

**مثال:**

```txt theme={null}
sortByField($inverseRelations.inspections.request_id, "scheduled_at", "asc")
```

**التوافر:** متاحة في سياقات المنشئ المشتركة فقط؛ وليست عقداً قابلاً للنقل إلى قالب المستند.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | sortByField(...)`.

### `startWith`

اسم توافق قديم لفحص بداية النص ببادئة محددة. استخدم `startsWith(value, prefix)` في الإعدادات الجديدة.

**التوقيع:** `startWith(value, prefix)`

**مثال:**

```txt theme={null}
startWith($.reference, "CSR-") // true
```

**التوافر:** متاحة في سياقات المنشئ المشتركة فقط؛ وليست عقداً قابلاً للنقل إلى قالب المستند.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | startWith(...)`.

### `toLowercase`

اسم توافق قديم يحول النص إلى أحرف صغيرة. استخدم `lower(value)` في أي إعداد جديد.

**التوقيع:** `toLowercase(value)`

**مثال:**

```txt theme={null}
toLowercase($.service_name) // "citizen service"
```

**التوافر:** متاحة في سياقات المنشئ المشتركة فقط؛ وليست عقداً قابلاً للنقل إلى قالب المستند.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | toLowercase(...)`.

### `toUppercase`

اسم توافق قديم يحول النص إلى أحرف كبيرة. استخدم `upper(value)` في أي إعداد جديد.

**التوقيع:** `toUppercase(value)`

**مثال:**

```txt theme={null}
toUppercase($.district_code) // "DAMASCUS"
```

**التوافر:** متاحة في سياقات المنشئ المشتركة فقط؛ وليست عقداً قابلاً للنقل إلى قالب المستند.

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | toUppercase(...)`.

## قائمة تحقق قبل النشر

* ابدأ بقيمة معروفة وتحقق من النتيجة المتوقعة.
* تعامل صراحةً مع القيم الفارغة وnull والقوائم الفارغة.
* لا تضع أسراراً أو رموز وصول أو بيانات شخصية حساسة داخل تعبير.
* راجع [سياقات وتوافر التعبيرات](/ar/reference/expressions/contexts) قبل نسخ تعبير بين ميزتين.

![البدائل القديمة للتعبيرات في KayanOS](https://kayanos.app/docs-images/ar/reference/expressions-helpers-aliases.png)
