Skip to content

Commit

Permalink
Refactor all internal structure by breaking the less amount of things
Browse files Browse the repository at this point in the history
  • Loading branch information
Pierstoval committed Mar 4, 2024
1 parent 07cf712 commit bc9a1a2
Show file tree
Hide file tree
Showing 88 changed files with 304 additions and 283 deletions.
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# (upcoming) v0.15.0

- `docs` path was changed for `apidocs`
- **BC Break** all internal code structure has been changed.<br>This will **not** concern paths like `import {...} from '@orbitale/svelte-admin';`, as all library imports are still the same. However, you will have to update the loading of all the Typescript types from other files/directories.<br>The main reason for this change is to make sure the lib is better organized, but also the API docs are more readable just because of the code's structure.

# v0.14.1

- Fix DataTable types so they don't rely on Carbon types.
Expand Down Expand Up @@ -47,7 +52,7 @@

# v0.9.0

- **BC Break**: Definition options types have been renamed and merged in the `$lib/FieldDefinitions/definition.ts` file.
- **BC Break**: Definition options types have been renamed and merged in the `$lib/Fields/index.ts` file.
- Add `DateFilter` as a range of dates.
- Add `BooleanFilter` with radio inputs.
- Remove empty values from submitted filters.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
This package is an **admin generator** for your JS/TS/Svelte projects. It can consume a distant API, a localStorage, or even an RPC-based data storage (like when using [Tauri](https://tauri.app/)).

| List | View | Edit |
|----------------------------------------------------------------|----------------------------------------------------------------|----------------------------------------------------------------|
| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
| ![SvelteAdmin Backoffice List](./docs-src/backoffice_list.png) | ![SvelteAdmin Backoffice View](./docs-src/backoffice_view.png) | ![SvelteAdmin Backoffice Edit](./docs-src/backoffice_edit.png) |

There is a [roadmap](#roadmap) at the end of this documentation to know what features are soon coming!
Expand Down
13 changes: 5 additions & 8 deletions src/lib/actions.test.ts → src/lib/Actions.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { describe, it, expect, type TestOptions } from 'vitest';
import { CallbackAction, UrlAction } from '$lib/actions';

const testOpts: TestOptions = {
repeats: process.env.REPEAT ? parseInt(process.env.REPEAT) : undefined
};
import { describe, it, expect } from 'vitest';
import { CallbackAction, UrlAction } from '$lib/Actions';
import { testOptions } from '$lib/TestOptions';

describe(
'URL actions',
Expand Down Expand Up @@ -39,7 +36,7 @@ describe(
expect(action.url(item, 'customId')).toBe('/test/val1?id=custom_identifier');
});
},
testOpts
testOptions
);

describe(
Expand Down Expand Up @@ -74,5 +71,5 @@ describe(
expect(baseItem.field).toBe('newValue');
});
},
testOpts
testOptions
);
2 changes: 1 addition & 1 deletion src/lib/actions.ts → src/lib/Actions.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { ComponentType, SvelteComponent } from 'svelte';
import type { KeyValueObject, Optional } from '$lib/genericTypes';
import type { HTMLAnchorAttributes, HTMLButtonAttributes } from 'svelte/elements';
import type { KeyValueObject, Optional } from '$lib/types';

/** */
export type ActionIcon = string | SvelteComponent | ComponentType;
Expand Down
2 changes: 1 addition & 1 deletion src/lib/config/adminConfig.ts → src/lib/Config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ThemeConfig } from '$lib/themes/ThemeConfig';
import type { ThemeConfig } from '$lib/types';
import carbon from '$lib/themes/carbon';

/** */
Expand Down
File renamed without changes.
14 changes: 8 additions & 6 deletions src/lib/Crud/Operations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
* @module
*/

import type { FieldOptions, FieldInterface } from '$lib/FieldDefinitions/definition';
import type { CrudDefinition } from '$lib/Crud/definition';
import type { DashboardDefinition } from '$lib/Dashboard/definition';
import type { Action } from '$lib/actions';
import type { CrudTheme } from '$lib/themes/ThemeConfig';
import { defaultPaginationOptions, type PaginationOptions } from '$lib/DataTable/Pagination';
import type { FieldOptions, FieldInterface } from '$lib/Fields';
import type { CrudDefinition } from '$lib/Crud/index';
import type { DashboardDefinition } from '$lib/Dashboard';
import type { Action } from '$lib/Actions';
import type { CrudTheme } from '$lib/types';
import { defaultPaginationOptions, type PaginationOptions } from '$lib/Pagination';
import type { FilterInterface, FilterOptions } from '$lib/Filter';

