njsparser/js/parser/next_data.js
2026-02-15 00:12:22 +01:00

36 lines
907 B
JavaScript

/**
* Next data extraction from __NEXT_DATA__ script
*/
import { makeTree } from '../utils.js';
/**
* Extract and parse __NEXT_DATA__ script content
* @param {string} html - HTML string
* @param {DOMParser} DOMParser - DOMParser instance
* @returns {Object|null} Parsed JSON data or null
*/
export function getNextData(html, DOMParser) {
const doc = makeTree(html, DOMParser);
const script = doc.querySelector('script#__NEXT_DATA__');
if (!script || !script.textContent) {
return null;
}
try {
return JSON.parse(script.textContent.trim());
} catch (e) {
return null;
}
}
/**
* Check if HTML contains __NEXT_DATA__ script
* @param {string} html - HTML string
* @param {DOMParser} DOMParser - DOMParser instance
* @returns {boolean} True if __NEXT_DATA__ exists
*/
export function hasNextData(html, DOMParser) {
return getNextData(html, DOMParser) !== null;
}