@onurege3467/zerohelper 7.1.0 → 8.0.0

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.
package/test.js DELETED
@@ -1,261 +0,0 @@
1
- const path = require('path');
2
- const createDatabase = require('./database');
3
- const helpers = require('./functions');
4
-
5
- const mysqlConfig = {
6
- adapter: 'mysql',
7
- config: {
8
- host: process.env.MYSQL_HOST || 'localhost',
9
- user: process.env.MYSQL_USER || 'root',
10
- password: process.env.MYSQL_PASSWORD || '',
11
- database: process.env.MYSQL_DATABASE || 'test_db_zerohelper',
12
- cache: {
13
- max: 100,
14
- ttl: 1000 * 10,
15
- updateAgeOnGet: true,
16
- },
17
- },
18
- };
19
-
20
- const mongoConfig = {
21
- adapter: 'mongodb',
22
- config: {
23
- url: process.env.MONGODB_URL || 'MONGODB_URL',
24
- database: process.env.MONGODB_DATABASE || 'test_mongo_db_zerohelper',
25
- cache: {
26
- max: 100,
27
- ttl: 1000 * 10,
28
- updateAgeOnGet: true,
29
- },
30
- },
31
- };
32
-
33
- const jsonConfig = {
34
- adapter: 'json',
35
- config: {
36
- filePath: path.join(__dirname, 'data', 'test_db.json'),
37
- },
38
- };
39
-
40
- const sqliteConfig = {
41
- adapter: 'sqlite',
42
- config: {
43
- filePath: path.join(__dirname, 'data', 'test_db.sqlite'),
44
- },
45
- };
46
-
47
- const cachedSqliteConfig = {
48
- adapter: 'sqlite',
49
- config: {
50
- filePath: path.join(__dirname, 'data', 'test_db_cached.sqlite'),
51
- cache: {
52
- max: 100, // Max 100 items
53
- ttl: 1000 * 10, // 10 seconds TTL
54
- updateAgeOnGet: true,
55
- },
56
- },
57
- };
58
-
59
- const pgConfig = {
60
- adapter: 'postgres',
61
- config: {
62
- host: process.env.PG_HOST || 'localhost',
63
- user: process.env.PG_USER || 'postgres',
64
- password: process.env.PG_PASSWORD || '',
65
- database: process.env.PG_DATABASE || 'test_db_zerohelper_pg',
66
- cache: {
67
- max: 100,
68
- ttl: 1000 * 10,
69
- updateAgeOnGet: true,
70
- },
71
- },
72
- };
73
-
74
- // Absurd configurations for testing edge cases
75
- async function runDatabaseTests() {
76
- console.log('Starting database tests...');
77
-
78
- const databases = [
79
- { name: 'MySQL', config: mysqlConfig },
80
- { name: 'MongoDB', config: mongoConfig },
81
- { name: 'PostgreSQL', config: pgConfig },
82
- { name: 'JSON', config: jsonConfig },
83
- { name: 'SQLite', config: sqliteConfig },
84
- ];
85
-
86
- for (const dbInfo of databases) {
87
- const { name, config } = dbInfo;
88
- console.log(`\n--- Testing ${name} Database ---`);
89
- let db;
90
- try {
91
- db = createDatabase(config);
92
- console.log(`${name} database connected.`);
93
-
94
- // Test Insert
95
- const insertResult = await db.insert('users', { name: 'Test User', email: `test_${name.toLowerCase()}@example.com`, int_age: 30, bool_active: true });
96
- console.log(`${name} Insert:`, insertResult);
97
-
98
- // Test SelectOne
99
- const user = await db.selectOne('users', { name: 'Test User' });
100
- console.log(`${name} SelectOne:`, user);
101
-
102
- // Test Update
103
- if (user) {
104
- const updateResult = await db.update('users', { int_age: 31 }, { name: 'Test User' });
105
- console.log(`${name} Update:`, updateResult);
106
- }
107
-
108
- // Test Select (all)
109
- const allUsers = await db.select('users');
110
- console.log(`${name} Select All:`, allUsers);
111
-
112
- // Test Set (upsert)
113
- const setResult = await db.set('users', { city: 'Test City' }, { name: 'Test User' });
114
- console.log(`${name} Set (upsert):`, setResult);
115
-
116
- // Test Delete
117
- const deleteResult = await db.delete('users', { name: 'Test User' });
118
- console.log(`${name} Delete:`, deleteResult);
119
-
120
- } catch (error) {
121
- console.error(`Error testing ${name} database:`, error);
122
- } finally {
123
- if (db) {
124
- try {
125
- await db.close();
126
- console.log(`${name} database connection closed.`);
127
- } catch (closeError) {
128
- console.error(`Error closing ${name} database connection:`, closeError);
129
- }
130
- }
131
- }
132
- }
133
-
134
- // --- Testing Cached SQLite Database ---
135
- console.log('\n--- Testing Cached SQLite Database ---');
136
- let cachedDb;
137
- try {
138
- cachedDb = createDatabase(cachedSqliteConfig);
139
- console.log('Cached SQLite database connected.');
140
-
141
- // Insert a record
142
- await cachedDb.insert('products', { name: 'Laptop', price: 1200 });
143
- console.log('Inserted Laptop into cached DB.');
144
-
145
- // First select - should be a cache miss
146
- let product = await cachedDb.selectOne('products', { name: 'Laptop' });
147
- console.log('First select (should be cache miss): ', product);
148
-
149
- // Second select - should be a cache hit
150
- product = await cachedDb.selectOne('products', { name: 'Laptop' });
151
- console.log('Second select (should be cache hit): ', product);
152
-
153
- // Update the record - should invalidate cache
154
- await cachedDb.update('products', { price: 1150 }, { name: 'Laptop' });
155
- console.log('Updated Laptop price, cache should be invalidated.');
156
-
157
- // Third select - should be a cache miss again (after invalidation)
158
- product = await cachedDb.selectOne('products', { name: 'Laptop' });
159
- console.log('Third select (should be cache miss after update): ', product);
160
-
161
- // Delete the record
162
- await cachedDb.delete('products', { name: 'Laptop' });
163
- console.log('Deleted Laptop from cached DB.');
164
-
165
- } catch (error) {
166
- console.error('Error testing Cached SQLite database:', error);
167
- } finally {
168
- if (cachedDb) {
169
- try {
170
- await cachedDb.close();
171
- console.log('Cached SQLite database connection closed.');
172
- } catch (closeError) {
173
- console.error('Error closing Cached SQLite database connection:', closeError);
174
- }
175
- }
176
- }
177
-
178
-
179
- console.log('\nAll database tests completed.');
180
- }
181
-
182
- function runHelperFunctionTests() {
183
- console.log('\nStarting helper function tests...');
184
-
185
- // Random Functions
186
- console.log('\n--- Testing Random Functions ---');
187
- console.log('makeUniqueId:', helpers.random.makeUniqueId());
188
- console.log('randomArray:', helpers.random.randomArray([1, 2, 3]));
189
- console.log('randomText (5 chars):', helpers.random.randomText(5));
190
- console.log('randomNumber (1-10):', helpers.random.randomNumber(1, 10));
191
- console.log('randomEmoji:', helpers.random.randomEmoji());
192
- console.log('randomHex:', helpers.random.randomHex());
193
- console.log('randomFloat (1.0-2.0):', helpers.random.randomFloat(1.0, 2.0));
194
-
195
- // String Functions
196
- console.log('\n--- Testing String Functions ---');
197
- console.log('titleCase:', helpers.string.titleCase('hello world'));
198
- console.log('generateRandomString (8 chars):', helpers.string.generateRandomString(8));
199
-
200
- // Array Functions
201
- console.log('\n--- Testing Array Functions ---');
202
- console.log('shuffleArray:', helpers.array.shuffleArray([1, 2, 3, 4, 5]));
203
- console.log('flattenArray:', helpers.array.flattenArray([1, [2, [3]], 4]));
204
- console.log('removeFalsyValues:', helpers.array.removeFalsyValues([0, 1, false, '', null, undefined, 2]));
205
- const groupByData = [
206
- { type: 'A', value: 1 },
207
- { type: 'B', value: 2 },
208
- { type: 'A', value: 3 },
209
- ];
210
- console.log('groupBy:', helpers.array.groupBy(groupByData, 'type'));
211
- const pluckData = [
212
- { name: 'Alice', age: 30 },
213
- { name: 'Bob', age: 24 },
214
- ];
215
- console.log('pluck (name):', helpers.array.pluck(pluckData, 'name'));
216
- const sortByData = [
217
- { age: 30 },
218
- { age: 20 },
219
- { age: 40 },
220
- ];
221
- console.log('sortBy (age):', helpers.array.sortBy(sortByData, 'age'));
222
-
223
- // Object Functions
224
- console.log('\n--- Testing Object Functions ---');
225
- const filterObjectData = { a: 1, b: 2, c: 3 };
226
- console.log('filterObjectByKey:', helpers.object.filterObjectByKey(filterObjectData, ['a', 'c']));
227
- const deepMergeData1 = { a: 1, b: { c: 2 } };
228
- const deepMergeData2 = { b: { d: 3 }, e: 4 };
229
- console.log('deepMerge:', helpers.object.deepMerge(deepMergeData1, deepMergeData2));
230
-
231
- // Crypto Functions
232
- console.log('\n--- Testing Crypto Functions ---');
233
- const secret = 'mySuperSecretKey';
234
- const textToEncrypt = 'Hello Crypto!';
235
- const encryptedResult = helpers.crypto.encryptText(textToEncrypt, secret);
236
- const encryptedText = encryptedResult.encryptedText;
237
- const iv = encryptedResult.iv;
238
- console.log('encryptText:', encryptedText);
239
- console.log('decryptText:', helpers.crypto.decryptText(encryptedText, secret, iv));
240
- const password = 'mySecurePassword';
241
- const hashedPassword = helpers.crypto.hashPassword(password);
242
- console.log('hashPassword:', hashedPassword);
243
- console.log('verifyPassword (true):', helpers.crypto.verifyPassword(password, hashedPassword));
244
- console.log('verifyPassword (false):', helpers.crypto.verifyPassword('wrongPassword', hashedPassword));
245
- const jwtPayload = { userId: 123, username: 'testuser' };
246
- const jwtToken = helpers.crypto.generateJWT(jwtPayload, secret);
247
- console.log('generateJWT:', jwtToken);
248
- console.log('verifyJWT:', helpers.crypto.verifyJWT(jwtToken, secret));
249
-
250
- // Math Functions
251
- console.log('\n--- Testing Math Functions ---');
252
- console.log('mean:', helpers.math.mean([1, 2, 3, 4, 5]));
253
- console.log('isPrime (7):', helpers.math.isPrime(7));
254
- console.log('isPrime (10):', helpers.math.isPrime(10));
255
- }
256
-
257
- async function main() {
258
- await runDatabaseTests();
259
- }
260
-
261
- main();
package/test_mysqlonly.js DELETED
@@ -1,144 +0,0 @@
1
- const path = require('path');
2
- const createDatabase = require('./database');
3
- const helpers = require('./functions');
4
- const { setInterval } = require('timers');
5
-
6
- const mysqlConfig = {
7
- adapter: 'mysql',
8
- config: {
9
- host: process.env.MYSQL_HOST || 'localhost',
10
- user: process.env.MYSQL_USER || 'root',
11
- password: process.env.MYSQL_PASSWORD || '',
12
- database: process.env.MYSQL_DATABASE || 'test_db_zerohelper',
13
- cache: {
14
- max: 100,
15
- ttl: 1000 * 10,
16
- updateAgeOnGet: true,
17
- },
18
- },
19
- };
20
- // Absurd configurations for testing edge cases
21
- async function runDatabaseTests() {
22
- console.log('Starting database tests...');
23
-
24
- const databases = [
25
- { name: 'MySQL', config: mysqlConfig },
26
- ];
27
-
28
- for (const dbInfo of databases) {
29
- const { name, config } = dbInfo;
30
- console.log(`\n--- Testing ${name} Database ---`);
31
- let db;
32
- try {
33
- db = createDatabase(config);
34
- console.log(`${name} database connected.`);
35
-
36
- // Test Insert
37
- const insertResult = await db.insert('users', { name: 'Test User', email: `test_${name.toLowerCase()}@example.com`, int_age: 30, bool_active: true,city: 'Test City' });
38
- console.log(`${name} Insert:`, insertResult);
39
- const selectResult = await db.selectOne('users', { _id: insertResult});
40
- console.log(`${name} Select One:`, selectResult);
41
- await db.set('users', {city:'Amkara'}, {_id: insertResult });
42
-
43
- setInterval(async () => {
44
- const updatedSelectResult = await db.selectOne('users', { _id: insertResult });
45
- console.log(`${name} Select One after update:`, updatedSelectResult);
46
- }, 1000);
47
-
48
-
49
-
50
- } catch (error) {
51
- console.error(`Error testing ${name} database:`, error);
52
- } finally {
53
- if (db) {
54
- try {
55
- } catch (closeError) {
56
- console.error(`Error closing ${name} database connection:`, closeError);
57
- }
58
- }
59
- }
60
-
61
-
62
- console.log('\nAll database tests completed.');
63
- }
64
- }
65
- function runHelperFunctionTests() {
66
- console.log('\nStarting helper function tests...');
67
-
68
- // Random Functions
69
- console.log('\n--- Testing Random Functions ---');
70
- console.log('makeUniqueId:', helpers.random.makeUniqueId());
71
- console.log('randomArray:', helpers.random.randomArray([1, 2, 3]));
72
- console.log('randomText (5 chars):', helpers.random.randomText(5));
73
- console.log('randomNumber (1-10):', helpers.random.randomNumber(1, 10));
74
- console.log('randomEmoji:', helpers.random.randomEmoji());
75
- console.log('randomHex:', helpers.random.randomHex());
76
- console.log('randomFloat (1.0-2.0):', helpers.random.randomFloat(1.0, 2.0));
77
-
78
- // String Functions
79
- console.log('\n--- Testing String Functions ---');
80
- console.log('titleCase:', helpers.string.titleCase('hello world'));
81
- console.log('generateRandomString (8 chars):', helpers.string.generateRandomString(8));
82
-
83
- // Array Functions
84
- console.log('\n--- Testing Array Functions ---');
85
- console.log('shuffleArray:', helpers.array.shuffleArray([1, 2, 3, 4, 5]));
86
- console.log('flattenArray:', helpers.array.flattenArray([1, [2, [3]], 4]));
87
- console.log('removeFalsyValues:', helpers.array.removeFalsyValues([0, 1, false, '', null, undefined, 2]));
88
- const groupByData = [
89
- { type: 'A', value: 1 },
90
- { type: 'B', value: 2 },
91
- { type: 'A', value: 3 },
92
- ];
93
- console.log('groupBy:', helpers.array.groupBy(groupByData, 'type'));
94
- const pluckData = [
95
- { name: 'Alice', age: 30 },
96
- { name: 'Bob', age: 24 },
97
- ];
98
- console.log('pluck (name):', helpers.array.pluck(pluckData, 'name'));
99
- const sortByData = [
100
- { age: 30 },
101
- { age: 20 },
102
- { age: 40 },
103
- ];
104
- console.log('sortBy (age):', helpers.array.sortBy(sortByData, 'age'));
105
-
106
- // Object Functions
107
- console.log('\n--- Testing Object Functions ---');
108
- const filterObjectData = { a: 1, b: 2, c: 3 };
109
- console.log('filterObjectByKey:', helpers.object.filterObjectByKey(filterObjectData, ['a', 'c']));
110
- const deepMergeData1 = { a: 1, b: { c: 2 } };
111
- const deepMergeData2 = { b: { d: 3 }, e: 4 };
112
- console.log('deepMerge:', helpers.object.deepMerge(deepMergeData1, deepMergeData2));
113
-
114
- // Crypto Functions
115
- console.log('\n--- Testing Crypto Functions ---');
116
- const secret = 'mySuperSecretKey';
117
- const textToEncrypt = 'Hello Crypto!';
118
- const encryptedResult = helpers.crypto.encryptText(textToEncrypt, secret);
119
- const encryptedText = encryptedResult.encryptedText;
120
- const iv = encryptedResult.iv;
121
- console.log('encryptText:', encryptedText);
122
- console.log('decryptText:', helpers.crypto.decryptText(encryptedText, secret, iv));
123
- const password = 'mySecurePassword';
124
- const hashedPassword = helpers.crypto.hashPassword(password);
125
- console.log('hashPassword:', hashedPassword);
126
- console.log('verifyPassword (true):', helpers.crypto.verifyPassword(password, hashedPassword));
127
- console.log('verifyPassword (false):', helpers.crypto.verifyPassword('wrongPassword', hashedPassword));
128
- const jwtPayload = { userId: 123, username: 'testuser' };
129
- const jwtToken = helpers.crypto.generateJWT(jwtPayload, secret);
130
- console.log('generateJWT:', jwtToken);
131
- console.log('verifyJWT:', helpers.crypto.verifyJWT(jwtToken, secret));
132
-
133
- // Math Functions
134
- console.log('\n--- Testing Math Functions ---');
135
- console.log('mean:', helpers.math.mean([1, 2, 3, 4, 5]));
136
- console.log('isPrime (7):', helpers.math.isPrime(7));
137
- console.log('isPrime (10):', helpers.math.isPrime(10));
138
- }
139
-
140
- async function main() {
141
- await runDatabaseTests();
142
- }
143
-
144
- main();