@sqlrooms/room-config
Core Zod schemas and types for persisted Room configuration.
Use this package when you need to validate, type, or serialize the persisted configuration portion of a SQLRooms app.
Installation
bash
npm install @sqlrooms/room-configMain exports
BaseRoomConfig,createDefaultBaseRoomConfig(),DEFAULT_ROOM_TITLE- data source schemas:
DataSource,FileDataSource,UrlDataSource,SqlQueryDataSource - data source type guards:
isFileDataSource,isUrlDataSource,isSqlQueryDataSource - file load option schemas/types (
LoadFileOptions,StandardLoadFileOptions, etc.) - layout schema re-exports from
@sqlrooms/layout-config
Basic usage
Validate room config
ts
import {BaseRoomConfig} from '@sqlrooms/room-config';
const roomConfig = BaseRoomConfig.parse({
title: 'Earthquakes Explorer',
description: 'Browser-based analytics app',
dataSources: [
{
type: 'url',
tableName: 'earthquakes',
url: 'https://huggingface.co/datasets/sqlrooms/earthquakes/resolve/main/earthquakes.parquet',
},
{
type: 'sql',
tableName: 'top_quakes',
sqlQuery: 'SELECT * FROM earthquakes ORDER BY Magnitude DESC LIMIT 100',
},
],
});Create defaults
ts
import {createDefaultBaseRoomConfig} from '@sqlrooms/room-config';
const defaultConfig = createDefaultBaseRoomConfig();Use with persistence
ts
import {BaseRoomConfig, LayoutConfig} from '@sqlrooms/room-config';
import {
createRoomShellSlice,
createRoomStore,
persistSliceConfigs,
} from '@sqlrooms/room-shell';
const persistence = {
name: 'my-room-storage',
sliceConfigSchemas: {
room: BaseRoomConfig,
layout: LayoutConfig,
},
};
const {roomStore} = createRoomStore(
persistSliceConfigs(persistence, (set, get, store) => ({
...createRoomShellSlice({
config: {
title: 'My Room',
dataSources: [],
},
})(set, get, store),
})),
);Type Aliases
- LayoutNodeKey
- PanelIdentity
- LayoutPanelNode
- LayoutSplitNode
- LayoutTabsNode
- LayoutDockNode
- LayoutNode
- LayoutConfig
- LayoutDirection
- LayoutDirection
- BaseRoomConfig
- DataSourceTypes
- BaseDataSource
- FileDataSource
- UrlDataSource
- SqlQueryDataSource
- DataSource
- LoadFile
- StandardLoadOptions
- SpatialLoadOptions
- SpatialLoadFileOptions
- StandardLoadFileOptions
- LoadFileOptions
Variables
- MAIN_VIEW
- LayoutNodeKey
- LayoutPanelNode
- LayoutSplitNode
- LayoutTabsNode
- LayoutDockNode
- LayoutNode
- LayoutConfig
- DEFAULT_ROOM_TITLE
- BaseRoomConfig
- DataSourceTypes
- BaseDataSource
- FileDataSource
- UrlDataSource
- SqlQueryDataSource
- DataSource
- LoadFile
- StandardLoadOptions
- SpatialLoadOptions
- SpatialLoadFileOptions
- StandardLoadFileOptions
- LoadFileOptions
