easy-template-x-angular-expressions
Version:
Angular expressions support for easy-template-x
23 lines (16 loc) • 647 B
text/typescript
import { isNumber } from './utils';
export type PathFilter = (part: string | number) => boolean;
const simpleToken = "[a-zA-z_]\\w*";
const bracketToken = `\\[("[^"]+"|'[^']+'|\\d+)\\]`;
const token = `((${simpleToken})|(${bracketToken}))`;
const defaultFilterRegex = new RegExp(`^\\s*${token}(\\.${simpleToken}|${bracketToken})*\\s*$`);
/**
* The default path filters returns true for js object paths and false for other
* js expressions.
*/
export const defaultPathFilter : PathFilter = (part: string | number) => {
if (isNumber(part)) {
return true;
}
return defaultFilterRegex.test(part);
};