@pinesw/rttg 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.js +55 -30
  2. package/index.js.map +1 -1
  3. package/package.json +1 -2
package/index.js CHANGED
@@ -1,12 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.of = of;
4
+ exports.instanceOf = instanceOf;
5
+ exports.number = number;
6
+ exports.string = string;
7
+ exports.boolean = boolean;
8
+ exports.object = object;
9
+ exports.array = array;
10
+ exports.tuple = tuple;
11
+ exports.union = union;
12
+ exports.intersection = intersection;
13
+ exports.assertType = assertType;
1
14
  function fromOptions(options) {
2
15
  return {
3
16
  validate: options.validationFn,
4
- assertType(value) {
17
+ assertType: function (value) {
5
18
  if (!this.validate(value)) {
6
19
  throw new Error(options.errorMessage);
7
20
  }
8
21
  },
9
- as(value) {
22
+ as: function (value) {
10
23
  if (!this.validate(value)) {
11
24
  throw new Error(options.errorMessage);
12
25
  }
@@ -17,27 +30,27 @@ function fromOptions(options) {
17
30
  /**
18
31
  * Creates a schema that validates if a value is exactly equal to the specified value.
19
32
  */
20
- export function of(value) {
33
+ function of(value) {
21
34
  return fromOptions({
22
- validationFn: (v) => v === value,
23
- errorMessage: `Expected ${value}`,
35
+ validationFn: function (v) { return v === value; },
36
+ errorMessage: "Expected ".concat(value),
24
37
  });
25
38
  }
26
39
  /**
27
40
  * Creates a schema that validates if a value is an instance of the specified class or constructor function.
28
41
  */
29
- export function instanceOf(constructor) {
42
+ function instanceOf(constructor) {
30
43
  return fromOptions({
31
- validationFn: (value) => value instanceof constructor,
32
- errorMessage: `Expected instance of ${constructor.name}`,
44
+ validationFn: function (value) { return value instanceof constructor; },
45
+ errorMessage: "Expected instance of ".concat(constructor.name),
33
46
  });
34
47
  }
35
48
  /**
36
49
  * Creates a schema that validates if a value is a number.
37
50
  */
38
- export function number() {
51
+ function number() {
39
52
  return fromOptions({
40
- validationFn(value) {
53
+ validationFn: function (value) {
41
54
  return typeof value === "number";
42
55
  },
43
56
  errorMessage: "Expected number",
@@ -46,9 +59,9 @@ export function number() {
46
59
  /**
47
60
  * Creates a schema that validates if a value is a string.
48
61
  */
49
- export function string() {
62
+ function string() {
50
63
  return fromOptions({
51
- validationFn(value) {
64
+ validationFn: function (value) {
52
65
  return typeof value === "string";
53
66
  },
54
67
  errorMessage: "Expected string",
@@ -57,9 +70,9 @@ export function string() {
57
70
  /**
58
71
  * Creates a schema that validates if a value is a boolean.
59
72
  */
60
- export function boolean() {
73
+ function boolean() {
61
74
  return fromOptions({
62
- validationFn(value) {
75
+ validationFn: function (value) {
63
76
  return typeof value === "boolean";
64
77
  },
65
78
  errorMessage: "Expected boolean",
@@ -69,13 +82,13 @@ export function boolean() {
69
82
  * Creates a schema that validates if a value is an object matching the keys and schemas defined in the input.
70
83
  * Extra keys in the object that are not defined in the schema are ignored.
71
84
  */
72
- export function object(schema) {
85
+ function object(schema) {
73
86
  return fromOptions({
74
- validationFn(value) {
87
+ validationFn: function (value) {
75
88
  if (typeof value !== "object" || value === null) {
76
89
  return false;
77
90
  }
78
- for (const key in schema) {
91
+ for (var key in schema) {
79
92
  if (!(key in value) || !schema[key].validate(value[key])) {
80
93
  return false;
81
94
  }
@@ -88,13 +101,13 @@ export function object(schema) {
88
101
  /**
89
102
  * Creates a schema that validates if a value is an array where each element conforms to the specified schema.
90
103
  */
91
- export function array(schema) {
104
+ function array(schema) {
92
105
  return fromOptions({
93
- validationFn(value) {
106
+ validationFn: function (value) {
94
107
  if (!Array.isArray(value)) {
95
108
  return false;
96
109
  }
97
- return value.every((item) => schema.validate(item));
110
+ return value.every(function (item) { return schema.validate(item); });
98
111
  },
99
112
  errorMessage: "Array validation failed",
100
113
  });
@@ -102,16 +115,20 @@ export function array(schema) {
102
115
  /**
103
116
  * Creates a schema that validates if a value is a tuple where each element conforms to the corresponding schema.
104
117
  */
105
- export function tuple(...schemas) {
118
+ function tuple() {
119
+ var schemas = [];
120
+ for (var _i = 0; _i < arguments.length; _i++) {
121
+ schemas[_i] = arguments[_i];
122
+ }
106
123
  return fromOptions({
107
- validationFn(value) {
124
+ validationFn: function (value) {
108
125
  if (!Array.isArray(value)) {
109
126
  return false;
110
127
  }
111
128
  if (value.length !== schemas.length) {
112
129
  return false;
113
130
  }
114
- return value.every((item, index) => schemas[index]?.validate(item));
131
+ return value.every(function (item, index) { var _a; return (_a = schemas[index]) === null || _a === void 0 ? void 0 : _a.validate(item); });
115
132
  },
116
133
  errorMessage: "Tuple validation failed",
117
134
  });
@@ -119,10 +136,14 @@ export function tuple(...schemas) {
119
136
  /**
120
137
  * Creates a schema that validates if a value conforms to at least one of the provided schemas.
121
138
  */
122
- export function union(...schemas) {
139
+ function union() {
140
+ var schemas = [];
141
+ for (var _i = 0; _i < arguments.length; _i++) {
142
+ schemas[_i] = arguments[_i];
143
+ }
123
144
  return fromOptions({
124
- validationFn(value) {
125
- return schemas.some((schema) => schema.validate(value));
145
+ validationFn: function (value) {
146
+ return schemas.some(function (schema) { return schema.validate(value); });
126
147
  },
127
148
  errorMessage: "Union validation failed",
128
149
  });
@@ -130,10 +151,14 @@ export function union(...schemas) {
130
151
  /**
131
152
  * Creates a schema that validates if a value conforms to all of the provided schemas.
132
153
  */
133
- export function intersection(...schemas) {
154
+ function intersection() {
155
+ var schemas = [];
156
+ for (var _i = 0; _i < arguments.length; _i++) {
157
+ schemas[_i] = arguments[_i];
158
+ }
134
159
  return fromOptions({
135
- validationFn(value) {
136
- return schemas.every((schema) => schema.validate(value));
160
+ validationFn: function (value) {
161
+ return schemas.every(function (schema) { return schema.validate(value); });
137
162
  },
138
163
  errorMessage: "Intersection validation failed",
139
164
  });
@@ -142,7 +167,7 @@ export function intersection(...schemas) {
142
167
  * Asserts that a value conforms to the specified schema.
143
168
  * Throws an error if the value does not match the schema.
144
169
  */
145
- export function assertType(value, schema) {
170
+ function assertType(value, schema) {
146
171
  if (!schema.validate(value)) {
147
172
  throw new Error("Type assertion failed");
148
173
  }
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@pinesw/rttg",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Run-Time Type Guards",
5
- "type": "module",
6
5
  "main": "index.js",
7
6
  "types": "index.d.ts",
8
7
  "scripts": {