Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
default import
✓ import sqlSimulator from 'sql-simulator'
✗ const sqlSimulator = require('sql-simulator')
Package is ESM-only; CommonJS require will fail.
parse
✓ import { parse } from 'sql-simulator'
✗ const { parse } = require('sql-simulator')
Named export available for direct parsing.
default with destructuring
✓ import sql from 'sql-simulator'; const ast = sql.parse('...')
✗ import { default as sql } from 'sql-simulator'
Default export is an object with methods; destructuring the default is unnecessary.
Shows parsing CREATE TABLE, CREATE TYPE, ALTER TABLE, and DROP TABLE queries into an AST.
import sqlSimulator from 'sql-simulator';
const sql = `
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE
);
CREATE TYPE mood AS ENUM ('happy', 'sad', 'neutral');
ALTER TABLE users ADD COLUMN age INTEGER;
DROP TABLE old_logs;
`;
try {
const ast = sqlSimulator.parse(sql);
console.log(JSON.stringify(ast, null, 2));
} catch (err) {
console.error('Parse error:', err.message);
}
Debug
Known issues
breakingAs of v0.50.0, the package switched to ESM-only. CommonJS require() will throw.fixUse import syntax or upgrade to Node >=16 with { "type": "module" }. affects: >=0.50.0
deprecatedThe function 'simulate' was renamed to 'parse' in v0.30.0. 'simulate' still works but logs a deprecation warning.fixUse 'parse' instead of 'simulate'.
affects: >=0.30.0 <0.35.0
gotchaCREATE INDEX statements are not supported and will cause a parse error.fixStrip or skip CREATE INDEX statements before parsing.
affects: all
gotchaOnly enumerated types (ENUM) are supported in CREATE TYPE; composite types will fail.fixEnsure only ENUM types are passed.
affects: all
breakingv0.40.0 changed the AST structure: 'tables' array now uses 'columns' instead of 'fields'.fixUpdate code accessing 'fields' to use 'columns'.
affects: >=0.40.0
Errors
Common errors & fixes
ERR_REQUIRE_ESM: require() of ES Module /path/to/node_modules/sql-simulator/dist/index.js from /path/to/app.js not supported.
Package is ESM-only; CommonJS require() fails.
fixUse import syntax or set type:module in package.json.
TypeError: sqlSimulator.parse is not a function
Importing default incorrectly (e.g., import { parse } from 'sql-simulator' when using default).
fixUse import sqlSimulator from 'sql-simulator'; then sqlSimulator.parse(...).
Unexpected token: 'INDEX'
CREATE INDEX is not supported.
fixRemove or skip CREATE INDEX statements.
Unsupported type: composite
Only ENUM types are supported for CREATE TYPE.
fixUse ENUM type or skip composite type definitions.
Audit
Dependencies
moorequiredTokenizer for SQL lexing
nearleyrequiredParser generator for grammar