Skip to content

Commit

Permalink
added questionId to debug
Browse files Browse the repository at this point in the history
  • Loading branch information
MrSurana committed Dec 27, 2023
1 parent 31a9d1e commit 9d481f5
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 23 deletions.
1 change: 1 addition & 0 deletions examples/firepad-monaco-example.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ const init = function (): void {
});

const firepad = Firepad.fromMonacoWithFirebase(firebaseRef, editor, {
questionId: "test-question-id",
userName: `Anonymous ${Math.floor(Math.random() * 100)}`,
defaultText: `// typescript Editing with Firepad!
function go() {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@hackerrank/firepad",
"description": "Collaborative text editing powered by Firebase",
"version": "0.8.4-dev-5",
"version": "0.8.4-dev-6",
"author": {
"email": "bprogyan@gmail.com",
"name": "Progyan Bhattacharya",
Expand Down
56 changes: 35 additions & 21 deletions src/firebase-adapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ export class FirebaseAdapter implements IDatabaseAdapter {
protected _userId: UserIDType | null;
protected _userColor: string | null;
protected _userName: string | null;
protected _questionId: string | null;
protected _userCursor: ICursor | null;
protected _pendingReceivedRevisions: RevisionHistoryType;
protected _emitter: IEventEmitter | null;
Expand All @@ -110,7 +111,8 @@ export class FirebaseAdapter implements IDatabaseAdapter {
databaseRef: string | firebase.database.Reference,
userId: number | string,
userColor: string,
userName: string
userName: string,
questionId: string
) {
if (typeof databaseRef !== "object") {
databaseRef = firebase.database().ref(databaseRef);
Expand All @@ -122,6 +124,7 @@ export class FirebaseAdapter implements IDatabaseAdapter {
this._firebaseCallbacks = [];
this._zombie = false;
this._initialRevisions = false;
this._questionId = questionId;

// Add User Information
this.setUserId(userId);
Expand Down Expand Up @@ -292,7 +295,7 @@ export class FirebaseAdapter implements IDatabaseAdapter {
revisionId
] = revisionSnapshot.val() as RevisionType;

console.log(`[firepad] _historyChildAdded`, {
console.log(`[firepad] ${this._questionId} _historyChildAdded`, {
revisionId,
snapshot: revisionSnapshot.val(),
ready: this._ready,
Expand All @@ -309,7 +312,7 @@ export class FirebaseAdapter implements IDatabaseAdapter {
* @param revision - Intial revision to start monitoring from.
*/
protected _monitorHistoryStartingAt(revision: number): void {
console.log(`[firepad] _monitorHistoryStartingAt`, {
console.log(`[firepad] ${this._questionId} _monitorHistoryStartingAt`, {
revision,
timestamp: Date.now(),
});
Expand Down Expand Up @@ -339,7 +342,9 @@ export class FirebaseAdapter implements IDatabaseAdapter {
return;
}

console.log(`[firepad] _handleInitialRevisions`, { timestamp: Date.now() });
console.log(`[firepad] ${this._questionId} _handleInitialRevisions`, {
timestamp: Date.now(),
});

Utils.validateFalse(this._ready, "Should not be called multiple times.");

Expand All @@ -348,7 +353,7 @@ export class FirebaseAdapter implements IDatabaseAdapter {
this._trigger(FirebaseAdapterEvent.InitialRevision);

console.log(
`[firepad] _handleInitialRevisions FirebaseAdapterEvent.InitialRevision`,
`[firepad] ${this._questionId} _handleInitialRevisions FirebaseAdapterEvent.InitialRevision`,
{ timestamp: Date.now() }
);
}
Expand All @@ -359,11 +364,14 @@ export class FirebaseAdapter implements IDatabaseAdapter {
let revisionId = this._revisionToId(this._revision);
const pending = this._pendingReceivedRevisions;

console.log(`[firepad] _handleInitialRevisions pending`, {
revisionId,
pending: Object.assign({}, pending),
timestamp: Date.now(),
});
console.log(
`[firepad] ${this._questionId} _handleInitialRevisions pending`,
{
revisionId,
pending: Object.assign({}, pending),
timestamp: Date.now(),
}
);

while (pending[revisionId] != null) {
const revision: IRevision | null = this._parseRevision(
Expand Down Expand Up @@ -391,7 +399,7 @@ export class FirebaseAdapter implements IDatabaseAdapter {
this._trigger(FirebaseAdapterEvent.Operation, this._document!);
this._ready = true;

console.log(`[firepad] _handleInitialRevisions ready`, {
console.log(`[firepad] ${this._questionId} _handleInitialRevisions ready`, {
ready: this._ready,
timestamp: Date.now(),
});
Expand All @@ -410,11 +418,14 @@ export class FirebaseAdapter implements IDatabaseAdapter {
let revisionId = this._revisionToId(this._revision);
let triggerRetry = false;

console.log(`[firepad] _handlePendingReceivedRevisions`, {
revisionId,
pending: Object.assign({}, pending),
timestamp: Date.now(),
});
console.log(
`[firepad] ${this._questionId} _handlePendingReceivedRevisions`,
{
revisionId,
pending: Object.assign({}, pending),
timestamp: Date.now(),
}
);

while (pending[revisionId] != null) {
this._revision++;
Expand Down Expand Up @@ -471,11 +482,14 @@ export class FirebaseAdapter implements IDatabaseAdapter {
revisionId = this._revisionToId(this._revision);
}

console.log(`[firepad] _handlePendingReceivedRevisions complete`, {
revision: this._revision,
pending: Object.assign({}, this._pendingReceivedRevisions),
timestamp: Date.now(),
});
console.log(
`[firepad] ${this._questionId} _handlePendingReceivedRevisions complete`,
{
revision: this._revision,
pending: Object.assign({}, this._pendingReceivedRevisions),
timestamp: Date.now(),
}
);

if (triggerRetry) {
this._sent = null;
Expand Down
4 changes: 3 additions & 1 deletion src/firepad-monaco.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,14 @@ export function fromMonacoWithFirebase(
options.userColor || Utils.colorFromUserId(userId.toString());
const userName: string = options.userName || userId.toString();
const defaultText: string = options.defaultText || editor.getValue();
const questionId: string = options.questionId || "";

let databaseAdapter: IDatabaseAdapter = new FirebaseAdapter(
databaseRef,
userId,
userColor,
userName
userName,
questionId
);

const editorAdapter = new MonacoAdapter(editor, false);
Expand Down
2 changes: 2 additions & 0 deletions src/firepad.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ export interface IFirepadConstructorOptions {
userName?: string;
/** Default content of Firepad (optional) */
defaultText?: string;
/** TODO: remove this, only for debugging purpose */
questionId?: string;
}

export interface IFirepad extends Utils.IDisposable {
Expand Down

0 comments on commit 9d481f5

Please sign in to comment.