refactor(editor): remove assertExists (#10615)

This commit is contained in:
Saul-Mirone
2025-03-05 00:13:08 +00:00
parent a6692f70aa
commit b8ecfbdae6
106 changed files with 863 additions and 517 deletions

View File

@@ -1,5 +1,4 @@
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
import { assertExists } from '@blocksuite/global/utils';
import { html, LitElement, type TemplateResult } from 'lit';
import { property } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';
@@ -14,12 +13,19 @@ export class VLine extends LitElement {
const rootElement = this.closest(
`[${INLINE_ROOT_ATTR}]`
) as InlineRootElement;
assertExists(rootElement, 'v-line must be inside a v-root');
if (!rootElement) {
throw new BlockSuiteError(
BlockSuiteError.ErrorCode.ValueNotExists,
'v-line must be inside a v-root'
);
}
const inlineEditor = rootElement.inlineEditor;
assertExists(
inlineEditor,
'v-line must be inside a v-root with inline-editor'
);
if (!inlineEditor) {
throw new BlockSuiteError(
BlockSuiteError.ErrorCode.ValueNotExists,
'v-line must be inside a v-root with inline-editor'
);
}
return inlineEditor;
}

View File

@@ -1,4 +1,4 @@
import { assertExists } from '@blocksuite/global/utils';
import { assertInstanceOf } from '@blocksuite/global/utils';
import { effect } from '@preact/signals-core';
import * as Y from 'yjs';
@@ -47,7 +47,7 @@ export class RangeService<TextAttributes extends BaseTextAttributes> {
return null;
}
const textNode = text.childNodes[1];
assertExists(textNode instanceof Text);
assertInstanceOf(textNode, Text);
range.setStart(textNode, 0);
range.setEnd(textNode, textNode.textContent?.length ?? 0);
const inlineRange = this.toInlineRange(range);
@@ -158,7 +158,10 @@ export class RangeService<TextAttributes extends BaseTextAttributes> {
// can not in the first line because if we apply the inline ranage manually the
// cursor will jump to the second line.
const container = range.commonAncestorContainer.parentElement;
assertExists(container);
if (!container) {
console.error('failed to get container');
return false;
}
const containerRect = container.getBoundingClientRect();
// There will be two rects if the cursor is at the edge of the line:
// aaaaaaaa| or aaaaaaaa
@@ -200,7 +203,10 @@ export class RangeService<TextAttributes extends BaseTextAttributes> {
// can not in the first line because if we apply the inline range manually the
// cursor will jump to the second line.
const container = range.commonAncestorContainer.parentElement;
assertExists(container);
if (!container) {
console.error('failed to get container');
return false;
}
const containerRect = container.getBoundingClientRect();
// There will be two rects if the cursor is at the edge of the line:
// aaaaaaaa| or aaaaaaaa

View File

@@ -1,5 +1,4 @@
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
import { assertExists } from '@blocksuite/global/utils';
import { html, render } from 'lit';
import { repeat } from 'lit/directives/repeat.js';
import * as Y from 'yjs';
@@ -36,7 +35,10 @@ export class RenderService<TextAttributes extends BaseTextAttributes> {
if (!lastStartRelativePosition || !lastEndRelativePosition) return;
const doc = this.editor.yText.doc;
assertExists(doc);
if (!doc) {
console.error('doc is not found when syncing yText');
return;
}
const absoluteStart = Y.createAbsolutePositionFromRelativePosition(
lastStartRelativePosition,
doc