{"_id":"@63pokupki/components","_rev":"3-a3e238b98448fae0861a67188db7cb74","name":"@63pokupki/components","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@63pokupki/components","version":"0.0.1","author":{"name":"63pokupki"},"license":"BSD-3-Clause","_id":"@63pokupki/components@0.0.1","homepage":"","bugs":{"url":"https://gitlab.63pokupki.ru/npmlib/components.git/issues"},"dist":{"shasum":"e320e7b2c38f057c6d3e18079d79e42442b1a41a","tarball":"https://registry.npmjs.org/@63pokupki/components/-/components-0.0.1.tgz","fileCount":39,"integrity":"sha512-pVLb1Ltpcz1iPWXEFPBnOAYZaxIaXoTi7VV0ZU3Zzgoq7s5mdb43dolAVlEClnbo0fXGh2UcGa7w5Mrf7G+PBA==","signatures":[{"sig":"MEQCICBPYOttcBBz1B+nA6+DUPAtNqh5pRcvnR92s4NBABRFAiB8ovQPV6DQ+y6gqNZPVmbRvwBiHFXrDUOVzHQKl2dF0g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":176059},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"aed8e9348138052fb9bfbe037eaeabd6d188decf","scripts":{"test":"ts-mocha","build":"tsc","release":"npm run build:dev && npm run build:prod"},"_npmUser":{"name":"mobidikt","email":"ghost3299@yandex.ru"},"repository":{"url":"https://gitlab.63pokupki.ru/npmlib/components.git","type":"git"},"_npmVersion":"10.4.0","description":"node typescript base class","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","ts-mocha":"^6.0.0","typescript":"^3.5.3","@types/chai":"^4.2.3","@types/node":"^12.7.2","@types/mocha":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/components_0.0.1_1719812497129_0.14365046216826416","host":"s3://npm-registry-packages"}}},"time":{"created":"2024-07-01T05:41:37.056Z","modified":"2026-05-08T07:49:43.556Z","0.0.1":"2024-07-01T05:41:37.293Z"},"bugs":{"url":"https://gitlab.63pokupki.ru/npmlib/components.git/issues"},"author":{"name":"63pokupki"},"license":"BSD-3-Clause","repository":{"url":"https://gitlab.63pokupki.ru/npmlib/components.git","type":"git"},"description":"node typescript base class","maintainers":[{"email":"ghost3299@yandex.ru","name":"mobidikt"},{"email":"angelrinascita@gmail.com","name":"angelrinascita"},{"email":"volkcsspro@gmail.com","name":"movie_play"},{"email":"2brontozabra@gmail.com","name":"aa_alex"}],"readme":"\n\n# components\nnode typescript base class\n\nБазовые классы и компонеты для forntend и backend\n\n## ErrorSys\n\n```ts\nconst errorSys = new ErrorSys(); // Режим прода, для режима разработки указать ErrorSys('dev')\ntry{\n    throw errorSys.throwAccess('Сообщение об ошибке доступа');\n} catch(e){\n    errorSys.errorEx(e, 'throwAccess-Success', 'Проврка ошибки доступа успешно выполнена')\n}\n\ntry{\n    throw errorSys.throwValidRoute('Сообщение об ошибке валидации данных роутинга');\n} catch(e){\n    errorSys.errorEx(e, 'throwValidRoute-Success', 'Проврка ошибки валидации роутинга успешно выполнена')\n}\n\ntry{\n    throw errorSys.throwLogic('Сообщение об ошибке логики');\n} catch(e){\n    errorSys.errorEx(e, 'throwLogic-Success', 'Проврка ошибки логики успешно выполнена')\n}\n\ntry{\n    throw errorSys.throwValidDB('Сообщение об ошибке валидации данных при записи в БД');\n} catch(e){\n    errorSys.errorEx(e, 'throwValidDB-Success', 'Проврка ошибки валидации при записи в БД успешно выполнена')\n}\n\ntry{\n    throw errorSys.throwValid('Сообщение об ошибке валидации ОБЩЕЙ');\n} catch(e){\n    errorSys.errorEx(e, 'throwValid-Success', 'Проврка ошибки валидации успешно выполнена')\n}\n\nerrorSys.errorEx(new Error(), 'error', 'Генерация обычной ошибки с трейсом')\n\nerrorSys.error('simple_error', 'обычной ошибки');\n\nerrorSys.notice('notice', 'Уведомление пользователю');\nerrorSys.devNotice('devNotice', 'Уведомление пользователю в режиме разработки, на проде не генерирет');\n\nerrorSys.warning('warning', 'Предупреждение пользователю');\nerrorSys.devWarning('devWarnig', 'Предупреждение пользователю в режиме разработки, на проде не генерирет');\n\nlet traceList = errorSys.getTraceList();\nconsole.log('===trace-list>', traceList);\n\nlet errList = errorSys.getErrors();\nconsole.log('===error>',errList);\n\nconsole.log('===notice>',errorSys.getNotice());\nconsole.log('===warning>',errorSys.getWarning());\n```\n\n## ModelValidatorSys\n\n### TPL VALIDATION\n```ts\nconst rules = new System.ModelRulesC();\n\n// ===========================\n// ID\n\nrules.set(rules.tpl('id_require_true_1', true)\n    .tplID('ID обязателен для заполнения')\n);\n\nrules.set(rules.tpl('id_require_false_1', true)\n    .tplID('ID обязателен для заполнения')\n);\n\nrules.set(rules.tpl('id_true_1')\n    .tplID('ID не обязателен заполнения')\n);\n\n// ==========================-\n// TEXT\n\nrules.set(rules.tpl('text_true_1', true)\n    .tplStr('Текст true_1')\n);\n\n// ===========================\n// STR\n\nrules.set(rules.tpl('str_true_1', true)\n    .tplStr('Строка true_1')\n);\n\nrules.set(rules.tpl('str_regex_true_1', true)\n    .tplStr('С регуларынм выражением true_1')\n    .if(/^аист[ои]к$/)\n);\n\nrules.set(rules.tpl('str_regex_false_1', true)\n    .tplStr('С регуларынм выражением false_1')\n    .if(/^аист[ои]к$/)\n);\n\n// =============================\n// ENUM\n\nrules.set(rules.tpl('enum_number_true_1', true)\n    .tplEnum('Сообщение - enum_number_true_1')\n    .if([1,2])\n);\n\nrules.set(rules.tpl('enum_string_true_1', true)\n    .tplEnum('Сообщение - enum_string_true_1')\n    .if(['s1','s2', '1'])\n);\n\nconst validator = new System.ModelValidatorSys(new System.ErrorSys('dev'));\nvalidator.fValid(rules.get(), data);\n\nvalidator.getResult();\n```\n\n====\n\n### Пример\n```ts\nconst rules = new System.ModelRulesC();\n\nrules.set(rules.rule('enum_boolean_true_1')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,0])\n    .errorEx('enum_boolean_true_1', 'enum_boolean_true_1')\n);\n\nrules.set(rules.rule('enum_boolean_true_2')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,0])\n    .errorEx('enum_boolean_true_2', 'enum_boolean_true_2')\n);\n\nrules.set(rules.rule('enum_boolean_true_3')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,0])\n    .errorEx('enum_boolean_true_3', 'enum_boolean_true_3')\n);\n\nrules.set(rules.rule('enum_boolean_true_4')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,0])\n    .errorEx('enum_boolean_true_4', 'enum_boolean_true_4')\n);\n\nrules.set(rules.rule('enum_boolean_false_1')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,0])\n    .errorEx('enum_boolean_false_1', 'enum_boolean_false_1')\n);\n\nrules.set(rules.rule('enum_boolean_false_2')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,0])\n    .errorEx('enum_boolean_false_2', 'enum_boolean_false_2')\n);\n\nrules.set(rules.rule('enum_boolean_false_3')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,0])\n    .errorEx('enum_boolean_false_3', 'enum_boolean_false_3')\n);\n\n// =============================================\n// NUMBER\n\nrules.set(rules.rule('enum_number_true_1')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,2])\n    .errorEx('enum_number_true_1', 'enum_number_true_1')\n);\n\nrules.set(rules.rule('enum_number_true_2')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,2])\n    .errorEx('enum_number_true_2', 'enum_number_true_2')\n);\n\nrules.set(rules.rule('enum_number_false_1')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,2])\n    .errorEx('enum_number_false_1', 'enum_number_false_1')\n);\n\nrules.set(rules.rule('enum_number_false_1')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if([1,2])\n    .errorEx('enum_number_false_1', 'enum_number_false_1')\n);\n\n// =================================================\n// STRING\n\nrules.set(rules.rule('enum_string_true_1')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if(['s1','s2', '1'])\n    .errorEx('enum_string_true_1', 'enum_string_true_1')\n);\n\nrules.set(rules.rule('enum_string_false_1')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if(['s1','s2', '1'])\n    .errorEx('enum_string_false_1', 'enum_string_false_1')\n);\n\nrules.set(rules.rule('enum_string_false_2')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if(['s1','s2', '1'])\n    .errorEx('enum_string_false_2', 'enum_string_false_2')\n);\n\nrules.set(rules.rule('enum_string_false_3')\n    .type(System.ModelRulesT.enum)\n    .require()\n    .if(['s1','s2', '1'])\n    .errorEx('enum_string_false_3', 'enum_string_false_3')\n);\n\nconst validator = new System.ModelValidatorSys(new System.ErrorSys('dev'));\nvalidator.fValid(rules.get(), data);\n\nvalidator.getResult();\n```\n\n## FieldValidator\n\n```typescript\n    // Пример использования 1\n    import { FieldValidator, ErrorSys } from \"@63pokupki/components/lib\";\n    let data = '20d00';\n    const errorSys = new ErrorSys();\n    let myValidator = new FieldValidator(errorSys, data)\n            .fSetErrorString('multy')\n            .fInt()\n            .fMoreOrEqual(5000)\n            .fLess(5000);\n\n    assert.ok(!myValidator.fIsOk());\n    assert.ok(errorSys.getErrorCount() == 3);\n```\n\nПолучился список ошибок\n```JSON\n    { \n        \"multy.isNotInt\": \"isNotInt\",\n        \"multy.isNotMoreOrEqualThan\": \"isNotMoreOrEqualThan\",\n        \"multy.isNotLessThan\": \"isNotLessThan\" \n    }\n```\n\n```typescript\n    // Пример использования 2\n    import { FieldValidator, ErrorSys } from \"@63pokupki/components/lib\";\n    let data = 10000;\n    const errorSys = new ErrorSys();\n\n    let iArg1 = 1000;\n    let iArg2 = 1000;\n\n    const tstFnc = (arg1: number, arg2: number) => {\n        iArg1 = arg1;\n        iArg2 = arg2;\n    };\n\n    let myValidator = new FieldValidator(errorSys, data)\n        .fSetErrorString('multy')\n        .fInt()\n        .fMoreOrEqual(5000)\n        .fDoIfOk(tstFnc, [2, 3])\n        ;\n\n    assert.ok(myValidator.fIsOk());\n\n    assert.ok(iArg1 == 2);\n    assert.ok(iArg2 == 3);\n```\n\n```typescript\n    // Пример использования 3\n    import { FieldValidator, ErrorSys } from \"@63pokupki/components/lib\";\n    let data = 10000;\n    const errorSys = new ErrorSys();\n\n    let iArg1 = 1000;\n    let iArg2 = 1000;\n\n    const tstFnc = (arg1: number, arg2: number) => {\n        return new Promise((resolve, reject) => {\n            iArg1 = arg1;\n            iArg2 = arg2;\n\n            resolve('funcOk');\n        })\n    };\n\n    let myValidator = new FieldValidator(errorSys, data)\n        .fSetErrorString('multy')\n        .fInt()\n        .fMoreOrEqual(5000);\n\n    let resp = await myValidator.fDoIfOkAsync(tstFnc, [2, 3]);\n\n    assert.ok(myValidator.fIsOk());\n\n    assert.ok(iArg1 == 2);\n    assert.ok(iArg2 == 3);\n```\n\n```typescript\n    // Пример использования 4\n    import { FieldValidator, ErrorSys } from \"@63pokupki/components/lib\";\n   \n    const errorSys = new ErrorSys();\n    let login = 'user';\n    let pass = 'test pass';\n    let passConfirm = 'test pass';\n\n    const loginFnc = (login: string, pass: string) => {\n        // Do login\n    }\n\n    new FieldValidator(errorSys, login)\n        .fSetErrorString('login')\n        .fExist()\n        .fText()\n        .fMinLen(5)\n\n        .fSetData(pass)\n        .fSetErrorString('pass')\n        .fExist()\n        .fText()\n        .fMinLen(7)\n\n        .fSetData(passConfirm)\n        .fSetErrorString('passConfirm')\n        .fExist()\n        .fText()\n        .fMinLen(7)\n        .fEqual(pass)\n\n        .fDoIfOk(loginFnc, [login, pass]);\n```\n\n```typescript\n    // Пример использования 5 - асинхронная ф-я\n    import { FieldValidator, ErrorSys } from \"@63pokupki/components/lib\";\n    \n    const errorSys = new ErrorSys();\n    let login = 'user';\n    let pass = 'test pass';\n    let passConfirm = 'test pass';\n\n    const faLoginFnc = async (login: string, pass: string) => {\n        // Do login ...\n    }\n    const faAfterloginFnc = async (someData: any) => {\n        // Do something ...\n    }\n\n    const myValidator = new FieldValidator(errorSys, login)\n        .fSetErrorString('login')\n        .fExist()\n        .fText()\n        .fMinLen(5)\n\n        .fSetData(pass)\n        .fSetErrorString('pass')\n        .fExist()\n        .fText()\n        .fMinLen(7)\n\n        .fSetData(passConfirm)\n        .fSetErrorString('passConfirm')\n        .fExist()\n        .fText()\n        .fMinLen(7)\n        .fEqual(pass);\n\n    myValidator.faDoIfOkAsync(() => faLoginFnc(login, pass))\n        .then((data: any) => myValidator.faDoIfOkAsync(() => faAfterloginFnc(data)))\n        .then((data: any) => myValidator.faDoIfOkAsync(() => faAfterloginFnc(data)))\n        .then((data: any) => myValidator.faDoIfOkAsync(() => faAfterloginFnc(data)))\n        \n        ;\n\n```\n","readmeFilename":"README.md"}