Updates
This commit is contained in:
parent
d774e8d35d
commit
c2328116da
42
package-shared/types/index.d.ts
vendored
42
package-shared/types/index.d.ts
vendored
@ -316,42 +316,14 @@ export interface GetReturn {
|
|||||||
schema?: DSQL_TableSchemaType;
|
schema?: DSQL_TableSchemaType;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface PostReturn {
|
interface GetSchemaRequestQuery {
|
||||||
success: boolean;
|
database?: string;
|
||||||
payload?: PostInsertReturn | Object[] | string;
|
table?: string;
|
||||||
|
field?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface PostInsertReturn {
|
interface GetSchemaAPICredentialsParam {
|
||||||
fieldCount: number;
|
key: string;
|
||||||
affectedRows: number;
|
|
||||||
insertId: number;
|
|
||||||
serverStatus: number;
|
|
||||||
warningCount: number;
|
|
||||||
message: string;
|
|
||||||
protocol41: boolean;
|
|
||||||
changedRows: number;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interface PostDataPayload {
|
type GetSchemaAPIParam = GetSchemaRequestQuery & GetSchemaAPICredentialsParam;
|
||||||
action: "insert" | "update" | "delete";
|
|
||||||
table: string;
|
|
||||||
data?: object;
|
|
||||||
identifierColumnName?: string;
|
|
||||||
identifierValue?: string;
|
|
||||||
duplicateColumnName?: string;
|
|
||||||
duplicateColumnValue?: string;
|
|
||||||
update?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface LocalPostReturn {
|
|
||||||
success: boolean;
|
|
||||||
payload?: PostInsertReturn | Object[] | string;
|
|
||||||
msg?: string;
|
|
||||||
error?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface LocalPostQueryObject {
|
|
||||||
query: string | import("../../package-shared/types").PostDataPayload;
|
|
||||||
tableName?: string;
|
|
||||||
queryValues?: string[];
|
|
||||||
}
|
|
||||||
|
@ -355,50 +355,17 @@ const http = require("http");
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} PostReturn
|
* @typedef {object} GetSchemaRequestQuery
|
||||||
* @property {boolean} success - Did the function run successfully?
|
* @property {string} [database] - Db Name. eg `test_database`
|
||||||
* @property { PostInsertReturn | Object[] | string } [payload] - The Y Coordinate
|
* @property {string} [table] - Table Name (slug) e.g `test_table`
|
||||||
|
* @property {string} [field]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {object} PostInsertReturn
|
* @typedef {object} GetSchemaAPICredentialsParam
|
||||||
* @property {number} fieldCount
|
* @property {string} key - API FULL ACCESS Key
|
||||||
* @property {number} affectedRows
|
|
||||||
* @property {number} insertId
|
|
||||||
* @property {number} serverStatus
|
|
||||||
* @property {number} warningCount
|
|
||||||
* @property {string} message
|
|
||||||
* @property {boolean} protocol41
|
|
||||||
* @property {number} changedRows
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {object} PostDataPayload
|
* @typedef {GetSchemaRequestQuery & GetSchemaAPICredentialsParam} GetSchemaAPIParam
|
||||||
* @property {"insert" | "update" | "delete"} action - The target action to take
|
|
||||||
* @property {string} table - Table name(slug) eg "blog_posts"
|
|
||||||
* @property {object} [data] - Table insert payload object => This must have keys that match
|
|
||||||
* table fields
|
|
||||||
* @property {string?} [identifierColumnName] - Table identifier field name => eg. "id" OR "email"
|
|
||||||
* @property {string?} [identifierValue] - Corresponding value of the selected field name => This
|
|
||||||
* checks identifies a the target row for "update" or "delete". Not needed for "insert"
|
|
||||||
* @property {string?} [duplicateColumnName] - Duplicate column name to check for
|
|
||||||
* @property {string?} [duplicateColumnValue] - Duplicate column value to match. If no "update" param
|
|
||||||
* provided, function will return null
|
|
||||||
* @property {boolean?} [update] - Should the "insert" action update the existing entry if indeed
|
|
||||||
* the entry with "duplicateColumnValue" exists?
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} LocalPostReturn
|
|
||||||
* @property {boolean} success - Did the function run successfully?
|
|
||||||
* @property { PostInsertReturn | Object[] | string } [payload] - GET request results
|
|
||||||
* @property {string} [msg] - Message
|
|
||||||
* @property {string} [error] - Error Message
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} LocalPostQueryObject
|
|
||||||
* @property {string | import("../../package-shared/types").PostDataPayload} query - Table Name
|
|
||||||
* @property {string} [tableName] - Table Name
|
|
||||||
* @property {string[]} [queryValues] - GET request results
|
|
||||||
*/
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "datasquirel",
|
"name": "datasquirel",
|
||||||
"version": "2.2.7",
|
"version": "2.2.8",
|
||||||
"description": "Cloud-based SQL data management tool",
|
"description": "Cloud-based SQL data management tool",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
// "skipLibCheck": true,
|
// "skipLibCheck": true,
|
||||||
"lib": ["dom", "dom.iterable", "esnext"],
|
"lib": ["dom", "dom.iterable", "esnext"],
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"noEmit": true,
|
|
||||||
"incremental": true,
|
"incremental": true,
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"isolatedModules": true,
|
"isolatedModules": true,
|
||||||
|
@ -22,17 +22,12 @@ const https = require("https");
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make a get request to Datasquirel API
|
* # Get Schema for Database, table, or field *
|
||||||
* ==============================================================================
|
* @param {import("../package-shared/types").GetSchemaAPIParam} params
|
||||||
* @async
|
|
||||||
*
|
|
||||||
* @param {Object} params - Single object passed
|
|
||||||
* @param {string} params.key - `FULL ACCESS` API Key
|
|
||||||
* @param {string} [params.database] - The database schema to get
|
|
||||||
*
|
*
|
||||||
* @returns { Promise<GetSchemaReturn> } - Return Object
|
* @returns { Promise<GetSchemaReturn> } - Return Object
|
||||||
*/
|
*/
|
||||||
async function getSchema({ key, database }) {
|
async function getSchema({ key, database, field, table }) {
|
||||||
const scheme = process.env.DSQL_HTTP_SCHEME;
|
const scheme = process.env.DSQL_HTTP_SCHEME;
|
||||||
const localHost = process.env.DSQL_LOCAL_HOST;
|
const localHost = process.env.DSQL_LOCAL_HOST;
|
||||||
const localHostPort = process.env.DSQL_LOCAL_HOST_PORT;
|
const localHostPort = process.env.DSQL_LOCAL_HOST_PORT;
|
||||||
@ -43,6 +38,15 @@ async function getSchema({ key, database }) {
|
|||||||
* @description make a request to datasquirel.com
|
* @description make a request to datasquirel.com
|
||||||
*/
|
*/
|
||||||
const httpResponse = await new Promise((resolve, reject) => {
|
const httpResponse = await new Promise((resolve, reject) => {
|
||||||
|
/** @type {import("../package-shared/types").GetSchemaRequestQuery} */
|
||||||
|
const queryObject = { database, field, table };
|
||||||
|
let query = Object.keys(queryObject)
|
||||||
|
// @ts-ignore
|
||||||
|
.filter((k) => queryObject[k])
|
||||||
|
// @ts-ignore
|
||||||
|
.map((k) => `${k}=${queryObject[k]}`)
|
||||||
|
.join("&");
|
||||||
|
|
||||||
(scheme?.match(/^http$/i) ? http : https)
|
(scheme?.match(/^http$/i) ? http : https)
|
||||||
.request(
|
.request(
|
||||||
{
|
{
|
||||||
@ -55,7 +59,7 @@ async function getSchema({ key, database }) {
|
|||||||
hostname: localHost || "datasquirel.com",
|
hostname: localHost || "datasquirel.com",
|
||||||
path:
|
path:
|
||||||
"/api/query/get-schema" +
|
"/api/query/get-schema" +
|
||||||
(database ? `?database=${database}` : ""),
|
(query?.match(/./) ? `?${query}` : ""),
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user