Core Services
@codella-software/utils contains the framework-agnostic API.
Root exports
Form builder
import { FormBuilder, MultiStepFormBuilder } from '@codella-software/utils'
FormBuilder is created with FormBuilder.create() or FormBuilder.fromConfig().
Table builder
import {
TableBuilder,
createTableBuilder,
createColumn,
createColumns,
} from '@codella-software/utils'
Filters and sort
import {
FiltersAndSortService,
createFiltersAndSortService,
SORT_DIRECTIONS,
} from '@codella-software/utils'
Tabs
import { TabsService } from '@codella-software/utils'
Rich content
import {
RichContentService,
DefaultContentEditableAdapter,
HTMLSerializer,
JSONSerializer,
PlainTextSerializer,
} from '@codella-software/utils'
Subpath-only modules
API service
import {
ApiService,
AuthService,
TokenManager,
createApiClient,
createCustomQuery,
createFirebaseAuthProvider,
createFirebaseAppCheckProvider,
createCustomAuthProvider,
createCustomAppCheckProvider,
} from '@codella-software/utils/api-service'
Live updates
import {
LiveUpdateService,
SSEService,
WebsocketService,
} from '@codella-software/utils/live-updates'
Example
import {
FormBuilder,
FiltersAndSortService,
TableBuilder,
createColumn,
} from '@codella-software/utils'
type Filters = { search: string }
type User = { id: number; name: string }
const filters = new FiltersAndSortService<Filters>({
storageKey: 'users',
defaultFilters: { search: '' },
})
const form = FormBuilder.create<{ name: string }>()
.addField({ name: 'name', type: 'text', label: 'Name' })
.setInitialValues({ name: '' })
const table = new TableBuilder<User, Filters>()
.data([])
.totalRows(0)
.columns([createColumn('name', 'name', 'Name', { sortable: true })])
.filtersAndSort(filters.getCurrentState(), filters.getActions())
.build()