Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@codeplaydata/adapters

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@codeplaydata/adapters

  • 0.5.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
33
increased by3200%
Maintainers
1
Weekly downloads
 
Created
Source

Adapters

Seguindo os princípios do Ports and Adapters - Alistair Cockburn essa lib é um agregado de todos os adaptadores utilizados por outros pacotes do projeto CodePlayData.


Os comentários no código estarão em inglês e a documentação/testes em português.




Implementação

Abaixo estão os adapters já implementados até agora:

FileDescrição
GenericQueueEssa classe normalmente é colocada antes de um banco de dados para controlar a inflow e evitar o consumo de memória do servidor. Possui o comportamento de uma fila.
IndexedDB*Utilizado para acessar a database à documentos (NoSQL) orientada a eventos de mesmo nome presente na maioria dos browsers atuais.*
LocalStorageEsse adaptador acessa o localstorage dos browsers atuais, que normalmente se comportam como um banco em memória.
MongoDBUm adaptador para o clássico banco de dados orientado a documentos de mesmo nome.
GPU**Esse adaptador é a forma de acesso a GPU pelos browsers mais atuais**. Ainda está em acesso Alpha.
FetchO http client nativo de todos os browsers atuais.
ExpressO servidor http mais utilizado em aplicações NodeJs.

* O IndexedDB não pode ser testado abstraído do frontend, por isso não existem arquivos de teste.

** Esse adaptador de GPU na verdade utiliza uma API nativa chamada WebGPU, que ainda está em Draft funcionando apenas em versões de desenvolvedores dos browsers. Também não possui arquivos de testes devido ao mencionado.


Como Usar

Abaixo vemos os exemplos de utilização das classes citadas.


Fetch

import { Fetch } from "@codeplaydata/adapters";

const httpClient = new Fetch();
const request = new Request('https://httpstat.us/200');
const response = await httpClient.fetch(request);


GenericQueue

import { GenericQueue } from "@codeplaydata/adapters";

const localstorage = new LocalStorage();
const queue = new GenericQueue(localstorage, 2);

queue.query(/.../);


Express

import { ExpressApp, ExpressRouter } from "@codeplaydata/adapters";

const router = new ExpressRouter();
    await router.register('get', '/data', async function() {
        return;
    })
const api = new ExpressApp([{ path: '/teste', router: router.router }]);
/.../

GPU

import { GPUDeviceAdapter, GPUCommandRepository } from "@codeplaydata/adapters";

const gpu = new GPUDeviceAdapter(new GPUCommandRepository());
/.../

MongoDB

import { MongoDB } from "@codeplaydata/adapters";

const mongo = new MongoDB('mongodb://127.0.0.1:27017');

mongo.database = 'teste';
mongo.store = 'collection1';

await mongo.query(/.../)

LocalStorage

import { LocalStorage } from "@codeplaydata/adapters";

const localstorage = new LocalStorage();
localstorage.query(/.../)

IndexedDB

import { IndexedDB } from "@codeplaydata/adapters";

const idbconfig = {
    name: 'LocalTestStorage',
    version: 1,
    repositories: [
        {
            name: 'features',
            id: 'name',
            indexes: [
                {
                    indexName: 'name',
                    keypath: 'name'
                }
            ]
        }
    ]
}

const indexeddb = new IndexedDB(idbconfig);
indexeddb.query(/.../);
/.../

Copyright 2023 Pedro Paulo Teixeira dos Santos

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Keywords

FAQs

Package last updated on 29 Jan 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc