Releases: thaitype/data-viewer
Releases · thaitype/data-viewer
v1.0.0
Major Changes
-
cfd28b1: Release first stable version
Breaking Changes
- Type changed from
ServerOptions
toDataViewerOptions
- Moved
logger?: LoggerOptions;
fromDataViewerOptions
toStartOptions
with new option nameloggerOption?: LoggerOptions;
forstart
method - Used
logger?: Logger;
inDataViewerOptions
for custom logger - Moved
port
fromDataViewerOptions
tostart
method (with typeStartOptions
)
DataViewerOptions
is now dataViewer.addOption TableComponent
interfacedata
property is allow(Record<string, unknown> | object)[];
type.
New Features
Create Data Container
Sometimes, you may want to create a data container and add data to it later.
export function myReport() { const container = new Container(); container.addHeader('My Header'); return container.get(); } dataViewer.addContainer(myReport()); dataViewer.start();
Support Custom Server
You can use the
registerMiddleware
method to integrate with your existing server.const getUsers = async () => (await fetch('https://jsonplaceholder.typicode.com/users')).json(); const dataViewer = new DataViewer({ path: '/viewer', }); dataViewer.addHeader('User Table'); dataViewer.addTable(await getUsers()); const app = express(); dataViewer.registerMiddleware(app); app.listen(3000, async () => console.log(`Already servered on http://localhost:3000/viewer`));
Support Custom Logger
You can use the
logger
option to integrate with your existing log,
this example uses pino logimport pino from 'pino'; const logger = pino(); const stringLogger = { log: (message: string) => logger.info(message), debug: (message: string) => logger.debug(message), info: (message: string) => logger.info(message), warn: (message: string) => logger.warn(message), error: (message: string) => logger.error(message), }; const dataViewer = new DataViewer({ path: '/viewer', logger: stringLogger, }).start();
- Type changed from
v0.2.2
v0.2.1
v0.2.0
Change Summary
- Support custom cell formatter function
- Add default formatter for
Buffer
data type - Show no data when table array length is 0
- Fix realtime event to be more stable
Support custom cell formatter function,
example:
const getUsers = async () => (await fetch('https://jsonplaceholder.typicode.com/users')).json();
dataViewer
.setOption({
cellFormatter: cell => {
if (typeof cell === 'object') {
return JSON.stringify(cell);
}
return String(cell);
},
})
.addHeader('User Table')
.addTable(await getUsers())
.start();
Full Changelog: v0.1.1...v0.2.0
v0.1.1
Improved stability for day-to-day use.
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Proof of concept EJS template work with express server as packages
Added
- Initial stable release.
- Web-based table viewer for Node.js data.
- Live Reload feature for automatic updates after server restart.
- Dynamic Table Support for
Record<string, unknown>[]
data type with simple headers.
What's Changed
- Init first version by @mildronize in #1
New Contributors
- @mildronize made their first contribution in #1
Full Changelog: https://github.com/thaitype/data-viewer/commits/v0.1.0