Skip to content

Commit 049399c

Browse files
🩹 fix(JSR): JSR now include readme too, it left outside of include before.
1 parent 987f4b6 commit 049399c

5 files changed

Lines changed: 61 additions & 7 deletions

File tree

deno.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@murat/yelix",
33
"exports": "./mod.ts",
4-
"version": "0.1.22",
4+
"version": "0.1.23",
55
"license": "MIT",
66
"nodeModulesDir": "auto",
77
"tasks": {
@@ -30,7 +30,8 @@
3030
"src/validation/*.ts",
3131
"src/**/*.ts",
3232
"mod.ts",
33-
"version.ts"
33+
"version.ts",
34+
"readme.md"
3435
],
3536
"exclude": []
3637
}

deploy.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ echo ------------------------------
4545
echo.
4646
echo ------------------------------
4747
echo BUILD, it's time to build your project
48-
echo $ deno publish --dry-run
49-
deno publish --dry-run
48+
echo $ deno publish --dry-run --allow-dirty
49+
deno publish --dry-run --allow-dirty
5050
:build_question
5151
set /p build="BUILD - Can I continue? (y/n): "
5252
if "%build%"=="y" goto build_continue

jsr.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@murat/yelix",
3-
"version": "0.1.22",
3+
"version": "0.1.23",
44
"license": "MIT",
55
"exports": {
66
".": "./mod.ts",
@@ -20,7 +20,8 @@
2020
"src/validation/*.ts",
2121
"src/**/*.ts",
2222
"mod.ts",
23-
"version.ts"
23+
"version.ts",
24+
"readme.md"
2425
],
2526
"exclude": []
2627
}

src/validation/validation.ts

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// deno-lint-ignore-file no-explicit-any
2+
3+
type RuleResult = { isOk: boolean; newValue?: any };
4+
type Rule = (...params: any[]) => RuleResult;
5+
type FailedMessage = string | ((...params: any[]) => string);
6+
type ValidateResult = { isOk: boolean; value: any; errors: string[] };
7+
8+
type ValidationRule = {
9+
title: string;
10+
rule: Rule;
11+
failedMessage?: FailedMessage;
12+
};
13+
14+
class YelixValidation {
15+
protected rules: ValidationRule[] = [];
16+
getType: "get" | "getAll" = "get";
17+
18+
addRule(title: string, rule: Rule, failedMessage?: FailedMessage) {
19+
this.rules.push({
20+
title,
21+
rule,
22+
failedMessage,
23+
});
24+
}
25+
26+
validate(value: any): ValidateResult {
27+
const errors: string[] = [];
28+
let currentValue = value;
29+
30+
for (const rule of this.rules) {
31+
const result = rule.rule(currentValue);
32+
if (!result.isOk) {
33+
const message = typeof rule.failedMessage === "function"
34+
? rule.failedMessage(currentValue)
35+
: rule.failedMessage || `Validation failed for ${rule.title}`;
36+
errors.push(message);
37+
}
38+
if (result.newValue !== undefined) {
39+
currentValue = result.newValue;
40+
}
41+
}
42+
43+
return {
44+
isOk: errors.length === 0,
45+
value: currentValue,
46+
errors,
47+
};
48+
}
49+
}
50+
51+
export { YelixValidation };
52+
export type { FailedMessage, Rule, RuleResult, ValidateResult };

version.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
const version = '0.1.22';
1+
const version = '0.1.23';
22
export default version;

0 commit comments

Comments
 (0)