|
|
@ -3,7 +3,7 @@ import validateHtml from './html/index.js';
|
|
|
|
import { getLocator } from 'locate-character';
|
|
|
|
import { getLocator } from 'locate-character';
|
|
|
|
import getCodeFrame from '../utils/getCodeFrame.js';
|
|
|
|
import getCodeFrame from '../utils/getCodeFrame.js';
|
|
|
|
|
|
|
|
|
|
|
|
export default function validate ( parsed, source, { onerror, onwarn, filename } ) {
|
|
|
|
export default function validate ( parsed, source, { onerror, onwarn, name, filename } ) {
|
|
|
|
const locator = getLocator( source );
|
|
|
|
const locator = getLocator( source );
|
|
|
|
|
|
|
|
|
|
|
|
const validator = {
|
|
|
|
const validator = {
|
|
|
@ -18,11 +18,7 @@ export default function validate ( parsed, source, { onerror, onwarn, filename }
|
|
|
|
|
|
|
|
|
|
|
|
error.toString = () => `${error.message} (${error.loc.line}:${error.loc.column})\n${error.frame}`;
|
|
|
|
error.toString = () => `${error.message} (${error.loc.line}:${error.loc.column})\n${error.frame}`;
|
|
|
|
|
|
|
|
|
|
|
|
if ( onerror ) {
|
|
|
|
|
|
|
|
onerror( error );
|
|
|
|
onerror( error );
|
|
|
|
} else {
|
|
|
|
|
|
|
|
throw error;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
warn: ( message, pos ) => {
|
|
|
|
warn: ( message, pos ) => {
|
|
|
@ -47,6 +43,11 @@ export default function validate ( parsed, source, { onerror, onwarn, filename }
|
|
|
|
namespace: null
|
|
|
|
namespace: null
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ( name && !/^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test( name ) ) {
|
|
|
|
|
|
|
|
const error = new Error( `options.name must be a valid identifier` );
|
|
|
|
|
|
|
|
onerror( error );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ( parsed.js ) {
|
|
|
|
if ( parsed.js ) {
|
|
|
|
validateJs( validator, parsed.js );
|
|
|
|
validateJs( validator, parsed.js );
|
|
|
|
}
|
|
|
|
}
|
|
|
|