Skip to content

Commit e851de8

Browse files
committed
chore: adds event beaconing for features
1 parent da52eb5 commit e851de8

File tree

7 files changed

+17
-12
lines changed

7 files changed

+17
-12
lines changed

lib/javascript/fullstack_demo/src/components/add-todo/add-todo.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { Todo } from '@/models';
1+
import { LogEvent, Todo } from '@/models';
2+
import { logger } from '@/util/client-logger';
23
import { PlusIcon } from 'lucide-react';
34
import { useState } from 'react';
45

@@ -14,6 +15,7 @@ export const AddTodo: React.FC<AddTodoProps> = ({ onAdd }) => {
1415
if (newTodo.trim() !== '') {
1516
const todo: Todo = { id: Date.now(), text: newTodo, completed: false };
1617
await fetch('/api/todos', { method: 'POST', body: JSON.stringify(todo) });
18+
logger.event(LogEvent.TODO_ADD, { id: todo.id });
1719
setNewTodo('');
1820
if (onAdd) {
1921
onAdd(todo);

lib/javascript/fullstack_demo/src/components/todo-list/todo-list.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import { Todo } from '@/models';
1+
import { LogEvent, Todo } from '@/models';
22
import { logger } from '@/util/client-logger';
3-
import { LogEvent } from '@/util/events';
43
import { TodoComponent } from './todo';
54

65
export type TodoProps = {
@@ -18,6 +17,7 @@ export const TodoList: React.FC<TodoProps> = ({ todos, onChange }) => {
1817
method: 'PATCH',
1918
body: JSON.stringify(todo),
2019
});
20+
logger.event(LogEvent.TODO_TOGGLE, { id });
2121
if (onChange) {
2222
onChange(todo.id);
2323
}
@@ -28,6 +28,7 @@ export const TodoList: React.FC<TodoProps> = ({ todos, onChange }) => {
2828
await fetch(`/api/todos/${id}`, {
2929
method: 'DELETE',
3030
});
31+
logger.event(LogEvent.TODO_DELETE, { id });
3132
if (onChange) {
3233
onChange(id);
3334
}

lib/javascript/fullstack_demo/src/models.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,11 @@ export interface Log {
1111
message: string;
1212
vars: {};
1313
}
14+
15+
export enum LogEvent {
16+
LOG_IN = 'log_in',
17+
LOG_OUT = 'log_out',
18+
TODO_TOGGLE = 'todo_toggle',
19+
TODO_DELETE = 'todo_delete',
20+
TODO_ADD = 'todo_add',
21+
}

lib/javascript/fullstack_demo/src/util/client-logger.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { Log } from '@/models';
2-
import { LogEvent } from './events';
1+
import { Log, LogEvent } from '@/models';
32
import { Logger, LogLevel } from './logger';
43

54
const FLUSH_AFTER_SIZE = 15;

lib/javascript/fullstack_demo/src/util/events.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

lib/javascript/fullstack_demo/src/util/logger.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { LogEvent } from './events';
1+
import { LogEvent } from '@/models';
22

33
export interface Logger {
44
log(level: LogLevel, message: string, vars?: {}): void;

lib/javascript/fullstack_demo/src/util/server-logger.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import { LogEvent } from '@/models';
12
import { auth } from '@clerk/nextjs/server';
23
import { headers } from 'next/headers';
34
import winston, { format } from 'winston';
4-
import { LogEvent } from './events';
55
import { Logger, LogLevel } from './logger';
66
import { PrismaTransport } from './prisma-transport';
77
const { combine, timestamp, json } = format;

0 commit comments

Comments
 (0)