/** */
Expand All @@ -33,10 +33,12 @@ export interface CrudOperation {

/** */
get dashboard(): DashboardDefinition;

set dashboard(dashboard: DashboardDefinition);

/** */
get crud(): CrudDefinition<unknown>;

set crud(crud: CrudDefinition<unknown>);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { describe, it, expect, type TestOptions } from 'vitest';
import { describe, it, expect } from 'vitest';
import { CallbackStateProcessor, CallbackStateProvider, CrudDefinition, List } from '$lib';

const testOpts: TestOptions = {
repeats: process.env.REPEAT ? parseInt(process.env.REPEAT) : undefined
};
import { testOptions } from '$lib/TestOptions';

type Book = object;

Expand Down Expand Up @@ -83,5 +80,5 @@ describe(
);
});
},
testOpts
testOptions
);
6 changes: 3 additions & 3 deletions src/lib/Crud/definition.ts → src/lib/Crud/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { CrudOperation } from '$lib/Crud/Operations';
import type { StateProvider } from '$lib/State/Provider';
import type { StateProcessor } from '$lib/State/Processor';
import { type DashboardDefinition } from '$lib/Dashboard/definition';
import type { StateProvider } from '$lib/StateProvider';
import type { StateProcessor } from '$lib/StateProcessor';
import { type DashboardDefinition } from '$lib/Dashboard';

/** */
export type CrudDefinitionOptionsArgument<EntityType> = {
Expand Down
9 changes: 3 additions & 6 deletions src/lib/Dashboard/index.test.ts → src/lib/Dashboard.test.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import { describe, it, expect, type TestOptions } from 'vitest';
import { describe, it, expect } from 'vitest';
import {
CallbackStateProcessor,
CallbackStateProvider,
CrudDefinition,
DashboardDefinition,
List
} from '$lib';

const testOpts: TestOptions = {
repeats: process.env.REPEAT ? parseInt(process.env.REPEAT) : undefined
};
import { testOptions } from '$lib/TestOptions';

type Book = object;

Expand All @@ -33,5 +30,5 @@ describe(
expect(dashboard).toBeDefined();
});
},
testOpts
testOptions
);
10 changes: 4 additions & 6 deletions src/lib/Dashboard/definition.ts → src/lib/Dashboard.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
import { get, writable, type Writable } from 'svelte/store';

import type { MenuLink } from '$lib/Menu/MenuLinks';
import type { Dictionaries } from '$lib/admin_i18n';
import type { CrudDefinition } from '$lib/Crud/definition';
import { type AdminConfig, emptyAdminConfig } from '$lib/config/adminConfig';
import type { MenuLink } from '$lib/Menu';
import type { CrudDefinition } from '$lib/Crud';
import type { Dictionaries } from '$lib/i18n';
import { type AdminConfig, emptyAdminConfig } from '$lib/Config';

/** */
export type DashboardStores = {
sideMenu: Writable<Array<MenuLink>>;
topLeftMenu: Writable<Array<MenuLink>>;
topRightMenu: Writable<Array<MenuLink>>;
};

/**
*/
export type DashboardDefinitionOptions = {
Expand Down
11 changes: 4 additions & 7 deletions src/lib/DataTable/index.test.ts → src/lib/DataTable.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { describe, it, expect, type TestOptions } from 'vitest';
import { describe, it, expect } from 'vitest';
import {
List,
CheckboxField,
Expand All @@ -10,11 +10,8 @@ import {
ToggleField,
UrlField
} from '$lib';
import { Columns } from '$lib/FieldDefinitions/Columns';

const testOpts: TestOptions = {
repeats: process.env.REPEAT ? parseInt(process.env.REPEAT) : undefined
};
import { Columns } from '$lib/Fields/Columns';
import { testOptions } from '$lib/TestOptions';

describe(
'DataTable',
Expand Down Expand Up @@ -53,5 +50,5 @@ describe(
expect(list).toBeDefined();
});
},
testOpts
testOptions
);
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { type CommonFieldOptions, Field } from '$lib/FieldDefinitions/definition';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import { type CommonFieldOptions, Field } from '$lib/Fields';

import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type CheckboxOptions = CommonFieldOptions;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import type { FieldInterface, FieldOptions } from '$lib/FieldDefinitions/definition';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import type { FieldInterface, FieldOptions } from '$lib/Fields';

import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type ColumnOptions = FieldOptions & {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Field, type InputFieldOptions } from '$lib/FieldDefinitions/definition';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import type { KeyValueObject } from '$lib/genericTypes';
import { Field, type InputFieldOptions } from '$lib/Fields';
import type { FormFieldTheme, ViewFieldTheme, KeyValueObject } from '$lib/types';

