fix build error
This commit is contained in:
parent
6899bfedeb
commit
f371bf7de6
|
@ -1,3 +1,21 @@
|
||||||
|
node-tar (6.1.13+~cs7.0.5-ok4) nile; urgency=medium
|
||||||
|
|
||||||
|
* fix build error.
|
||||||
|
|
||||||
|
-- liyang <liyang01@kylinos.cn> Tue, 18 Jun 2024 16:55:01 +0800
|
||||||
|
|
||||||
|
node-tar (6.1.13+~cs7.0.5-ok3) nile; urgency=medium
|
||||||
|
|
||||||
|
* fix build error.
|
||||||
|
|
||||||
|
-- liyang <liyang01@kylinos.cn> Tue, 18 Jun 2024 16:44:28 +0800
|
||||||
|
|
||||||
|
node-tar (6.1.13+~cs7.0.5-ok2) nile; urgency=medium
|
||||||
|
|
||||||
|
* fix build error
|
||||||
|
|
||||||
|
-- liyang <liyang01@kylinos.cn> Tue, 18 Jun 2024 16:30:17 +0800
|
||||||
|
|
||||||
node-tar (6.1.13+~cs7.0.5-ok1) nile; urgency=medium
|
node-tar (6.1.13+~cs7.0.5-ok1) nile; urgency=medium
|
||||||
|
|
||||||
* update upstream version
|
* update upstream version
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
From: kreiserlee <liyang01@kylinos.cn>
|
||||||
|
Date: Tue, 18 Jun 2024 16:55:36 +0800
|
||||||
|
Subject: fix build error
|
||||||
|
|
||||||
|
---
|
||||||
|
.gitignore | 29 -----------------------------
|
||||||
|
1 file changed, 29 deletions(-)
|
||||||
|
delete mode 100644 .gitignore
|
||||||
|
|
||||||
|
diff --git a/.gitignore b/.gitignore
|
||||||
|
deleted file mode 100644
|
||||||
|
index effd9b9..0000000
|
||||||
|
--- a/.gitignore
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,29 +0,0 @@
|
||||||
|
-# This file is automatically added by @npmcli/template-oss. Do not edit.
|
||||||
|
-
|
||||||
|
-# ignore everything in the root
|
||||||
|
-/*
|
||||||
|
-
|
||||||
|
-# keep these
|
||||||
|
-!**/.gitignore
|
||||||
|
-!/.commitlintrc.js
|
||||||
|
-!/.eslintrc.js
|
||||||
|
-!/.eslintrc.local.*
|
||||||
|
-!/.github/
|
||||||
|
-!/.gitignore
|
||||||
|
-!/.npmrc
|
||||||
|
-!/.release-please-manifest.json
|
||||||
|
-!/bin/
|
||||||
|
-!/CHANGELOG*
|
||||||
|
-!/CODE_OF_CONDUCT.md
|
||||||
|
-!/docs/
|
||||||
|
-!/index.js
|
||||||
|
-!/lib/
|
||||||
|
-!/LICENSE*
|
||||||
|
-!/map.js
|
||||||
|
-!/package.json
|
||||||
|
-!/README*
|
||||||
|
-!/release-please-config.json
|
||||||
|
-!/scripts/
|
||||||
|
-!/SECURITY.md
|
||||||
|
-!/tap-snapshots/
|
||||||
|
-!/test/
|
|
@ -1 +1,2 @@
|
||||||
0001-update-version.patch
|
0001-update-version.patch
|
||||||
|
0002-fix-build-error.patch
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
debian/tests/fixtures/excessively-deep.tar
|
|
@ -1,5 +1,5 @@
|
||||||
# Same author
|
# Same author
|
||||||
add-component-copyright fs-minipass *
|
add-component-copyright fs-minipass *
|
||||||
# test data
|
# test data
|
||||||
very-long-line-length-in-source-file test/dir-normalization.tar line *
|
very-long-line-length-in-source-file * [test/dir-normalization.tar:*]
|
||||||
very-long-line-length-in-source-file test/fixtures/*
|
very-long-line-length-in-source-file test/fixtures/*
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
### [1.2.1](https://www.github.com/humanwhocodes/object-schema/compare/v1.2.0...v1.2.1) (2021-11-02)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* Never return original object from individual config ([5463c5c](https://www.github.com/humanwhocodes/object-schema/commit/5463c5c6d2cb35a7b7948dffc37c899a41d1775f))
|
|
@ -0,0 +1,29 @@
|
||||||
|
BSD 3-Clause License
|
||||||
|
|
||||||
|
Copyright (c) 2019, Human Who Codes
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of the copyright holder nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"name": "@humanwhocodes/object-schema",
|
||||||
|
"version": "1.2.1",
|
||||||
|
"description": "An object schema merger/validator",
|
||||||
|
"main": "src/index.js",
|
||||||
|
"directories": {
|
||||||
|
"test": "tests"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "mocha tests/"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/humanwhocodes/object-schema.git"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"object",
|
||||||
|
"validation",
|
||||||
|
"schema",
|
||||||
|
"merge"
|
||||||
|
],
|
||||||
|
"author": "Nicholas C. Zakas",
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/humanwhocodes/object-schema/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/humanwhocodes/object-schema#readme",
|
||||||
|
"devDependencies": {
|
||||||
|
"chai": "^4.2.0",
|
||||||
|
"eslint": "^5.13.0",
|
||||||
|
"mocha": "^5.2.0"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
/**
|
||||||
|
* @filedescription Object Schema Package
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.ObjectSchema = require("./object-schema").ObjectSchema;
|
||||||
|
exports.MergeStrategy = require("./merge-strategy").MergeStrategy;
|
||||||
|
exports.ValidationStrategy = require("./validation-strategy").ValidationStrategy;
|
53
debian/tests/test_modules/@humanwhocodes/object-schema/src/merge-strategy.js
vendored
Normal file
53
debian/tests/test_modules/@humanwhocodes/object-schema/src/merge-strategy.js
vendored
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
/**
|
||||||
|
* @filedescription Merge Strategy
|
||||||
|
*/
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Class
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Container class for several different merge strategies.
|
||||||
|
*/
|
||||||
|
class MergeStrategy {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Merges two keys by overwriting the first with the second.
|
||||||
|
* @param {*} value1 The value from the first object key.
|
||||||
|
* @param {*} value2 The value from the second object key.
|
||||||
|
* @returns {*} The second value.
|
||||||
|
*/
|
||||||
|
static overwrite(value1, value2) {
|
||||||
|
return value2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Merges two keys by replacing the first with the second only if the
|
||||||
|
* second is defined.
|
||||||
|
* @param {*} value1 The value from the first object key.
|
||||||
|
* @param {*} value2 The value from the second object key.
|
||||||
|
* @returns {*} The second value if it is defined.
|
||||||
|
*/
|
||||||
|
static replace(value1, value2) {
|
||||||
|
if (typeof value2 !== "undefined") {
|
||||||
|
return value2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return value1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Merges two properties by assigning properties from the second to the first.
|
||||||
|
* @param {*} value1 The value from the first object key.
|
||||||
|
* @param {*} value2 The value from the second object key.
|
||||||
|
* @returns {*} A new object containing properties from both value1 and
|
||||||
|
* value2.
|
||||||
|
*/
|
||||||
|
static assign(value1, value2) {
|
||||||
|
return Object.assign({}, value1, value2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.MergeStrategy = MergeStrategy;
|
235
debian/tests/test_modules/@humanwhocodes/object-schema/src/object-schema.js
vendored
Normal file
235
debian/tests/test_modules/@humanwhocodes/object-schema/src/object-schema.js
vendored
Normal file
|
@ -0,0 +1,235 @@
|
||||||
|
/**
|
||||||
|
* @filedescription Object Schema
|
||||||
|
*/
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Requirements
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
const { MergeStrategy } = require("./merge-strategy");
|
||||||
|
const { ValidationStrategy } = require("./validation-strategy");
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Private
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
const strategies = Symbol("strategies");
|
||||||
|
const requiredKeys = Symbol("requiredKeys");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates a schema strategy.
|
||||||
|
* @param {string} name The name of the key this strategy is for.
|
||||||
|
* @param {Object} strategy The strategy for the object key.
|
||||||
|
* @param {boolean} [strategy.required=true] Whether the key is required.
|
||||||
|
* @param {string[]} [strategy.requires] Other keys that are required when
|
||||||
|
* this key is present.
|
||||||
|
* @param {Function} strategy.merge A method to call when merging two objects
|
||||||
|
* with the same key.
|
||||||
|
* @param {Function} strategy.validate A method to call when validating an
|
||||||
|
* object with the key.
|
||||||
|
* @returns {void}
|
||||||
|
* @throws {Error} When the strategy is missing a name.
|
||||||
|
* @throws {Error} When the strategy is missing a merge() method.
|
||||||
|
* @throws {Error} When the strategy is missing a validate() method.
|
||||||
|
*/
|
||||||
|
function validateDefinition(name, strategy) {
|
||||||
|
|
||||||
|
let hasSchema = false;
|
||||||
|
if (strategy.schema) {
|
||||||
|
if (typeof strategy.schema === "object") {
|
||||||
|
hasSchema = true;
|
||||||
|
} else {
|
||||||
|
throw new TypeError("Schema must be an object.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof strategy.merge === "string") {
|
||||||
|
if (!(strategy.merge in MergeStrategy)) {
|
||||||
|
throw new TypeError(`Definition for key "${name}" missing valid merge strategy.`);
|
||||||
|
}
|
||||||
|
} else if (!hasSchema && typeof strategy.merge !== "function") {
|
||||||
|
throw new TypeError(`Definition for key "${name}" must have a merge property.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof strategy.validate === "string") {
|
||||||
|
if (!(strategy.validate in ValidationStrategy)) {
|
||||||
|
throw new TypeError(`Definition for key "${name}" missing valid validation strategy.`);
|
||||||
|
}
|
||||||
|
} else if (!hasSchema && typeof strategy.validate !== "function") {
|
||||||
|
throw new TypeError(`Definition for key "${name}" must have a validate() method.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Class
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an object validation/merging schema.
|
||||||
|
*/
|
||||||
|
class ObjectSchema {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new instance.
|
||||||
|
*/
|
||||||
|
constructor(definitions) {
|
||||||
|
|
||||||
|
if (!definitions) {
|
||||||
|
throw new Error("Schema definitions missing.");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Track all strategies in the schema by key.
|
||||||
|
* @type {Map}
|
||||||
|
* @property strategies
|
||||||
|
*/
|
||||||
|
this[strategies] = new Map();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Separately track any keys that are required for faster validation.
|
||||||
|
* @type {Map}
|
||||||
|
* @property requiredKeys
|
||||||
|
*/
|
||||||
|
this[requiredKeys] = new Map();
|
||||||
|
|
||||||
|
// add in all strategies
|
||||||
|
for (const key of Object.keys(definitions)) {
|
||||||
|
validateDefinition(key, definitions[key]);
|
||||||
|
|
||||||
|
// normalize merge and validate methods if subschema is present
|
||||||
|
if (typeof definitions[key].schema === "object") {
|
||||||
|
const schema = new ObjectSchema(definitions[key].schema);
|
||||||
|
definitions[key] = {
|
||||||
|
...definitions[key],
|
||||||
|
merge(first = {}, second = {}) {
|
||||||
|
return schema.merge(first, second);
|
||||||
|
},
|
||||||
|
validate(value) {
|
||||||
|
ValidationStrategy.object(value);
|
||||||
|
schema.validate(value);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// normalize the merge method in case there's a string
|
||||||
|
if (typeof definitions[key].merge === "string") {
|
||||||
|
definitions[key] = {
|
||||||
|
...definitions[key],
|
||||||
|
merge: MergeStrategy[definitions[key].merge]
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// normalize the validate method in case there's a string
|
||||||
|
if (typeof definitions[key].validate === "string") {
|
||||||
|
definitions[key] = {
|
||||||
|
...definitions[key],
|
||||||
|
validate: ValidationStrategy[definitions[key].validate]
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
this[strategies].set(key, definitions[key]);
|
||||||
|
|
||||||
|
if (definitions[key].required) {
|
||||||
|
this[requiredKeys].set(key, definitions[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if a strategy has been registered for the given object key.
|
||||||
|
* @param {string} key The object key to find a strategy for.
|
||||||
|
* @returns {boolean} True if the key has a strategy registered, false if not.
|
||||||
|
*/
|
||||||
|
hasKey(key) {
|
||||||
|
return this[strategies].has(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Merges objects together to create a new object comprised of the keys
|
||||||
|
* of the all objects. Keys are merged based on the each key's merge
|
||||||
|
* strategy.
|
||||||
|
* @param {...Object} objects The objects to merge.
|
||||||
|
* @returns {Object} A new object with a mix of all objects' keys.
|
||||||
|
* @throws {Error} If any object is invalid.
|
||||||
|
*/
|
||||||
|
merge(...objects) {
|
||||||
|
|
||||||
|
// double check arguments
|
||||||
|
if (objects.length < 2) {
|
||||||
|
throw new Error("merge() requires at least two arguments.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (objects.some(object => (object == null || typeof object !== "object"))) {
|
||||||
|
throw new Error("All arguments must be objects.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return objects.reduce((result, object) => {
|
||||||
|
|
||||||
|
this.validate(object);
|
||||||
|
|
||||||
|
for (const [key, strategy] of this[strategies]) {
|
||||||
|
try {
|
||||||
|
if (key in result || key in object) {
|
||||||
|
const value = strategy.merge.call(this, result[key], object[key]);
|
||||||
|
if (value !== undefined) {
|
||||||
|
result[key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (ex) {
|
||||||
|
ex.message = `Key "${key}": ` + ex.message;
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates an object's keys based on the validate strategy for each key.
|
||||||
|
* @param {Object} object The object to validate.
|
||||||
|
* @returns {void}
|
||||||
|
* @throws {Error} When the object is invalid.
|
||||||
|
*/
|
||||||
|
validate(object) {
|
||||||
|
|
||||||
|
// check existing keys first
|
||||||
|
for (const key of Object.keys(object)) {
|
||||||
|
|
||||||
|
// check to see if the key is defined
|
||||||
|
if (!this.hasKey(key)) {
|
||||||
|
throw new Error(`Unexpected key "${key}" found.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// validate existing keys
|
||||||
|
const strategy = this[strategies].get(key);
|
||||||
|
|
||||||
|
// first check to see if any other keys are required
|
||||||
|
if (Array.isArray(strategy.requires)) {
|
||||||
|
if (!strategy.requires.every(otherKey => otherKey in object)) {
|
||||||
|
throw new Error(`Key "${key}" requires keys "${strategy.requires.join("\", \"")}".`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// now apply remaining validation strategy
|
||||||
|
try {
|
||||||
|
strategy.validate.call(strategy, object[key]);
|
||||||
|
} catch (ex) {
|
||||||
|
ex.message = `Key "${key}": ` + ex.message;
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure required keys aren't missing
|
||||||
|
for (const [key] of this[requiredKeys]) {
|
||||||
|
if (!(key in object)) {
|
||||||
|
throw new Error(`Missing required key "${key}".`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.ObjectSchema = ObjectSchema;
|
102
debian/tests/test_modules/@humanwhocodes/object-schema/src/validation-strategy.js
vendored
Normal file
102
debian/tests/test_modules/@humanwhocodes/object-schema/src/validation-strategy.js
vendored
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
/**
|
||||||
|
* @filedescription Validation Strategy
|
||||||
|
*/
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Class
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Container class for several different validation strategies.
|
||||||
|
*/
|
||||||
|
class ValidationStrategy {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates that a value is an array.
|
||||||
|
* @param {*} value The value to validate.
|
||||||
|
* @returns {void}
|
||||||
|
* @throws {TypeError} If the value is invalid.
|
||||||
|
*/
|
||||||
|
static array(value) {
|
||||||
|
if (!Array.isArray(value)) {
|
||||||
|
throw new TypeError("Expected an array.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates that a value is a boolean.
|
||||||
|
* @param {*} value The value to validate.
|
||||||
|
* @returns {void}
|
||||||
|
* @throws {TypeError} If the value is invalid.
|
||||||
|
*/
|
||||||
|
static boolean(value) {
|
||||||
|
if (typeof value !== "boolean") {
|
||||||
|
throw new TypeError("Expected a Boolean.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates that a value is a number.
|
||||||
|
* @param {*} value The value to validate.
|
||||||
|
* @returns {void}
|
||||||
|
* @throws {TypeError} If the value is invalid.
|
||||||
|
*/
|
||||||
|
static number(value) {
|
||||||
|
if (typeof value !== "number") {
|
||||||
|
throw new TypeError("Expected a number.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates that a value is a object.
|
||||||
|
* @param {*} value The value to validate.
|
||||||
|
* @returns {void}
|
||||||
|
* @throws {TypeError} If the value is invalid.
|
||||||
|
*/
|
||||||
|
static object(value) {
|
||||||
|
if (!value || typeof value !== "object") {
|
||||||
|
throw new TypeError("Expected an object.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates that a value is a object or null.
|
||||||
|
* @param {*} value The value to validate.
|
||||||
|
* @returns {void}
|
||||||
|
* @throws {TypeError} If the value is invalid.
|
||||||
|
*/
|
||||||
|
static "object?"(value) {
|
||||||
|
if (typeof value !== "object") {
|
||||||
|
throw new TypeError("Expected an object or null.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates that a value is a string.
|
||||||
|
* @param {*} value The value to validate.
|
||||||
|
* @returns {void}
|
||||||
|
* @throws {TypeError} If the value is invalid.
|
||||||
|
*/
|
||||||
|
static string(value) {
|
||||||
|
if (typeof value !== "string") {
|
||||||
|
throw new TypeError("Expected a string.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates that a value is a non-empty string.
|
||||||
|
* @param {*} value The value to validate.
|
||||||
|
* @returns {void}
|
||||||
|
* @throws {TypeError} If the value is invalid.
|
||||||
|
*/
|
||||||
|
static "string!"(value) {
|
||||||
|
if (typeof value !== "string" || value.length === 0) {
|
||||||
|
throw new TypeError("Expected a non-empty string.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.ValidationStrategy = ValidationStrategy;
|
Loading…
Reference in New Issue