soda-angular
Version:
Socrata SODA client for Angular
28 lines (27 loc) • 937 B
JavaScript
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;
}
}