MCPcopy Create free account
hub / github.com/Openpanel-dev/openpanel / extractProjectId

Function extractProjectId

packages/db/src/buffers/event-buffer.ts:27–48  ·  view source on GitHub ↗
(line: string)

Source from the content-addressed store, hash-verified

25 * malformed.
26 */
27export function extractProjectId(line: string): string | null {
28 const first = line.indexOf(PROJECT_ID_NEEDLE);
29 if (first < 0) return null;
30
31 const second = line.indexOf(PROJECT_ID_NEEDLE, first + PROJECT_ID_NEEDLE.length);
32 if (second >= 0) {
33 try {
34 const obj = JSON.parse(line) as { project_id?: unknown };
35 return typeof obj.project_id === 'string' ? obj.project_id : null;
36 } catch {
37 return null;
38 }
39 }
40
41 const valueStart = first + PROJECT_ID_NEEDLE.length;
42 const valueEnd = line.indexOf('"', valueStart);
43 // valueEnd === valueStart means the value is empty (`"project_id":""`)
44 // — treat as missing so we don't pollute pub/sub counts with an empty
45 // key. Matches the old regex's `[^"]+` (one-or-more) behavior.
46 if (valueEnd <= valueStart) return null;
47 return line.slice(valueStart, valueEnd);
48}
49
50export class EventBuffer extends BaseBuffer {
51 private batchSize = process.env.EVENT_BUFFER_BATCH_SIZE

Callers 2

processBufferMethod · 0.85

Calls 1

parseMethod · 0.80

Tested by

no test coverage detected