@sudoo/pattern
Version:
Pattern Structure for TypeScript
190 lines (189 loc) • 5.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAnyPattern = exports.createEmptyPattern = exports.createExactPattern = exports.createAndPattern = exports.createOrPattern = exports.createCustomPattern = exports.createTuplePattern = exports.createListPattern = exports.createRecordPattern = exports.createStrictMapPattern = exports.createMapPattern = exports.createFunctionPattern = exports.createStringDatePattern = exports.createDatePattern = exports.createFalsePattern = exports.createTruePattern = exports.createBooleanPattern = exports.createBigIntPattern = exports.createFloatPattern = exports.createFractionPattern = exports.createIntegerPattern = exports.createNumberPattern = exports.createStringPattern = void 0;
const createStringPattern = (options) => {
return {
type: 'string',
...options,
};
};
exports.createStringPattern = createStringPattern;
const createNumberPattern = (options) => {
return {
type: 'number',
...options,
};
};
exports.createNumberPattern = createNumberPattern;
const createIntegerPattern = (options) => {
return {
type: 'number',
integer: true,
fraction: false,
float: false,
...options,
};
};
exports.createIntegerPattern = createIntegerPattern;
const createFractionPattern = (options) => {
return {
type: 'number',
integer: false,
fraction: true,
float: false,
...options,
};
};
exports.createFractionPattern = createFractionPattern;
const createFloatPattern = (options) => {
return {
type: 'number',
integer: false,
fraction: false,
float: true,
...options,
};
};
exports.createFloatPattern = createFloatPattern;
const createBigIntPattern = (options) => {
return {
type: 'bigint',
...options,
};
};
exports.createBigIntPattern = createBigIntPattern;
const createBooleanPattern = (options) => {
return {
type: 'boolean',
...options,
};
};
exports.createBooleanPattern = createBooleanPattern;
const createTruePattern = (options) => {
return {
type: 'boolean',
ensureTrue: true,
ensureFalse: false,
...options,
};
};
exports.createTruePattern = createTruePattern;
const createFalsePattern = (options) => {
return {
type: 'boolean',
ensureTrue: false,
ensureFalse: true,
...options,
};
};
exports.createFalsePattern = createFalsePattern;
const createDatePattern = (options) => {
return {
type: 'date',
...options,
};
};
exports.createDatePattern = createDatePattern;
const createStringDatePattern = (options) => {
return {
type: 'date',
allowString: true,
...options,
};
};
exports.createStringDatePattern = createStringDatePattern;
const createFunctionPattern = (options) => {
return {
type: 'function',
...options,
};
};
exports.createFunctionPattern = createFunctionPattern;
const createMapPattern = (record, options) => {
return {
type: 'map',
map: record,
...options,
};
};
exports.createMapPattern = createMapPattern;
const createStrictMapPattern = (record, options) => {
return {
type: 'map',
map: record,
strict: true,
...options,
};
};
exports.createStrictMapPattern = createStrictMapPattern;
const createRecordPattern = (key, value, options) => {
return {
type: 'record',
key,
value,
...options,
};
};
exports.createRecordPattern = createRecordPattern;
const createListPattern = (element, options) => {
return {
type: 'list',
element,
...options,
};
};
exports.createListPattern = createListPattern;
const createTuplePattern = (list, options) => {
return {
type: 'tuple',
list,
...options,
};
};
exports.createTuplePattern = createTuplePattern;
const createCustomPattern = (validate, options) => {
return {
type: 'custom',
validate,
...options,
};
};
exports.createCustomPattern = createCustomPattern;
const createOrPattern = (elements, options) => {
return {
type: 'or',
options: elements,
...options,
};
};
exports.createOrPattern = createOrPattern;
const createAndPattern = (elements, options) => {
return {
type: 'and',
requirements: elements,
...options,
};
};
exports.createAndPattern = createAndPattern;
const createExactPattern = (value, options) => {
return {
type: 'exact',
value,
...options,
};
};
exports.createExactPattern = createExactPattern;
const createEmptyPattern = (options) => {
return {
type: 'empty',
...options,
};
};
exports.createEmptyPattern = createEmptyPattern;
const createAnyPattern = (options) => {
return {
type: 'any',
...options,
};
};
exports.createAnyPattern = createAnyPattern;