diff --git a/dist/engine/schema-to-typedef.js b/dist/engine/schema-to-typedef.js index b99b736..57881d5 100644 --- a/dist/engine/schema-to-typedef.js +++ b/dist/engine/schema-to-typedef.js @@ -33,6 +33,11 @@ const args = (0, util_1.parseArgs)({ default: process.env.DSQL_DB_NAME, short: "d", }, + userid: { + type: "string", + default: process.env.DSQL_API_USER_ID, + short: "i", + }, outfile: { type: "string", short: "o", @@ -64,10 +69,12 @@ if (args.values.envfile && typeof args.values.envfile == "string") { } } const finalEnv = Object.assign(Object.assign({}, process.env), appendedEnv); +process.env = Object.assign(Object.assign({}, process.env), appendedEnv); (() => __awaiter(void 0, void 0, void 0, function* () { try { const key = args.values.apiKey || finalEnv["DSQL_FULL_ACCESS_API_KEY"]; const database = args.values.database || finalEnv["DSQL_DB_NAME"]; + const user_id = args.values.userid || finalEnv["DSQL_API_USER_ID"] || "1"; if (args.values.debug) { (0, debug_log_1.default)({ log: args.values, @@ -94,12 +101,22 @@ const finalEnv = Object.assign(Object.assign({}, process.env), appendedEnv); throw new Error("API key is required"); if (!args.values.outfile || typeof args.values.outfile !== "string") throw new Error("Outfile are required"); + if (!user_id || typeof user_id !== "string") + throw new Error("Outfile are required"); const schema = yield __1.default.getSchema({ key, database, - user_id: 1, + user_id, }); const dbSchema = schema.payload; + if (args.values.debug) { + (0, debug_log_1.default)({ + log: schema, + label: "schema", + title: "Schema to Typedef", + addTime: true, + }); + } if (!dbSchema) throw new Error("No schema found"); const definitions = (0, db_schema_to_type_1.default)({ dbSchema }); diff --git a/dist/package-shared/actions/get-schema.d.ts b/dist/package-shared/actions/get-schema.d.ts index 9ec68c9..310591c 100644 --- a/dist/package-shared/actions/get-schema.d.ts +++ b/dist/package-shared/actions/get-schema.d.ts @@ -6,5 +6,5 @@ type GetSchemaReturn = { /** * # Get Schema for Database, table, or field * */ -export default function getSchema({ key, database, field, table, user_id, }: GetSchemaAPIParam): Promise; +export default function getSchema({ key, database, field, table, user_id, env, }: GetSchemaAPIParam): Promise; export {}; diff --git a/dist/package-shared/actions/get-schema.js b/dist/package-shared/actions/get-schema.js index 755ef67..24f8b53 100644 --- a/dist/package-shared/actions/get-schema.js +++ b/dist/package-shared/actions/get-schema.js @@ -18,8 +18,8 @@ const grab_host_names_1 = __importDefault(require("../utils/grab-host-names")); * # Get Schema for Database, table, or field * */ function getSchema(_a) { - return __awaiter(this, arguments, void 0, function* ({ key, database, field, table, user_id, }) { - const grabedHostNames = (0, grab_host_names_1.default)(); + return __awaiter(this, arguments, void 0, function* ({ key, database, field, table, user_id, env, }) { + const grabedHostNames = (0, grab_host_names_1.default)({ env }); const { host, port, scheme } = grabedHostNames; /** * Make https request diff --git a/dist/package-shared/types/index.d.ts b/dist/package-shared/types/index.d.ts index 9d9192d..903e99d 100644 --- a/dist/package-shared/types/index.d.ts +++ b/dist/package-shared/types/index.d.ts @@ -290,6 +290,9 @@ export interface GetSchemaRequestQuery { table?: string; field?: string; user_id?: string | number; + env?: { + [k: string]: string; + }; } export interface GetSchemaAPICredentialsParam { key: string; diff --git a/dist/package-shared/utils/grab-host-names.d.ts b/dist/package-shared/utils/grab-host-names.d.ts index fc3bdee..5296a8b 100644 --- a/dist/package-shared/utils/grab-host-names.d.ts +++ b/dist/package-shared/utils/grab-host-names.d.ts @@ -8,6 +8,9 @@ type GrabHostNamesReturn = { }; type Param = { userId?: string | number; + env?: { + [k: string]: string; + }; }; /** * # Grab Names For Query diff --git a/dist/package-shared/utils/grab-host-names.js b/dist/package-shared/utils/grab-host-names.js index c45f9bb..feb6da7 100644 --- a/dist/package-shared/utils/grab-host-names.js +++ b/dist/package-shared/utils/grab-host-names.js @@ -12,19 +12,21 @@ const http_1 = __importDefault(require("http")); */ function grabHostNames(param) { var _a, _b; - const scheme = process.env.DSQL_HTTP_SCHEME; - const localHost = process.env.DSQL_LOCAL_HOST; - const localHostPort = process.env.DSQL_LOCAL_HOST_PORT; - const remoteHost = ((_a = process.env.DSQL_API_REMOTE_HOST) === null || _a === void 0 ? void 0 : _a.match(/.*\..*/)) - ? process.env.DSQL_API_REMOTE_HOST + const finalEnv = (param === null || param === void 0 ? void 0 : param.env) + ? Object.assign(Object.assign({}, process.env), param.env) : process.env; + const scheme = finalEnv["DSQL_HTTP_SCHEME"]; + const localHost = finalEnv["DSQL_LOCAL_HOST"]; + const localHostPort = finalEnv["DSQL_LOCAL_HOST_PORT"]; + const remoteHost = ((_a = finalEnv["DSQL_API_REMOTE_HOST"]) === null || _a === void 0 ? void 0 : _a.match(/.*\..*/)) + ? finalEnv["DSQL_API_REMOTE_HOST"] : undefined; - const remoteHostPort = ((_b = process.env.DSQL_API_REMOTE_HOST_PORT) === null || _b === void 0 ? void 0 : _b.match(/./)) - ? process.env.DSQL_API_REMOTE_HOST_PORT + const remoteHostPort = ((_b = finalEnv["DSQL_API_REMOTE_HOST_PORT"]) === null || _b === void 0 ? void 0 : _b.match(/./)) + ? finalEnv["DSQL_API_REMOTE_HOST_PORT"] : undefined; return { host: remoteHost || localHost || "datasquirel.com", port: remoteHostPort || localHostPort || 443, scheme: (scheme === null || scheme === void 0 ? void 0 : scheme.match(/^http$/i)) ? http_1.default : https_1.default, - user_id: (param === null || param === void 0 ? void 0 : param.userId) || String(process.env.DSQL_API_USER_ID || 0), + user_id: (param === null || param === void 0 ? void 0 : param.userId) || String(finalEnv["DSQL_API_USER_ID"] || 0), }; } diff --git a/engine/schema-to-typedef.ts b/engine/schema-to-typedef.ts index b8d17ad..b7171bd 100644 --- a/engine/schema-to-typedef.ts +++ b/engine/schema-to-typedef.ts @@ -23,6 +23,11 @@ const args = parseArgs({ default: process.env.DSQL_DB_NAME, short: "d", }, + userid: { + type: "string", + default: process.env.DSQL_API_USER_ID, + short: "i", + }, outfile: { type: "string", short: "o", @@ -58,11 +63,14 @@ if (args.values.envfile && typeof args.values.envfile == "string") { } const finalEnv = { ...process.env, ...appendedEnv }; +process.env = { ...process.env, ...appendedEnv }; (async () => { try { const key = args.values.apiKey || finalEnv["DSQL_FULL_ACCESS_API_KEY"]; const database = args.values.database || finalEnv["DSQL_DB_NAME"]; + const user_id = + args.values.userid || finalEnv["DSQL_API_USER_ID"] || "1"; if (args.values.debug) { debugLog({ @@ -91,15 +99,26 @@ const finalEnv = { ...process.env, ...appendedEnv }; throw new Error("API key is required"); if (!args.values.outfile || typeof args.values.outfile !== "string") throw new Error("Outfile are required"); + if (!user_id || typeof user_id !== "string") + throw new Error("Outfile are required"); const schema = await datasquirel.getSchema({ key, database, - user_id: 1, + user_id, }); const dbSchema = schema.payload as DSQL_DatabaseSchemaType | undefined; + if (args.values.debug) { + debugLog({ + log: schema, + label: "schema", + title: "Schema to Typedef", + addTime: true, + }); + } + if (!dbSchema) throw new Error("No schema found"); const definitions = dbSchemaToType({ dbSchema }); diff --git a/package-shared/actions/get-schema.ts b/package-shared/actions/get-schema.ts index 634d066..c7d2fbb 100644 --- a/package-shared/actions/get-schema.ts +++ b/package-shared/actions/get-schema.ts @@ -25,8 +25,9 @@ export default async function getSchema({ field, table, user_id, + env, }: GetSchemaAPIParam): Promise { - const grabedHostNames = grabHostNames(); + const grabedHostNames = grabHostNames({ env }); const { host, port, scheme } = grabedHostNames; /** diff --git a/package-shared/types/index.ts b/package-shared/types/index.ts index a990d01..20e524c 100644 --- a/package-shared/types/index.ts +++ b/package-shared/types/index.ts @@ -305,6 +305,7 @@ export interface GetSchemaRequestQuery { table?: string; field?: string; user_id?: string | number; + env?: { [k: string]: string }; } export interface GetSchemaAPICredentialsParam { diff --git a/package-shared/utils/grab-host-names.ts b/package-shared/utils/grab-host-names.ts index b59b34b..43625b3 100644 --- a/package-shared/utils/grab-host-names.ts +++ b/package-shared/utils/grab-host-names.ts @@ -12,26 +12,31 @@ type GrabHostNamesReturn = { type Param = { userId?: string | number; + env?: { [k: string]: string }; }; /** * # Grab Names For Query */ export default function grabHostNames(param?: Param): GrabHostNamesReturn { - const scheme = process.env.DSQL_HTTP_SCHEME; - const localHost = process.env.DSQL_LOCAL_HOST; - const localHostPort = process.env.DSQL_LOCAL_HOST_PORT; - const remoteHost = process.env.DSQL_API_REMOTE_HOST?.match(/.*\..*/) - ? process.env.DSQL_API_REMOTE_HOST + const finalEnv = param?.env + ? { ...process.env, ...param.env } + : process.env; + + const scheme = finalEnv["DSQL_HTTP_SCHEME"]; + const localHost = finalEnv["DSQL_LOCAL_HOST"]; + const localHostPort = finalEnv["DSQL_LOCAL_HOST_PORT"]; + const remoteHost = finalEnv["DSQL_API_REMOTE_HOST"]?.match(/.*\..*/) + ? finalEnv["DSQL_API_REMOTE_HOST"] : undefined; - const remoteHostPort = process.env.DSQL_API_REMOTE_HOST_PORT?.match(/./) - ? process.env.DSQL_API_REMOTE_HOST_PORT + const remoteHostPort = finalEnv["DSQL_API_REMOTE_HOST_PORT"]?.match(/./) + ? finalEnv["DSQL_API_REMOTE_HOST_PORT"] : undefined; return { host: remoteHost || localHost || "datasquirel.com", port: remoteHostPort || localHostPort || 443, scheme: scheme?.match(/^http$/i) ? http : https, - user_id: param?.userId || String(process.env.DSQL_API_USER_ID || 0), + user_id: param?.userId || String(finalEnv["DSQL_API_USER_ID"] || 0), }; } diff --git a/package.json b/package.json index 319ff2d..c543d03 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "4.3.5", + "version": "4.3.6", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": {