Files
amayo/tmp_find_parse_error.js
Shni 408ac0e3fb feat(dashboard): enhance dashboard settings UI and add item management scripts
- Updated the dashboard settings partial to include a semi-transparent background for better visibility.
- Introduced a new script for validating the syntax of dashboard item scripts, ensuring better error handling and diagnostics.
- Added a comprehensive JavaScript file for managing dashboard items, including fetching, rendering, editing, and deleting items.
- Implemented various utility functions for handling alerts, rewards, and modal interactions within the item management interface.
- Created temporary scripts for debugging and parsing errors in item scripts, aiding in development and maintenance.
2025-10-15 15:53:50 -05:00

12 lines
884 B
JavaScript

const fs=require('fs'); const acorn=require('acorn');
const path='/home/shni/amayo/amayo/src/server/views/partials/dashboard/dashboard_items.ejs';
const s=fs.readFileSync(path,'utf8'); const m=s.match(/<script[^>]*>([\s\S]*?)<\/script>/i); if(!m){ console.error('NO_SCRIPT'); process.exit(2);} const src=m[1];
let low=0, high=src.length, bad=-1;
while(low<high){ const mid=Math.floor((low+high)/2); try{ acorn.parse(src.slice(0,mid),{ecmaVersion:2020}); low=mid+1; }catch(err){ bad=mid; high=mid; }}
console.log('first bad index approx', bad);
const start=Math.max(0,bad-120), end=Math.min(src.length,bad+120);
const snippet=src.slice(start,end);
console.log('snippet around bad:\n', snippet.replace(/\n/g,'\n'));
// also show line/col of bad via counting
const pre=src.slice(0,bad); const lines=pre.split('\n'); console.log('line',lines.length,'col',lines[lines.length-1].length+1);