0.4.0 • Published 28 days ago

@mincloudx/io v0.4.0

Weekly downloads
-
License
MIT
Repository
-
Last release
28 days ago

@mincloudx/io

The @mincloudx/io package simplifies CRUD (Create, Read, Update, Delete) operations on database tables, offering a streamlined interface for table management with minimal setup.

Installation

Install @mincloudx/io in your project using npm or pnpm:

npm install @mincloudx/io
# or
pnpm add @mincloudx/io

Usage

Begin by importing createIo and specifying your tables in the tables option to register them. This setup enables CRUD operations on the registered tables.

const { createIo } = require('@mincloudx/io');

// Registering tables
const tables = ['channel', 'product'];
const io = createIo({ tables });

Access a registered table by appending its name to io, such as io.channel or io.product.

query

In batch lookup, update, delete, and other operations, the Query object is needed. It is used to describe the characteristics of the data rows that need to be matched.

We can generate and obtain an instance of a Query object by reading io.query.

const query = io.product.query;
query.compare('name', '=', 'book');

In most cases of query requests, many scenarios involve comparing values to see if they match. io.getQuery supports a more convenient way to generate a Query instance. The example code below is equivalent to the one above:

const query = io.getQuery({ name: 'book' });

create record

create a record:

const product = await io.product.create({ name: 'New product' });

create many record:

const dataList = [
  { name: 'Product 1', value: 100 },
  { name: 'Product 2', value: 200 },
  { name: 'Product 3', value: 300 },
];

const { operation_result } = await io.product.createMany(dataList);
console.log('result: ', operation_result);

// or
const result = await io.product.createMany(dataList, { plain: false });
console.log('result: ', result.data.operation_result);

update record

const product = await io.product.update('productId', { name: 'product 2' });

read record

fetch record:

const product = await io.product.get('recordId');

fetch list:

const query = io.query.compare('deleted', '=', false);
const list = await io.channel.find(query, { offset: 0, limit: 20 });

delete record

delete a record:

const result = await io.channel.delete('recordId', { offset: 0, limit: 20 });

delete many record

const query = io.query.compare('deleted', '=', true);
const result = await io.channel.deleteMany(query, { offset: 0, limit: 20 });

count

fetch record count:

const query = io.getQuery({ deleted: false });
const count = await io.channel.deleteMany(query);

Development

# local develop
pnpm watch

# build package
pnpm build

# run test case
pnpm test
0.4.0

28 days ago

0.2.0

2 months ago

0.1.0

2 months ago