add strict null check and fix codes
This commit is contained in:
1
index.d.ts
vendored
1
index.d.ts
vendored
@@ -1,4 +1,5 @@
|
||||
import { serializedNodeWithId } from './src/types';
|
||||
export * from './src/types';
|
||||
|
||||
export function snapshot(n: Document): serializedNodeWithId | null;
|
||||
export function rebuild(n: serializedNodeWithId): Node | null;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import snapshot from './snapshot';
|
||||
import rebuild from './rebuild';
|
||||
export * from './types';
|
||||
|
||||
export { snapshot, rebuild };
|
||||
|
||||
@@ -62,7 +62,11 @@ function rebuild(n: serializedNodeWithId): Node | null {
|
||||
if (n.type === NodeType.Document || n.type === NodeType.Element) {
|
||||
for (const childN of n.childNodes) {
|
||||
const childNode = rebuild(childN);
|
||||
root.appendChild(childNode);
|
||||
if (!childNode) {
|
||||
console.warn('Failed to rebuild', childN);
|
||||
} else {
|
||||
root.appendChild(childNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
return root;
|
||||
|
||||
@@ -98,7 +98,7 @@ function serializeNode(n: Node, doc: Document): serializedNode | false {
|
||||
}
|
||||
return {
|
||||
type: NodeType.Text,
|
||||
textContent,
|
||||
textContent: textContent || '',
|
||||
};
|
||||
case n.CDATA_SECTION_NODE:
|
||||
return {
|
||||
@@ -108,7 +108,7 @@ function serializeNode(n: Node, doc: Document): serializedNode | false {
|
||||
case n.COMMENT_NODE:
|
||||
return {
|
||||
type: NodeType.Comment,
|
||||
textContent: (n as Comment).textContent,
|
||||
textContent: (n as Comment).textContent || '',
|
||||
};
|
||||
default:
|
||||
return false;
|
||||
@@ -130,7 +130,10 @@ function _snapshot(n: Node, doc: Document): serializedNodeWithId | null {
|
||||
serializedNode.type === NodeType.Element
|
||||
) {
|
||||
for (const childN of Array.from(n.childNodes)) {
|
||||
serializedNode.childNodes.push(_snapshot(childN, doc));
|
||||
const serializedChildNode = _snapshot(childN, doc);
|
||||
if (serializedChildNode) {
|
||||
serializedNode.childNodes.push(serializedChildNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
return serializedNode;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"noImplicitAny": true,
|
||||
"strictNullChecks": true,
|
||||
"removeComments": true,
|
||||
"preserveConstEnums": true,
|
||||
"sourceMap": true,
|
||||
|
||||
Reference in New Issue
Block a user