/** */
export type CrudEntityOptions = InputFieldOptions & {
Expand Down
4 changes: 2 additions & 2 deletions src/lib/FieldDefinitions/Date.ts → src/lib/Fields/Date.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Field, type InputFieldOptions } from '$lib/FieldDefinitions/definition';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import { Field, type InputFieldOptions } from '$lib/Fields';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type DateOptions = InputFieldOptions & {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Field, type InputFieldOptions } from '$lib/FieldDefinitions/definition';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import { Field, type InputFieldOptions } from '$lib/Fields';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type ObjectOptions = InputFieldOptions & {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Field, type InputFieldOptions } from '$lib/FieldDefinitions/definition';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import { Field, type InputFieldOptions } from '$lib/Fields';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type NumberOptions = InputFieldOptions & {
Expand Down
4 changes: 2 additions & 2 deletions src/lib/FieldDefinitions/Tabs.ts → src/lib/Fields/Tabs.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { FieldInterface, FieldOptions } from '$lib/FieldDefinitions/definition';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import type { FieldInterface, FieldOptions } from '$lib/Fields';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type TabOptions = FieldOptions & {
Expand Down
4 changes: 2 additions & 2 deletions src/lib/FieldDefinitions/Text.ts → src/lib/Fields/Text.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Field, type InputFieldOptions } from '$lib/FieldDefinitions/definition';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import { Field, type InputFieldOptions } from '$lib/Fields';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type TextOptions = InputFieldOptions & {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Field } from '$lib/FieldDefinitions/definition';
import type { TextOptions } from '$lib/FieldDefinitions/Text';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import { Field } from '$lib/Fields';
import type { TextOptions } from '$lib/Fields/Text';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type TextareaOptions = TextOptions & {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { type CommonFieldOptions, Field } from '$lib/FieldDefinitions/definition';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import { type CommonFieldOptions, Field } from '$lib/Fields';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type ToggleOptions = CommonFieldOptions;
Expand Down
4 changes: 2 additions & 2 deletions src/lib/FieldDefinitions/Url.ts → src/lib/Fields/Url.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Field, type InputFieldOptions } from '$lib/FieldDefinitions/definition';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import { Field, type InputFieldOptions } from '$lib/Fields';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type UrlOptions = InputFieldOptions & {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { FormFieldTheme, ViewFieldTheme } from '$lib/themes/ThemeConfig';
import type { FormFieldTheme, ViewFieldTheme } from '$lib/types';

/** */
export type FieldOptions = {
Expand Down
3 changes: 1 addition & 2 deletions src/lib/Filter/index.ts → src/lib/Filter.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import type { KeyValueObject } from '$lib/genericTypes';
import type { FilterTheme } from '$lib/themes/ThemeConfig';
import type { FilterTheme, KeyValueObject } from '$lib/types';

/** */
export type FilterOptions = KeyValueObject;
Expand Down
2 changes: 1 addition & 1 deletion src/lib/Layout/Icon.svelte
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script lang="ts">
import type { ActionIcon } from '$lib/actions';
import type { ActionIcon } from '$lib/Actions';
import { SvelteComponent } from 'svelte';
export let icon: ActionIcon;
Expand Down
4 changes: 2 additions & 2 deletions src/lib/Menu/MenuLinks.ts → src/lib/Menu.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { type Action, type ActionIcon, type ActionOptions, DefaultAction } from '$lib/actions';
import type { Optional } from '$lib/genericTypes';
import { type Action, type ActionIcon, type ActionOptions, DefaultAction } from '$lib/Actions';
import type { Optional } from '$lib/types';

/** */
export type MenuLink = Action;
Expand Down
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion src/lib/request.ts → src/lib/Request.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { Page } from '@sveltejs/kit';
import type { Optional } from '$lib/genericTypes';
import type { Optional } from '$lib/types';

/** */
export type RequestParameters = {
Expand Down
2 changes: 1 addition & 1 deletion src/lib/State/Processor.ts → src/lib/StateProcessor.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { CrudOperation } from '$lib/Crud/Operations';
import type { RequestParameters } from '$lib/request';
import type { RequestParameters } from '$lib/Request';

/** */
export type StateProcessorInput<T> = T | Array<T> | null;
Expand Down
4 changes: 2 additions & 2 deletions src/lib/State/Provider.ts → src/lib/StateProvider.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { PaginatedResults } from '$lib/Pagination';
import type { CrudOperation } from '$lib/Crud/Operations';
import type { PaginatedResults } from '$lib/DataTable/Pagination';
import type { RequestParameters } from '$lib/request';
import type { RequestParameters } from '$lib/Request';

/** */
export type StateProviderResult<T> = Promise<T | PaginatedResults<T> | Array<T> | null>;
Expand Down
5 changes: 5 additions & 0 deletions src/lib/TestOptions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import type { TestOptions } from 'vitest';

export const testOptions: TestOptions = {
repeats: process.env.REPEAT ? parseInt(process.env.REPEAT) : undefined
};
9 changes: 0 additions & 9 deletions src/lib/config/types.ts

This file was deleted.

5 changes: 0 additions & 5 deletions src/lib/genericTypes.ts

This file was deleted.

2 changes: 1 addition & 1 deletion src/lib/admin_i18n.ts → src/lib/i18n.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { init, addMessages } from 'svelte-i18n';

import type { KeyValueObject } from '$lib/genericTypes';
import type { KeyValueObject } from '$lib/types';

import en from '$lib/translations/en';
import fr from '$lib/translations/fr';
Expand Down
Loading

0 comments on commit bc9a1a2

Please sign in to comment.