{"id":27251531,"url":"https://github.com/luiseduardofrias/dajts","last_synced_at":"2026-02-17T09:43:15.260Z","repository":{"id":209787656,"uuid":"724883324","full_name":"LuisEduardoFrias/DaJTs","owner":"LuisEduardoFrias","description":"Es un paquete 📦 que simplifica la gestión de datos y la hace más fácil para los programadores. Creado en TypeScript...","archived":false,"fork":false,"pushed_at":"2025-01-09T06:31:30.000Z","size":115,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-09T07:39:59.771Z","etag":null,"topics":["json","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LuisEduardoFrias.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-29T01:35:02.000Z","updated_at":"2024-09-29T21:16:08.000Z","dependencies_parsed_at":"2023-12-02T01:41:00.274Z","dependency_job_id":"1f3e3cd1-2c4c-4257-95a1-2c17b2fb2e02","html_url":"https://github.com/LuisEduardoFrias/DaJTs","commit_stats":null,"previous_names":["luiseduardofrias/dajts"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisEduardoFrias%2FDaJTs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisEduardoFrias%2FDaJTs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisEduardoFrias%2FDaJTs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisEduardoFrias%2FDaJTs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LuisEduardoFrias","download_url":"https://codeload.github.com/LuisEduardoFrias/DaJTs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248322600,"owners_count":21084337,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["json","nodejs","typescript"],"created_at":"2025-04-11T01:10:16.529Z","updated_at":"2026-02-17T09:43:10.207Z","avatar_url":"https://github.com/LuisEduardoFrias.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Inglish\n\n# DaJTs\n\nIt is a package 📦 that simplifies data management and makes it easier for programmers. Created in TypeScript, this package offers functionalities that allow you to save JavaScript objects as encrypted JSON data, acting as a lightweight database, DB Lite, ideal for small projects.\n\n## Usage\n\nThe package exposes the following classes, interfaces, and types:\n\n### Classes:\n- `daj`: instance\n- `User`: class type\n- `DajB`: abstract\n- `Token`: class type\n\n### Interfaces:\n- `Response`: error: Error; data: Data;\n- `Credentials`: user: string; password: string;\n\n### Types:\n- `Callback`: function `(error: Error, data: Data) =\u003e void`\n- `Data`: object, string, null\n- `Error`: string, null\n\n### dajconfig.json file \n```json\n{\n  \"ENVIRONMENT\": \"development\", //production, test\n  \"SALT_ROUNDS_D\": 10, //has lever\n  \"SALT_ROUNDS_P\": 20,\n  \"SALT_ROUNDS_T\": 10,\n  \"DB_NAME\": \"datafile\",\n  \"LOCK\": false\n}\n```\n\n## ***Create the models using the abstract class 'DajB'..**\n\nThe models that extend from the DajB acquire the following properties and methods:\n\n- `key 'property'`: string.\n- `super 'constructor'`: accepts a boolean indicating whether the key is automatically generated with a GUID or manually.\n- `json 'method'`: converts the object into a JSON.\n- `parse 'method'`: receives a JSON value and maps it to itself.\n- `mapper 'method'`: receives an object that is mapped to itself.\n- `getInstance 'method'`: generates a blank instance if the parameters are not provided.\n\n**Examples:**\n\n```typescript\n\nimport { DajB } from \"daj\";\n\nclass Person extends DajB {\n  name: string;\n  age: number;\n  constructor(name: string, age: number) {\n    super();\n    this.name = name;\n    this.age = age;\n  }\n}\n\nconst doctor = new Person(\"Jose\", 32);\nconsole.log(doctor); \n/* \n{ \n key: \"2h0e3y9e-372a-4f2b-b7f8-2cd73d19a6e1\"\n name: \"Jose\",\n age: 32\n}\n*/\n\n````\n\nUse the 'daj' class, which is an instance, with any of the methods that are similar to HTTP methods:\n\n| Method Name          | Parameters                 | Return Value      |\n|-----------------|----------------------------|------------------------|\n| registerSync    | User                       | Response               |\n| loginSync       | Credentials                | Token o null           |\n| checkTokenSync  | Token                      | boolean                |\n| logoutAsync     | Credentials                | boolean                |\n| getAll          | callback, object           | void                   |\n| getAllSync      | object                     | Response               |\n| get             | callback, object           | void                   |\n| getSync         | object                     | Response               |\n| getByKey        | callback, object, string   | void                   |\n| getByKeySync    | object, string             | Response               |\n| post            | callback, object           | void                   |\n| postSync        | object                     | Response               |\n| put             | callback, object           | void                   |\n| putSync         | object                     | Response               |\n| delete          | callback, object           | void                   |\n| deleteAsync     | object                     | Response               |\n\n**Examples:**\n\n```typescript\n\nimport daj, { Response } from \"daj\";\n\nconst doctor = new Person(\"Jose\", 32);\nconst response: Response = daj.postSync(doctor);\n\nconst { error, data } = response;\n\nconsole.log(error); // null\nconsole.log(data); // Success\n````\n\n**Examples:**\n\n```typescript\n\nimport daj, { Error, Data } from \"daj\";\n\nconst callback = (error: Error, data: Data) =\u003e {\n  console.log(error); // null\n  console.log(data); // Éxito\n};\n\nconst paciente = new Person(\"Felipe\", 12);\ndaj.post(callback, paciente);\n````\n\nSome methods are provided to simplify the registration:\n\n- `registerSync`\n: registers a user.\n\n- `loginSync`\n: allows you to log in.\n\n- `checkTokenSync`\n: verifies an authentication token provided by the login.\n\n- `logoutAsync`: logs out the user.\n\n**Examples:**\n```typescript\n\nimport daj, { User, Response, Credentials, Token } from \"daj\";\n\nclass Model_User extends User {\n  name: string;\n  lastName: string;\n  age: number;\n  constructor(name: string, lastName: string, age: number, user: string, password: string) {\n    super();\n    this.name = name;\n    this.lastName = lastName;\n    this.age = age;\n    this.user = user;\n    this.password = password;\n  }\n}\n\nconst teacher: Model_User = new Model_User(\"Carlos\", \"Felipe\", 32, \"Carlos_Felipe\", \"Carlos.F.3232\");\n\n// Registering user\nconst { error, data } = daj.registerSync(teacher);\n\nif (!error)\n  console.log(data) // Success\n\n// Login process\nconst credentials: Credentials = {\n  user: \"Carlos_Felipe\",\n  password: \"Carlos.F.3232\"\n};\n\nconst user_token: Token = daj.loginSync(credentials);\n\nconsole.log(user_token.token)   \n// 7d5a3b9e-572a-4f9b-b3f8-2c8e5d19a6e1\n// Tokens are GUID (Globally Unique Identifier).\n\n// Validating the token\nconst isLogin: boolean = daj.checkTokenSync(user_token.token);\nconsole.log(isLogin) // true\n\n// Logging out\nconst logout: boolean = daj.logoutAsync(credentials);\nconsole.log(logout) // true\n\n// Validating the token\nconst isLogin: boolean = daj.checkTokenSync(user_token.token);\nconsole.log(isLogin) // false\n\n````\n\n# Español\n\n# DaJTs\n\nEs un paquete 📦 que simplifica la gestión de datos y la hace más fácil para los programadores. Creado en TypeScript, este paquete ofrece funcionalidades que te permiten guardar objetos JavaScript en datos JSON cifrados como una base de datos, DB Lite, ideal para proyectos pequeños.\n\n## Uso\n\nEl paquete expone las siguientes clases, interfaces y tipos:\n\n### Clases:\n- `daj`: instancia\n- `User`: tipo de clase\n- `DajB`: abstracto\n- `Token`: tipo de clase\n\n### Interfaces:\n- `Response`: error: Error; data: Data;\n- `Credentials`: user: string; password: string;\n- \n### Tipos:\n- `Callback`: función `(error: Error, data: Data) =\u003e void`\n- `Data`: object, string, null\n- `Error`: string, null\n\n## ***Crea los modelos usando la clase abstracta 'DajB'.***\n\nLos modelos que extiendan del DajB arquiere la siquiente propiedad y metodos.\n\n- `key 'propiedad'`: string.\n- `super 'constructor'`: acepta un boolean que indica si el key se genera automaticamen con un GUID o manual.\n- `json 'metodo'`: convierte el objecto en un json.\n- `parse 'metodo'`: recive un valor json y lo mappea a si mismo.\n- `mapper 'metodo'`: recive un objecto que es mappeado a si mismo.\n- `getInstance 'metodo'`: genera un instamcia em blanco si no se proporcional los parametros.\n\n**Ejemplo:**\n\n````typescript\n\nimport { DajB } from \"daj\";\n\nclass Person extends DajB {\n  name: string;\n  age: number;\n  constructor(name: string, age: number) {\n    super();\n    this.name = name;\n    this.age = age;\n  }\n}\n\n````\n\nUsa la clase 'daj', la importación es una instancia, con cualquiera de los métodos que tienen similitud a los métodos HTTP:\n\n| Nombre del método | Parámetros               | Valor de retorno |\n| ----------------- |:------------------------:|:----------------:|\n| registerSync      | User                     | Response         |\n| loginSync         | Credential               | Token or null    |\n| checkTokenSync    | Token                    | boolean          |\n| logoutAsync       | Credentials              | boolean          |\n| getAll            | callback, object         | void             |\n| getAllSync        | object                   | Response         |\n| get               | callback, object         | void             |\n| getSync           | object                   | Response         |\n| getByKey          | callback, object, string | void             |\n| getByKeySync      | object, string           | Response         |\n| post              | callback, object         | void             |\n| postSync          | object                   | Response         |\n| put               | callback, object         | void             |\n| putSync           | object                   | Respo            |\n| delete            | callback, object         | void             |\n| deleteAsync       | object                   | Response         |\n\n**Ejemplo:**\n\n```typescript\n\nimport daj, { Response } from \"daj\";\n\nconst doctor = new Person(\"Jose\", 32);\nconst response: Response = daj.postSync(doctor);\n\nconst { error, data } = response;\n\nconsole.log(error); // null\nconsole.log(data); // Success\n\n````\n\n**Ejemplo:**\n\n```typescript\n\nimport daj, { Error, Data } from \"daj\";\n\nconst callback = (error: Error, data: Data) =\u003e {\n  console.log(error); // null\n  console.log(data); // Success\n};\n\nconst paciente = new Person(\"Felipe\", 12);\ndaj.post(callback, paciente);\n\n````\n\nMétodos de Registro Simplificado\n\n- `registerSync`: registra un usuario.\n- `loginSync`: te permite iniciar sesión.\n- `checkTokenSync`: verifica un token de autenticación proporcionado por el inicio de sesión.\n- `logoutAsync`: cierra la sesión del usuario.\n\n**Ejemplo:**\n```typescript\n\nimport daj, { User, Response, Credentials, Token } from \"daj\";\n\nclass Model_User extends User {\n  name: string;\n  lastName: string;\n  age: number;\n  constructor(name: string, lastName: string, age: number, user: string, password: string) {\n    super();\n    this.name = name;\n    this.lastName = lastName;\n    this.age = age;\n    this.user = user;\n    this.password = password;\n  }\n}\n\nconst teacher: Model_User = new Model_User(\"Carlos\", \"Felipe\", 32, \"Carlos_Felipe\", \"Carlos.F.3232\");\n\n// Registrando usuario\nconst { error, data } = daj.registerSync(teacher);\n\nif (!error) {\n  console.log(data); // Success\n}\n\n// Proceso de inicio de sesión\nconst credentials: Credentials = {\n  user: \"Carlos_Felipe\",\n  password: \"Carlos.F.3232\"\n};\n\nconst user_token: Token = daj.loginSync(credentials);\n\nconsole.log(user_token.token); // 7d5a3b9e-572a-4f9b-b3f8-2c8e5d19a6e1\n// Los token son GUID (Globally Unique Identifier).\n\n// Validando el token\nconst isLogin: boolean = daj.checkTokenSync(user_token.token);\nconsole.log(isLogin); // true\n\n// Cerrando sesión\nconst logout: boolean = daj.logoutAsync(credentials);\nconsole.log(logout); // true\n\n// Validando el token\nconst isLogin: boolean = daj.checkTokenSync(user_token.token);\nconsole.log(isLogin); // false\n\n````\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluiseduardofrias%2Fdajts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluiseduardofrias%2Fdajts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluiseduardofrias%2Fdajts/lists"}