@imhonglu/pattern-builder
Version:
Type-safe regular expression pattern builder for TypeScript with fluent API
30 lines • 1.3 kB
JavaScript
import { PatternBuilder } from "../pattern-builder/pattern-builder.js";
import { extractPatternSource } from "../utils/extract-pattern-source.js";
/**
* Creates a pattern builder for the one of operator.
*
* @param patterns - The patterns to create the one of operator from.
* @returns The pattern builder.
*
* @example only string
* ```ts
* oneOf("a", "b", "c");
* // => /a|b|c/
* ```
*
* @example pre-defined pattern with pattern
* ```ts
* oneOf(alpha, digit);
* // => /[a-zA-Z]|[\d]/
* ```
*
* @example pre-defined pattern with string
* ```ts
* oneOf(alpha, "0");
* // => /[a-zA-Z]|0/
* ```
*/
export function oneOf(...patterns) {
return new PatternBuilder(patterns.map(extractPatternSource).join("|"));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLW9mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhdHRlcm4tZnVuY3Rpb25zL29uZS1vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxHQUFHLFFBQXdCO0lBQy9DLE9BQU8sSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFFLENBQUMifQ==