@moduletrace/datasquirel (3.1.7)
Installation
@moduletrace:registry=
npm install @moduletrace/datasquirel@3.1.7
"@moduletrace/datasquirel": "3.1.7"
About this package
Datasquirel
This package requires an account with datasquirel, or a self hosted instance of the datasquirel web admin with your URL. You can also use the SQL query aspect if you provide needed credentials for a database connection, however in this instance the static files feature is disabled.
Installation
First add the npm registry to your .npmrc file:
@moduletrace:registry=https://git.tben.me/api/packages/moduletrace/npm/
After setting up the registry you can install the package by running
npm install @moduletrace/datasquirel
Once the package is installed, you can import the library using require
approach:
const datasquirel = require("@moduletrace/datasquirel");
Or you can use ES6 module imports:
import datasquirel from "@moduletrace/datasquirel";
Usage
Fetch Data
This method requires a readonly key or fullaccess API key gotten from datasquirel. It uses a basic https get request paired with some query params.
const datasquirel = require("@moduletrace/datasquirel");
const getData = await datasquirel.get({
key: "aldhkf89asdflksdafh908asdfjkhasdf", // Readonly API Key
db: "my_database", // Database name slug (Eg. Db Name => My Database, Db Slug => my_database)
query: "SELECT * FROM blog_posts", // SQL Query
user_id: 129, // Your User Id: check settings page
});
NOTE: You can skip the
user_id
parameter by adding an environment variable namedDSQL_API_USER_ID
Datasquirel uses all conventional SQL query commands. However you can only use the SELECT
command when using a readonly API key.
Post Data
This method requires a fullaccess API key gotten from datasquirel. You can perform a basic fetch with this method, as well as more complex operations like UPDATE
, DELETE
and INSERT
.
const datasquirel = require("@moduletrace/datasquirel");
const postData = await datasquirel.post({
key: "aldhkf89asdflksdafh908asdfjkhasdf", // Fullaccess API Key
payload: {
action: "insert", // OR "update" OR "delete" OR "select"
data: {
user_id: "19aisdn123",
user_first_name: "John",
user_last_name: "Doe",
},
table: "users",
user_id: 271,
},
});
You can simply replace the payload
object with an SQL string and it does everything you provide in the SQL command.
const datasquirel = require("@moduletrace/datasquirel");
const postData = await datasquirel.post({
key: process.env.FULL_ACCESS_API_KEY,
payload: "SELECT * FROM blog_posts WHERE user_id='as09d7nasd90'",
user_id: 271,
});
You can add a condition to the payload
object to filter the results
const datasquirel = require("@moduletrace/datasquirel");
const postData = await datasquirel.post({
key: process.env.FULL_ACCESS_API_KEY,
payload: {
action: "delete",
condition: `WHERE user_id='21adwei9jewr' AND type='buyers'`,
table: "users",
},
user_id: 271,
});
You can use identifierColumnName
and identifierValue
when updating an entry.
const datasquirel = require("@moduletrace/datasquirel");
const postData = await datasquirel.post({
key: process.env.FULL_ACCESS_API_KEY,
payload: {
action: "update",
table: "users",
identifierColumnName: "id",
identifierValue: "21adwei9jewr",
data: {
first_name: "Mary",
last_name: "Spencer",
},
},
user_id: 271,
});
Upload Image
This method requires is similar to the post
method, but with different parameters.
const datasquirel = require("@moduletrace/datasquirel");
const postData = await datasquirel.uploadImage({
key: process.env.FULL_ACCESS_API_KEY,
payload: {
imageData: "6ejsiua2i29ndsajkfn9n==", // Image in base64
imageName: `awesome-waterfalls`,
mimeType: "jpg", // optional
thumbnailSize: 120, // optional === This measurement is in pixels(px)
},
user_id: 271,
});
Local Querying
You can query directly from an SQL database if you provide these environment variables in your .env
file:
DSQL_DB_HOST=
DSQL_DB_PORT=
DSQL_DB_USERNAME=
DSQL_DB_PASSWORD=
DSQL_DB_NAME=
DSQL_SSL_DIR=
The ssl directory must contain a file named ca-cert.pem
. DSQL_DB_PORT
defaults to 3306 if not provided.
Remote Querying
You can query from a self hosted installation of datasquirel. Just add these environment variables:
DSQL_API_REMOTE_HOST=
DSQL_API_REMOTE_HOST_PORT=
If these aren't provided it defaults to datasquirel.com
.
Dependencies
Dependencies
ID | Version |
---|---|
@types/ace | ^0.0.52 |
@types/lodash | ^4.17.13 |
@types/mysql | ^2.15.21 |
@types/next | ^9.0.0 |
@types/node | ^22.7.5 |
@types/react | ^18.2.21 |
@types/react-dom | ^19.0.0 |
@types/tinymce | ^4.6.9 |
dotenv | ^16.3.1 |
generate-password | ^1.7.1 |
google-auth-library | ^9.15.0 |
lodash | ^4.17.21 |
mysql | ^2.18.1 |
nodemailer | ^6.9.14 |
react | ^19.0.0 |
react-dom | ^19.0.0 |
sanitize-html | ^2.13.1 |
serverless-mysql | ^1.5.5 |