UNPKG

soda-angular

Version:
28 lines (27 loc) 937 B
export class Column { constructor(name) { const validationRegEx = new RegExp(/^\w+$/); if (!name) { throw new Error("Column name must be provided"); } if (!validationRegEx.test(name)) { throw new Error("Column name must contain only alphanumeric characters or underscores"); } this.Name = name; } static of(param) { const varExtractor = new RegExp(/\w* => (.*)/); const matches = varExtractor.exec(param.toString()); if (matches === null) { throw new Error(`Cannot find return type for param (value: ${param})`); } const returnValue = matches[1]; const splits = returnValue.split("."); splits.shift(); const columnName = splits.join().replace(",", "/"); return new Column(columnName); } toString() { return this.Name; } }