@askdb/mysql 0.1.0-beta.10 → 0.1.0-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/exec/mysql.d.ts.map +1 -1
- package/dist/exec/mysql.js +38 -2
- package/dist/exec/mysql.js.map +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -18,6 +18,13 @@ pnpm add @askdb/core @askdb/introspect @askdb/mysql
|
|
|
18
18
|
pnpm add mysql2
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
+
For one-off CLI introspection, include the driver in the same ephemeral command:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pnpm dlx -p askdb -p mysql2 askdb introspect --engine mysql --url "$MYSQL_URL"
|
|
25
|
+
npx -p askdb -p mysql2 askdb introspect --engine mysql --url "$MYSQL_URL"
|
|
26
|
+
```
|
|
27
|
+
|
|
21
28
|
## Usage
|
|
22
29
|
|
|
23
30
|
### NL→SQL
|
|
@@ -57,4 +64,4 @@ Tables, views, columns (MySQL-native type strings), primary keys, unique constra
|
|
|
57
64
|
|
|
58
65
|
## License
|
|
59
66
|
|
|
60
|
-
Apache-2.0
|
|
67
|
+
Apache-2.0 © [Yahya Gilany](https://yahyagilany.io). See [LICENSE](./LICENSE) and [NOTICE](./NOTICE).
|
package/dist/exec/mysql.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/exec/mysql.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/exec/mysql.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKhF,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAwDhF,8EAA8E;AAC9E,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AA8BD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,gBAAgB,EAAE,MAAM,GAAG,kBAAkB,CAE1F"}
|
package/dist/exec/mysql.js
CHANGED
|
@@ -1,16 +1,52 @@
|
|
|
1
1
|
import { AskDbError } from "@askdb/core";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { pathToFileURL } from "node:url";
|
|
2
5
|
/**
|
|
3
6
|
* Lazily resolve the optional `mysql2` peer dependency. Mirrors the pattern in
|
|
4
7
|
* `@askdb/postgres` so consumers with a custom `CatalogQueryRunner` can use
|
|
5
8
|
* `@askdb/mysql` without installing `mysql2`.
|
|
6
9
|
*/
|
|
7
10
|
let mysql2ModulePromise;
|
|
11
|
+
function isModuleResolutionFailure(cause, packageName) {
|
|
12
|
+
if (!(cause instanceof Error))
|
|
13
|
+
return false;
|
|
14
|
+
const nestedCause = cause.cause;
|
|
15
|
+
if (nestedCause && nestedCause !== cause && isModuleResolutionFailure(nestedCause, packageName)) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
const code = cause.code;
|
|
19
|
+
if (code !== "ERR_MODULE_NOT_FOUND" && code !== "MODULE_NOT_FOUND")
|
|
20
|
+
return false;
|
|
21
|
+
return cause.message.includes(packageName);
|
|
22
|
+
}
|
|
23
|
+
async function importOptionalMysql2() {
|
|
24
|
+
try {
|
|
25
|
+
return await import("mysql2/promise");
|
|
26
|
+
}
|
|
27
|
+
catch (cause) {
|
|
28
|
+
if (!isModuleResolutionFailure(cause, "mysql2"))
|
|
29
|
+
throw cause;
|
|
30
|
+
const projectRequire = createRequire(join(process.cwd(), "package.json"));
|
|
31
|
+
try {
|
|
32
|
+
const resolved = projectRequire.resolve("mysql2/promise");
|
|
33
|
+
return (await import(pathToFileURL(resolved).href));
|
|
34
|
+
}
|
|
35
|
+
catch (projectCause) {
|
|
36
|
+
if (!isModuleResolutionFailure(projectCause, "mysql2"))
|
|
37
|
+
throw projectCause;
|
|
38
|
+
throw new AggregateError([cause, projectCause], "Unable to resolve optional `mysql2` peer dependency");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
8
42
|
async function loadMysql2OrThrow() {
|
|
9
43
|
if (!mysql2ModulePromise) {
|
|
10
|
-
mysql2ModulePromise =
|
|
44
|
+
mysql2ModulePromise = importOptionalMysql2().catch((cause) => {
|
|
11
45
|
mysql2ModulePromise = undefined;
|
|
12
46
|
throw new AskDbError("The built-in MySQL catalog query runner requires the optional `mysql2` peer dependency. " +
|
|
13
|
-
"Install it (e.g. `pnpm add mysql2`) or
|
|
47
|
+
"Install it in your project (e.g. `pnpm add mysql2`) or include it in the same one-off command " +
|
|
48
|
+
"(e.g. `pnpm dlx -p askdb -p mysql2 askdb ...` or `npx -p askdb -p mysql2 askdb ...`). " +
|
|
49
|
+
"You can also pass a custom catalog query runner to the MySQL connector.", cause);
|
|
14
50
|
});
|
|
15
51
|
}
|
|
16
52
|
return mysql2ModulePromise;
|
package/dist/exec/mysql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/exec/mysql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/exec/mysql.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askdb/mysql",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.12",
|
|
4
4
|
"description": "AskDB MySQL integration: introspection connector via information_schema and a mysql2-backed catalog query runner. Pairs with @askdb/core's MYSQL_DIALECT.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"askdb",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"node": ">=20"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@askdb/
|
|
46
|
-
"@askdb/introspect": "0.3.0-beta.
|
|
47
|
-
"@askdb/
|
|
45
|
+
"@askdb/core": "1.0.0-beta.26",
|
|
46
|
+
"@askdb/introspect": "0.3.0-beta.12",
|
|
47
|
+
"@askdb/connectors": "0.1.0-beta.3"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"mysql2": ">=3"
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"mysql2": "^3.
|
|
59
|
-
"typescript": "^
|
|
60
|
-
"vitest": "^
|
|
58
|
+
"mysql2": "^3.22.5",
|
|
59
|
+
"typescript": "^6.0.3",
|
|
60
|
+
"vitest": "^4.1.8"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"build": "tsc -p tsconfig.build.json",
|