pwi-plata-type 0.3.18 → 0.4.1

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 (117) hide show
  1. package/__BUILD__/bin/extras/create-api-cli.js +96 -0
  2. package/__BUILD__/bin/extras/create-api-cli.js.map +1 -0
  3. package/__BUILD__/bin/extras/create-lib-cli.js +62 -0
  4. package/__BUILD__/bin/extras/create-lib-cli.js.map +1 -0
  5. package/__BUILD__/bin/extras/plata-create-tools.js +94 -0
  6. package/__BUILD__/bin/extras/plata-create-tools.js.map +1 -0
  7. package/__BUILD__/bin/plata-api.js +138 -0
  8. package/__BUILD__/bin/plata-api.js.map +1 -0
  9. package/__BUILD__/bin/plata-create.js +24 -0
  10. package/__BUILD__/bin/plata-create.js.map +1 -0
  11. package/__BUILD__/bin/plata-runtime.js +156 -0
  12. package/__BUILD__/bin/plata-runtime.js.map +1 -0
  13. package/__BUILD__/bin/plata-swagger.js +82 -0
  14. package/__BUILD__/bin/plata-swagger.js.map +1 -0
  15. package/__BUILD__/bin/runtime/_setupRuntime.js +43 -0
  16. package/__BUILD__/bin/runtime/_setupRuntime.js.map +1 -0
  17. package/__BUILD__/bin/runtime/class.js +18 -0
  18. package/__BUILD__/bin/runtime/class.js.map +1 -0
  19. package/__BUILD__/bin/runtime/dirs.js +16 -0
  20. package/__BUILD__/bin/runtime/dirs.js.map +1 -0
  21. package/__BUILD__/bin/runtime/promises.js +15 -0
  22. package/__BUILD__/bin/runtime/promises.js.map +1 -0
  23. package/__BUILD__/bin/runtime/require.js +88 -0
  24. package/__BUILD__/bin/runtime/require.js.map +1 -0
  25. package/__BUILD__/index.js +42 -0
  26. package/__BUILD__/index.js.map +1 -0
  27. package/__BUILD__/libs/axios.js +42 -0
  28. package/__BUILD__/libs/axios.js.map +1 -0
  29. package/__BUILD__/libs/cluster.js +160 -0
  30. package/__BUILD__/libs/cluster.js.map +1 -0
  31. package/__BUILD__/libs/fs.js +206 -0
  32. package/__BUILD__/libs/fs.js.map +1 -0
  33. package/__BUILD__/libs/model-validations.js +356 -0
  34. package/__BUILD__/libs/model-validations.js.map +1 -0
  35. package/__BUILD__/libs/model.js +185 -0
  36. package/__BUILD__/libs/model.js.map +1 -0
  37. package/__BUILD__/libs/router.js +127 -0
  38. package/__BUILD__/libs/router.js.map +1 -0
  39. package/__BUILD__/libs/swagger.js +64 -0
  40. package/__BUILD__/libs/swagger.js.map +1 -0
  41. package/__BUILD__/libs/tasks.js +134 -0
  42. package/__BUILD__/libs/tasks.js.map +1 -0
  43. package/__BUILD__/libs/tools.js +231 -0
  44. package/__BUILD__/libs/tools.js.map +1 -0
  45. package/__BUILD__/scripts/post-install/api.js +25 -0
  46. package/__BUILD__/scripts/post-install/api.js.map +1 -0
  47. package/__BUILD__/scripts/post-install/lib.js +25 -0
  48. package/__BUILD__/scripts/post-install/lib.js.map +1 -0
  49. package/__BUILD__/scripts/post-install.js +65 -0
  50. package/__BUILD__/scripts/post-install.js.map +1 -0
  51. package/__BUILD__/scripts/pre-test.js +25 -0
  52. package/__BUILD__/scripts/pre-test.js.map +1 -0
  53. package/package.json +18 -16
  54. package/src/@types/cluster.actions.d.ts +7 -0
  55. package/src/@types/cluster.d.ts +33 -0
  56. package/src/@types/create-cli.d.ts +9 -0
  57. package/src/@types/exported.d.ts +24 -0
  58. package/src/@types/global.d.ts +69 -0
  59. package/src/@types/model.d.ts +69 -0
  60. package/src/@types/router.d.ts +75 -0
  61. package/src/@types/swagger.d.ts +23 -0
  62. package/{bin/extras/plata-create-api.ts → src/bin/extras/create-api-cli.ts} +5 -6
  63. package/{bin/extras/plata-create-lib.ts → src/bin/extras/create-lib-cli.ts} +3 -4
  64. package/{bin → src/bin}/extras/plata-create-tools.ts +4 -4
  65. package/src/bin/plata-api.ts +172 -0
  66. package/src/bin/plata-create.ts +21 -0
  67. package/src/bin/plata-runtime.ts +188 -0
  68. package/src/bin/plata-swagger.ts +100 -0
  69. package/src/bin/runtime/_setupRuntime.ts +49 -0
  70. package/src/bin/runtime/_types.d.ts +4 -0
  71. package/src/bin/runtime/class.ts +21 -0
  72. package/src/bin/runtime/dirs.ts +26 -0
  73. package/src/bin/runtime/promises.ts +15 -0
  74. package/src/bin/runtime/require.ts +104 -0
  75. package/{index.ts → src/index.ts} +2 -4
  76. package/{libs → src/libs}/axios.ts +0 -0
  77. package/src/libs/cluster.ts +189 -0
  78. package/src/libs/fs.ts +382 -0
  79. package/{libs/model.ts → src/libs/model-validations.ts} +28 -262
  80. package/src/libs/model.ts +233 -0
  81. package/src/libs/router.ts +147 -0
  82. package/src/libs/swagger.ts +81 -0
  83. package/{libs → src/libs}/tasks.ts +0 -0
  84. package/{libs → src/libs}/tools.ts +3 -18
  85. package/src/scripts/post-install/api.ts +32 -0
  86. package/src/scripts/post-install/lib.ts +30 -0
  87. package/src/scripts/post-install.ts +65 -0
  88. package/src/scripts/pre-test.ts +34 -0
  89. package/src/tests/assets/config/test.txt +1 -0
  90. package/src/tests/config.test.ts +13 -0
  91. package/src/tests/model.test.ts +115 -0
  92. package/templates/create-cli/cluster.ts +7 -9
  93. package/templates/create-cli/config.ts +2 -8
  94. package/templates/create-cli/lib.ts +7 -17
  95. package/templates/create-cli/model.ts +10 -21
  96. package/templates/create-cli/route.ts +1 -3
  97. package/templates/postinstall/api/configs/env.ts +2 -8
  98. package/templates/postinstall/api/tsconfig.json +20 -37
  99. package/templates/postinstall/lib/postinstall-tools.mjs +1 -1
  100. package/templates/postinstall/lib/postinstall.js +1 -0
  101. package/templates/postinstall/lib/tsconfig.json +21 -38
  102. package/tsconfig.json +25 -37
  103. package/Dockerfile +0 -13
  104. package/bin/extras/plata-build-tool.ts +0 -151
  105. package/bin/plata-build.ts +0 -144
  106. package/bin/plata-create.ts +0 -28
  107. package/bin/plata-reload.ts +0 -13
  108. package/bin/plata-swagger-gen.ts +0 -183
  109. package/bin/plata.ts +0 -122
  110. package/libs/cluster.ts +0 -219
  111. package/libs/env.ts +0 -28
  112. package/libs/routes.ts +0 -275
  113. package/libs/swagger.ts +0 -79
  114. package/postinstall-tools.mjs +0 -115
  115. package/postinstall.mjs +0 -42
  116. package/templates/postinstall/api/_install.mjs +0 -34
  117. package/templates/postinstall/lib/_install.mjs +0 -30
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PlataFs = void 0;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const node_fs_1 = __importDefault(require("node:fs"));
10
+ const node_readline_1 = __importDefault(require("node:readline"));
11
+ const glob_1 = __importDefault(require("glob"));
12
+ var PlataFs;
13
+ (function (PlataFs) {
14
+ PlataFs.constants = promises_1.default.constants;
15
+ PlataFs.fs = promises_1.default;
16
+ function access(path, mode) {
17
+ return PlataFs.fs.access(path, mode).then(() => true, () => false);
18
+ }
19
+ PlataFs.access = access;
20
+ PlataFs.createWriteStream = node_fs_1.default.createWriteStream;
21
+ PlataFs.createReadStream = node_fs_1.default.createReadStream;
22
+ async function ReadEnvFileToPromise(p) {
23
+ const envFile = new Object(null);
24
+ const result = await ReadFileAsync(p, async (line) => {
25
+ if (line[0] === '#')
26
+ return;
27
+ if (line !== '') {
28
+ const env = line.split('=');
29
+ if (env.length >= 2) {
30
+ const [key, ...v] = env;
31
+ let value = v.join('=');
32
+ if (value[0] === '{' && value.slice(-1) === '}')
33
+ value = process.env[value.slice(1, -1)] ?? '';
34
+ if (value !== '')
35
+ envFile[key] = value;
36
+ }
37
+ }
38
+ });
39
+ if (result !== null) {
40
+ return result;
41
+ }
42
+ return envFile;
43
+ }
44
+ PlataFs.ReadEnvFileToPromise = ReadEnvFileToPromise;
45
+ PlataFs.cp = (source, destination, opts) => {
46
+ return promises_1.default.cp(source, destination, opts).then(() => null, err => {
47
+ return {
48
+ errorID: 'PLFS001',
49
+ msg: err.message,
50
+ error: err
51
+ };
52
+ });
53
+ };
54
+ function ReadFileSync(file, callback) {
55
+ return new Promise(resolve => {
56
+ try {
57
+ const content = [];
58
+ const stream = node_readline_1.default.createInterface({
59
+ input: PlataFs.createReadStream(file),
60
+ crlfDelay: Infinity
61
+ });
62
+ stream.on('close', () => {
63
+ resolve(content.join('\n'));
64
+ });
65
+ stream.on('line', (line) => {
66
+ content.push(callback(line));
67
+ });
68
+ }
69
+ catch (e) {
70
+ resolve({
71
+ errorID: 'PLTRF0004',
72
+ msg: `Error while reading file: ${file}`,
73
+ error: e
74
+ });
75
+ }
76
+ });
77
+ }
78
+ PlataFs.ReadFileSync = ReadFileSync;
79
+ function ReadFileAsync(file, callback) {
80
+ return new Promise(resolve => {
81
+ try {
82
+ const promises = [];
83
+ const stream = node_readline_1.default.createInterface({
84
+ input: PlataFs.createReadStream(file),
85
+ crlfDelay: Infinity
86
+ });
87
+ stream.on('close', () => {
88
+ Promise.all(promises).then(() => resolve(null), e => resolve({
89
+ errorID: 'PPFRFA0002',
90
+ msg: `Unexpected error while reading file: ${file}`,
91
+ error: e
92
+ }));
93
+ });
94
+ stream.on('line', line => {
95
+ promises.push(Plata.FastPromise(() => callback(line)));
96
+ });
97
+ }
98
+ catch (e) {
99
+ return resolve({
100
+ errorID: 'PPFRFA0001',
101
+ msg: `Unexpected error while reading file: ${file}`,
102
+ error: e
103
+ });
104
+ }
105
+ });
106
+ }
107
+ PlataFs.ReadFileAsync = ReadFileAsync;
108
+ async function FindFiles(folders, file) {
109
+ const files = [];
110
+ for (const folder of folders) {
111
+ files.push(...glob_1.default.sync(`${folder.replace(/\\/g, '/')}/**/${file}`));
112
+ }
113
+ return files;
114
+ }
115
+ PlataFs.FindFiles = FindFiles;
116
+ class CliTools {
117
+ sourcePath;
118
+ destPath;
119
+ constructor(sourcePath, destPath) {
120
+ this.destPath = destPath;
121
+ this.sourcePath = sourcePath;
122
+ }
123
+ async mkdirIfNotExists(dir) {
124
+ try {
125
+ const p = node_path_1.default.resolve(dir.toString());
126
+ if (!(await access(p))) {
127
+ await promises_1.default.mkdir(p, { recursive: true });
128
+ }
129
+ }
130
+ catch (err) {
131
+ console.error(err);
132
+ process.exit(1);
133
+ }
134
+ }
135
+ async createFolderToDest(folder) {
136
+ const destinationPath = node_path_1.default.join(this.destPath.toString(), folder);
137
+ await this.mkdirIfNotExists(destinationPath);
138
+ }
139
+ async forEachFileInFolder(folder, callback) {
140
+ try {
141
+ const folderPath = node_path_1.default.resolve(folder.toString());
142
+ const files = await promises_1.default.readdir(folder);
143
+ const promises = [];
144
+ files.forEach(file => {
145
+ const filePath = node_path_1.default.join(folderPath, file);
146
+ promises.push(Promise.resolve().then(() => callback(file, filePath)));
147
+ });
148
+ await Promise.all(promises);
149
+ }
150
+ catch (err) {
151
+ console.error(err);
152
+ process.exit(1);
153
+ }
154
+ }
155
+ async copyFile(sourcePath, destinationPath) {
156
+ try {
157
+ const s = node_path_1.default.resolve(sourcePath.toString());
158
+ const d = node_path_1.default.resolve(destinationPath.toString());
159
+ if (!(await access(d))) {
160
+ await promises_1.default.copyFile(s, d);
161
+ }
162
+ }
163
+ catch (err) {
164
+ console.error(err);
165
+ process.exit(1);
166
+ }
167
+ }
168
+ async copyFileIfNotExists(sourcePath, destinationPath) {
169
+ try {
170
+ const s = node_path_1.default.resolve(sourcePath.toString());
171
+ const d = node_path_1.default.resolve(destinationPath.toString());
172
+ if (!(await access(d))) {
173
+ await this.copyFile(s, d);
174
+ }
175
+ }
176
+ catch (err) {
177
+ console.error(err);
178
+ process.exit(1);
179
+ }
180
+ }
181
+ async copyFolderToDest(folder) {
182
+ const sourcePath = node_path_1.default.join(this.sourcePath.toString(), folder);
183
+ const destinationPath = node_path_1.default.join(this.destPath.toString(), folder);
184
+ await this.mkdirIfNotExists(destinationPath);
185
+ await this.forEachFileInFolder(sourcePath, (file, filePath) => this.copyFileIfNotExists(filePath, node_path_1.default.join(destinationPath, file)));
186
+ }
187
+ async syncFolder(folder) {
188
+ const sourcePath = node_path_1.default.join(this.sourcePath.toString(), folder);
189
+ const destinationPath = node_path_1.default.join(this.destPath.toString(), folder);
190
+ await this.mkdirIfNotExists(destinationPath);
191
+ await this.forEachFileInFolder(sourcePath, (file, filePath) => this.copyFile(filePath, node_path_1.default.join(destinationPath, file)));
192
+ }
193
+ async copyFileToDest(file) {
194
+ const sourcePath = node_path_1.default.join(this.sourcePath.toString(), file);
195
+ const destinationPath = node_path_1.default.join(this.destPath.toString(), file);
196
+ await this.copyFileIfNotExists(sourcePath, destinationPath);
197
+ }
198
+ async syncFileToDest(file) {
199
+ const sourcePath = node_path_1.default.join(this.sourcePath.toString(), file);
200
+ const destinationPath = node_path_1.default.join(this.destPath.toString(), file);
201
+ await this.copyFile(sourcePath, destinationPath);
202
+ }
203
+ }
204
+ PlataFs.CliTools = CliTools;
205
+ })(PlataFs = exports.PlataFs || (exports.PlataFs = {}));
206
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/libs/fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,356 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VarChar = exports.TelefoneDDI = exports.Telefone = exports.SmallDateTime = exports.Required = exports.Optional = exports.Int = exports.Decimal = exports.DateTime = exports.StringDateTime = exports.Enum = exports.Max = exports.Min = void 0;
4
+ function Min(min) {
5
+ return async (nome, valor) => {
6
+ if (valor < min)
7
+ return {
8
+ error: {
9
+ errorID: "BPMVMIN001",
10
+ msg: `O valor de ${nome} tem que ser maior que ${min}`
11
+ },
12
+ continua: false,
13
+ };
14
+ return { continua: true };
15
+ };
16
+ }
17
+ exports.Min = Min;
18
+ function Max(max) {
19
+ return async (nome, valor) => {
20
+ if (valor > max)
21
+ return {
22
+ error: {
23
+ errorID: "BPMVMIN001",
24
+ msg: `O valor de ${nome} tem que ser maior que ${max}`
25
+ },
26
+ continua: false,
27
+ };
28
+ return { continua: true };
29
+ };
30
+ }
31
+ exports.Max = Max;
32
+ function Enum(valores) {
33
+ return async (nome, valor) => {
34
+ if (valores.findIndex(v => `${valor}` === `${v}`) === -1)
35
+ return {
36
+ error: {
37
+ errorID: 'BPMVEN0001',
38
+ msg: `O campo ${nome} so pode ter os valores: ${valores.join(', ')}`,
39
+ error: `${valor}`
40
+ },
41
+ continua: false,
42
+ };
43
+ return { continua: true };
44
+ };
45
+ }
46
+ exports.Enum = Enum;
47
+ function StringDateTime() {
48
+ return async (nome, valor) => {
49
+ const regex = /(\d{4})-([01]\d)-([0-3]\d)T([0-2]\d):([0-5]\d):([0-5]\d)/;
50
+ if (!regex.test(valor)) {
51
+ return {
52
+ error: {
53
+ errorID: "BPVSDT001",
54
+ msg: `A data no campo ${nome} tem que está no formato yyyy-mm-ddTHH:MM:SS`,
55
+ },
56
+ continua: false
57
+ };
58
+ }
59
+ const [_, ano, mes, dia, hora, minutos, segundos] = valor.match(regex);
60
+ if (isNaN(+ano) || isNaN(+mes) || isNaN(+dia) || isNaN(+hora) || isNaN(+minutos) || isNaN(+segundos)) {
61
+ return {
62
+ error: {
63
+ errorID: "BPVSDT002",
64
+ msg: `A data no campo ${nome} tem que está no formato yyyy-mm-ddTHH:MM:SS`
65
+ },
66
+ continua: false
67
+ };
68
+ }
69
+ if ((+dia) > 31 || (+mes) > 12 || (+hora) > 24) {
70
+ return {
71
+ error: {
72
+ errorID: "BCVSDT003",
73
+ msg: `A data no campo ${nome} tem que está no formato yyyy-mm-ddTHH:MM:SS`,
74
+ },
75
+ continua: false
76
+ };
77
+ }
78
+ return { continua: true };
79
+ };
80
+ }
81
+ exports.StringDateTime = StringDateTime;
82
+ function DateTime() {
83
+ return async (nome, value) => value instanceof Date ? { continua: true } : {
84
+ error: {
85
+ errorID: 'BPVDT001',
86
+ msg: `O campo ${nome} não é do tipo Date`
87
+ },
88
+ continua: false
89
+ };
90
+ }
91
+ exports.DateTime = DateTime;
92
+ function Decimal(tamanhoInteiro, casasDecimais, min, max) {
93
+ return async (nome, valor) => {
94
+ if (isNaN(+valor)) {
95
+ return {
96
+ error: {
97
+ errorID: "BPMVDEC001",
98
+ msg: `O campo ${nome} tem que ser um decimal`
99
+ },
100
+ continua: false,
101
+ };
102
+ }
103
+ const v = `${valor}`;
104
+ if (v.length > (tamanhoInteiro + casasDecimais + 1)) {
105
+ return {
106
+ error: {
107
+ errorID: "BPMVDEC002",
108
+ msg: `O campo ${nome} não pode ser maior que ${(tamanhoInteiro + casasDecimais + 1)}`
109
+ },
110
+ continua: false,
111
+ };
112
+ }
113
+ const n = v.split('.');
114
+ if (n[0].length > tamanhoInteiro) {
115
+ return {
116
+ error: {
117
+ errorID: "BPMVDEC003",
118
+ msg: `A parte inteira do ${nome} não pode ter mais de ${tamanhoInteiro} digitos`
119
+ },
120
+ continua: false,
121
+ };
122
+ }
123
+ if (n[1] !== undefined) {
124
+ if (n[1].length > casasDecimais) {
125
+ return {
126
+ error: {
127
+ errorID: "BPMVDEC004",
128
+ msg: `A parte decimal do ${nome} não pode ter mais de ${casasDecimais} digitos`
129
+ },
130
+ continua: false,
131
+ };
132
+ }
133
+ }
134
+ if (min !== undefined) {
135
+ return Min(min)(nome, valor);
136
+ }
137
+ if (max !== undefined) {
138
+ return Max(max)(nome, valor);
139
+ }
140
+ return { continua: true };
141
+ };
142
+ }
143
+ exports.Decimal = Decimal;
144
+ function Int(min, max) {
145
+ return async (nome, valor) => {
146
+ if (isNaN(+valor)) {
147
+ return {
148
+ error: {
149
+ errorID: "BPMVINT001",
150
+ msg: `O campo ${nome} tem que ser um número inteiro`
151
+ },
152
+ continua: false,
153
+ };
154
+ }
155
+ const v = +valor;
156
+ if (Math.round(v) !== v) {
157
+ return {
158
+ error: {
159
+ errorID: "BPMVINT002",
160
+ msg: `O campo ${nome} tem que ser um número inteiro`
161
+ },
162
+ continua: false,
163
+ };
164
+ }
165
+ if (min !== undefined) {
166
+ return Min(min)(nome, valor);
167
+ }
168
+ if (max !== undefined) {
169
+ return Max(max)(nome, valor);
170
+ }
171
+ return { continua: true };
172
+ };
173
+ }
174
+ exports.Int = Int;
175
+ function Optional() {
176
+ return async (_nome, valor) => {
177
+ if (!valor) {
178
+ return { continua: false };
179
+ }
180
+ return { continua: true };
181
+ };
182
+ }
183
+ exports.Optional = Optional;
184
+ function Required() {
185
+ return async (nome, valor) => {
186
+ if (valor === null) {
187
+ return {
188
+ error: {
189
+ errorID: "BPCVREQ001",
190
+ msg: `O campo ${nome} é obrigatório`
191
+ },
192
+ continua: false
193
+ };
194
+ }
195
+ return { continua: true };
196
+ };
197
+ }
198
+ exports.Required = Required;
199
+ function SmallDateTime() {
200
+ return async (nome, valor) => {
201
+ const regex = /(\d{4})-([01]\d)-([0-3]\d)/;
202
+ if (!regex.test(valor)) {
203
+ return {
204
+ error: {
205
+ errorID: "BPCVDT001",
206
+ msg: `A data no campo ${nome} tem que está no formato yyyy-mm-dd`
207
+ },
208
+ continua: false
209
+ };
210
+ }
211
+ const [_, ano, mes, dia] = valor.match(regex);
212
+ if (isNaN(+ano) || isNaN(+mes) || isNaN(+dia)) {
213
+ return {
214
+ error: {
215
+ errorID: "BPCVDT002",
216
+ msg: `A data no campo ${nome} tem que está no formato yyyy-mm-dd`
217
+ },
218
+ continua: false
219
+ };
220
+ }
221
+ if ((+dia) > 31 || (+mes) > 12) {
222
+ return {
223
+ error: {
224
+ errorID: "BPCVDT003",
225
+ msg: `A data no campo ${nome} tem que está no formato yyyy-mm-dd`
226
+ },
227
+ continua: false
228
+ };
229
+ }
230
+ if (new Date(+ano, mes - 1, +dia) >= new Date(2079, 11, 31)) {
231
+ return {
232
+ error: {
233
+ errorID: "BPCVDT004",
234
+ msg: `A data no campo ${nome} não pode ser maior que 2079-12-31`
235
+ },
236
+ continua: false
237
+ };
238
+ }
239
+ return { continua: true };
240
+ };
241
+ }
242
+ exports.SmallDateTime = SmallDateTime;
243
+ function Telefone() {
244
+ return async (nome, valor) => {
245
+ const v = `${valor}`.split('-');
246
+ if (v.length !== 2) {
247
+ return {
248
+ error: {
249
+ errorID: "BPVTEL001",
250
+ msg: `O campo ${nome} tem que ser um telefone em no formato 99-999999999`
251
+ },
252
+ continua: false
253
+ };
254
+ }
255
+ if (v[0].length !== 2 || (v[1].length !== 8 && v[1].length !== 9)) {
256
+ return {
257
+ error: {
258
+ errorID: "BPVTEL002",
259
+ msg: `O campo ${nome} tem que ser um telefone em no formato 99-999999999`
260
+ },
261
+ continua: false
262
+ };
263
+ }
264
+ if (!+v[0] || !+v[1]) {
265
+ return {
266
+ error: {
267
+ errorID: "BPVTEL003",
268
+ msg: `O campo ${nome} tem que ser um telefone em no formato 99-999999999`
269
+ },
270
+ continua: false
271
+ };
272
+ }
273
+ return { continua: true };
274
+ };
275
+ }
276
+ exports.Telefone = Telefone;
277
+ function TelefoneDDI() {
278
+ return async (nome, valor) => {
279
+ const [ddi, t] = `${valor}`.split(' ');
280
+ const telefone = `${t}`.split('-');
281
+ if (telefone.length !== 2) {
282
+ return {
283
+ error: {
284
+ errorID: "BPVTELD001",
285
+ msg: `O campo ${nome} tem que ser um telefone em no formato +000 99-999999999`
286
+ },
287
+ continua: false
288
+ };
289
+ }
290
+ if (telefone[0].length !== 2 || (telefone[1].length !== 8 && telefone[1].length !== 9)) {
291
+ return {
292
+ error: {
293
+ errorID: "BPVTELD002",
294
+ msg: `O campo ${nome} tem que ser um telefone em no formato +000 99-999999999`
295
+ },
296
+ continua: false
297
+ };
298
+ }
299
+ if (!+telefone[0] || !+telefone[1]) {
300
+ return {
301
+ error: {
302
+ errorID: "BPVTELD003",
303
+ msg: `O campo ${nome} tem que ser um telefone em no formato +000 99-999999999`
304
+ },
305
+ continua: false
306
+ };
307
+ }
308
+ if (ddi.length !== 4) {
309
+ return {
310
+ error: {
311
+ errorID: "BPVTELD004",
312
+ msg: `O campo ${nome} tem que ser um telefone em no formato +000 99-999999999`
313
+ },
314
+ continua: false
315
+ };
316
+ }
317
+ if (ddi[0] !== '+' || !+ddi) {
318
+ return {
319
+ error: {
320
+ errorID: "BPVTELD005",
321
+ msg: `O campo ${nome} tem que ser um telefone em no formato +000 99-999999999`
322
+ },
323
+ continua: false
324
+ };
325
+ }
326
+ return { continua: true };
327
+ };
328
+ }
329
+ exports.TelefoneDDI = TelefoneDDI;
330
+ function VarChar(size, min) {
331
+ return async (nome, valor) => {
332
+ if (`${valor}`.length > size) {
333
+ return {
334
+ error: {
335
+ errorID: "BPVVARC001",
336
+ msg: `O campo ${nome} tem que ter menos de ${size} caracteres`
337
+ },
338
+ continua: false
339
+ };
340
+ }
341
+ if (min !== undefined) {
342
+ if (`${valor}`.length < min) {
343
+ return {
344
+ error: {
345
+ errorID: "BPVVARC002",
346
+ msg: `O campo ${nome} tem que ter no minimo ${size} caracteres`
347
+ },
348
+ continua: false
349
+ };
350
+ }
351
+ }
352
+ return { continua: true };
353
+ };
354
+ }
355
+ exports.VarChar = VarChar;
356
+ //# sourceMappingURL=model-validations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-validations.js","sourceRoot":"","sources":["../../src/libs/model-validations.ts"],"names":[],"mappings":"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"}