mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-11 11:29:42 +02:00
#2219 Validating directives agains list of legal configuration keys
This commit is contained in:
@@ -1142,4 +1142,15 @@ top of the chart
|
|||||||
config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
||||||
config.git.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
config.git.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
||||||
|
|
||||||
|
const keyify = (obj, prefix = '') =>
|
||||||
|
Object.keys(obj).reduce((res, el) => {
|
||||||
|
if( Array.isArray(obj[el]) ) {
|
||||||
|
return res;
|
||||||
|
} else if( typeof obj[el] === 'object' && obj[el] !== null ) {
|
||||||
|
return [...res, prefix + el, ...keyify(obj[el],'')];
|
||||||
|
}
|
||||||
|
return [...res, prefix + el];
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
export const configKeys = keyify(config, '');
|
||||||
export default config;
|
export default config;
|
||||||
|
25
src/utils.js
25
src/utils.js
@@ -14,6 +14,7 @@ import {
|
|||||||
select,
|
select,
|
||||||
} from 'd3';
|
} from 'd3';
|
||||||
import common from './diagrams/common/common';
|
import common from './diagrams/common/common';
|
||||||
|
import { configKeys } from './defaultConfig';
|
||||||
import { log } from './logger';
|
import { log } from './logger';
|
||||||
|
|
||||||
// Effectively an enum of the supported curve types, accessible by name
|
// Effectively an enum of the supported curve types, accessible by name
|
||||||
@@ -73,18 +74,22 @@ export const detectInit = function (text, cnf) {
|
|||||||
let args = inits.map((init) => init.args);
|
let args = inits.map((init) => init.args);
|
||||||
Object.keys(args).forEach((argKey) => {
|
Object.keys(args).forEach((argKey) => {
|
||||||
Object.keys(args[argKey]).forEach((key) => {
|
Object.keys(args[argKey]).forEach((key) => {
|
||||||
if (key.indexOf('__') === 0) {
|
// if (key.indexOf('__') === 0) {
|
||||||
log.debug('sanitize deleting prototype option', args[key]);
|
// log.debug('sanitize deleting prototype option', args[key]);
|
||||||
delete args[argKey][key];
|
// delete args[argKey][key];
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (key.indexOf('proto') >= 0) {
|
// if (key.indexOf('proto') >= 0) {
|
||||||
log.debug('sanitize deleting prototype option', args[key]);
|
// log.debug('sanitize deleting prototype option', args[key]);
|
||||||
delete args[argKey][key];
|
// delete args[argKey][key];
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (key.indexOf('constr') >= 0) {
|
// if (key.indexOf('constr') >= 0) {
|
||||||
log.debug('sanitize deleting prototype option', args[key]);
|
// log.debug('sanitize deleting prototype option', args[key]);
|
||||||
|
// delete args[argKey][key];
|
||||||
|
// }
|
||||||
|
if(configKeys.indexOf(key)<0) {
|
||||||
|
log.debug('sanitize deleting option', args[argKey][key]);
|
||||||
delete args[argKey][key];
|
delete args[argKey][key];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user