From cfed92e8a56ebc1cb77e128a8d2aad1ff036f477 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 13 Nov 2025 15:23:49 -0500 Subject: [PATCH] Formatting clean up --- NAMING_CONVENTIONS.md | 124 +++++++++++++++++++++--------------------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/NAMING_CONVENTIONS.md b/NAMING_CONVENTIONS.md index 785835a9..dbb2fcda 100644 --- a/NAMING_CONVENTIONS.md +++ b/NAMING_CONVENTIONS.md @@ -1,83 +1,83 @@ # Aether Project Naming Conventions ## 1. General Principles -* **Clarity:** Names should clearly convey their purpose and meaning. -* **Consistency:** Adhere strictly to these guidelines across the entire codebase. -* **Readability:** Prioritize names that are easy to read and understand. -* **Conciseness:** Avoid unnecessary verbosity, but not at the expense of clarity. +* **Clarity:** Names should clearly convey their purpose and meaning. +* **Consistency:** Adhere strictly to these guidelines across the entire codebase. +* **Readability:** Prioritize names that are easy to read and understand. +* **Conciseness:** Avoid unnecessary verbosity, but not at the expense of clarity. ## 2. File Naming -* **Logic/Service Files:** `ae___.ts` (e.g., `ae_core__account.ts`, `ae_events__event.ts`) -* **Database Definition Files:** `db_.ts` (e.g., `db_core.ts`, `db_journals.ts`) -* **Svelte Store Files:** `ae__stores.ts` (e.g., `ae_core_stores.ts`, `ae_journals_stores.ts`) -* **Svelte Components:** - * **Module-specific components:** `ae_comp____.svelte` (e.g., `ae_comp__events__event_card.svelte`) - * **Generic/reusable components:** `element_.svelte` (e.g., `element_input_file.svelte`, `element_qr_scanner_v2.svelte`) -* **SvelteKit Routes:** Follow SvelteKit's standard routing conventions (e.g., `+page.svelte`, `+layout.svelte`, `[id]/+page.svelte`). -* **CSS Files:** `ae--.css` (e.g., `ae-c-idaa-light.css`, `ae-osit-default.css`) +* **Logic/Service Files:** `ae___.ts` (e.g., `ae_core__account.ts`, `ae_events__event.ts`) +* **Database Definition Files:** `db_.ts` (e.g., `db_core.ts`, `db_journals.ts`) +* **Svelte Store Files:** `ae__stores.ts` (e.g., `ae_core_stores.ts`, `ae_journals_stores.ts`) +* **Svelte Components:** + * **Module-specific components:** `ae_comp____.svelte` (e.g., `ae_comp__events__event_card.svelte`) + * **Generic/reusable components:** `element_.svelte` (e.g., `element_input_file.svelte`, `element_qr_scanner_v2.svelte`) +* **SvelteKit Routes:** Follow SvelteKit's standard routing conventions (e.g., `+page.svelte`, `+layout.svelte`, `[id]/+page.svelte`). +* **CSS Files:** `ae--.css` (e.g., `ae-c-idaa-light.css`, `ae-osit-default.css`) ## 3. Function and Variable Naming -* **Style:** Strictly `snake_case` for all function and variable names. - * **Deprecated:** `camelCase` should be refactored to `snake_case`. -* **Prefixes:** - * `load_ae_obj_id__`: For loading a single Aether object by ID. - * `load_ae_obj_li__`: For loading a list of Aether objects. - * `create_ae_obj__`: For creating an Aether object. - * `update_ae_obj__`: For updating an Aether object. - * `delete_ae_obj_id__`: For deleting an Aether object by ID. - * `db_save_ae_obj_li__`: For saving a list of Aether objects to IndexedDB. - * `db_update_ae_obj_id__`: For updating an Aether object in IndexedDB. - * `process_ae_obj___props`: For module-specific data transformation functions. - * **Deprecated:** Ambiguous `handle_` prefixes should be replaced with more descriptive `snake_case` names (e.g., `handle_submit_form` -> `submit_form`). +* **Style:** Strictly `snake_case` for all function and variable names. + * **Deprecated:** `camelCase` should be refactored to `snake_case`. +* **Prefixes:** + * `load_ae_obj_id__`: For loading a single Aether object by ID. + * `load_ae_obj_li__`: For loading a list of Aether objects. + * `create_ae_obj__`: For creating an Aether object. + * `update_ae_obj__`: For updating an Aether object. + * `delete_ae_obj_id__`: For deleting an Aether object by ID. + * `db_save_ae_obj_li__`: For saving a list of Aether objects to IndexedDB. + * `db_update_ae_obj_id__`: For updating an Aether object in IndexedDB. + * `process_ae_obj___props`: For module-specific data transformation functions. + * **Deprecated:** Ambiguous `handle_` prefixes should be replaced with more descriptive `snake_case` names (e.g., `handle_submit_form` -> `submit_form`). ## 4. Object and Property Naming -* **Singularity:** Use singular nouns for objects and properties (e.g., `example.id`, not `examples.id`). -* **IDs:** - * `id`: Primary key for an object (internal use, often a UUID). - * `_id`: Specific ID for an object (e.g., `person_id`). - * `_id_random`: Randomly generated ID for an object (often used for external exposure or URL parameters). - * `account_id`, `site_id`, `user_id`, etc.: Foreign keys. -* **Common Properties:** - * `code`: Short, unique identifier. - * `name`: Display name. - * `description`: Longer text description. - * `enable`: Boolean for active/inactive status. - * `hide`: Boolean for visibility. - * `priority`: Numeric value for ordering. - * `sort`: Numeric value for ordering. - * `group`: Categorization string. - * `notes`: General notes/comments. - * `created_on`: Timestamp of creation. - * `updated_on`: Timestamp of last update. -* **Special Use Properties:** `for_type`, `for_id`, `archive_on`, `passcode`, `external_id`. -* **Config/JSON Properties:** `cfg_json`, `data_json`, `linked_li_json`. -* **Special Generated Fields (Client-side):** `tmp_sort_1`, `tmp_sort_2`, `tmp_sort_3` (for client-side sorting). +* **Singularity:** Use singular nouns for objects and properties (e.g., `example.id`, not `examples.id`). +* **IDs:** + * `id`: Primary key for an object (internal use, often a UUID). + * `_id`: Specific ID for an object (e.g., `person_id`). + * `_id_random`: Randomly generated ID for an object (often used for external exposure or URL parameters). + * `account_id`, `site_id`, `user_id`, etc.: Foreign keys. +* **Common Properties:** + * `code`: Short, unique identifier. + * `name`: Display name. + * `description`: Longer text description. + * `enable`: Boolean for active/inactive status. + * `hide`: Boolean for visibility. + * `priority`: Numeric value for ordering. + * `sort`: Numeric value for ordering. + * `group`: Categorization string. + * `notes`: General notes/comments. + * `created_on`: Timestamp of creation. + * `updated_on`: Timestamp of last update. +* **Special Use Properties:** `for_type`, `for_id`, `archive_on`, `passcode`, `external_id`. +* **Config/JSON Properties:** `cfg_json`, `data_json`, `linked_li_json`. +* **Special Generated Fields (Client-side):** `tmp_sort_1`, `tmp_sort_2`, `tmp_sort_3` (for client-side sorting). ## 5. List Suffixes -* **Simple Arrays:** Use `_li` suffix for simple, unordered arrays (e.g., `user_li`, `hosted_file_id_li`). -* **Key-Value Maps/Objects:** Use `_kv` suffix for key-value objects/maps (e.g., `user_kv`, `hosted_file_obj_kv`). +* **Simple Arrays:** Use `_li` suffix for simple, unordered arrays (e.g., `user_li`, `hosted_file_id_li`). +* **Key-Value Maps/Objects:** Use `_kv` suffix for key-value objects/maps (e.g., `user_kv`, `hosted_file_obj_kv`). ## 6. Interface and Type Naming -* **Style:** Use `PascalCase` for interface and type names (e.g., `Account`, `HostedFile`, `GenericCrudArgs`). +* **Style:** Use `PascalCase` for interface and type names (e.g., `Account`, `HostedFile`, `GenericCrudArgs`). ## 7. Constants -* **Style:** Use `SCREAMING_SNAKE_CASE` for constants (e.g., `MAX_RETRIES`, `DEFAULT_TIMEOUT`). +* **Style:** Use `SCREAMING_SNAKE_CASE` for constants (e.g., `MAX_RETRIES`, `DEFAULT_TIMEOUT`). ## 8. CSS Classes and IDs -* **Style:** Use `kebab-case` for CSS classes and IDs (e.g., `my-component-class`, `main-header-id`). +* **Style:** Use `kebab-case` for CSS classes and IDs (e.g., `my-component-class`, `main-header-id`). ## 9. Data Sorting -* **Standard Order:** `group > priority > sort > updated_on/created_on` -* **Specific Order:** `type > start_date/time > code or name` +* **Standard Order:** `group > priority > sort > updated_on/created_on` +* **Specific Order:** `type > start_date/time > code or name` ## 10. Local Storage and IndexedDB Keys -* **Local Storage:** - * `api` - * `app` (global) - * `core` (core modules) - * `` (extended modules) - * `` (custom modules) -* **IndexedDB:** - * `ae_core_db` - * `` - * `` \ No newline at end of file +* **Local Storage:** + * `api` + * `app` (global) + * `core` (core modules) + * `` (extended modules) + * `` (custom modules) +* **IndexedDB:** + * `ae_core_db` + * `` + * ``