@forestadmin/datasource-sql 1.0.1-alpha.1 → 1.1.0
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/dist/index.d.ts +7 -5
- package/dist/index.js +14 -12
- package/dist/types.d.ts +3 -0
- package/dist/types.js +3 -0
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { DataSourceFactory, Logger } from '@forestadmin/datasource-toolkit';
|
|
2
1
|
import { Sequelize } from 'sequelize';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export declare function
|
|
2
|
+
import type { DataSourceFactory, Logger } from '@forestadmin/datasource-toolkit';
|
|
3
|
+
import type { ConnectionOptions } from './types';
|
|
4
|
+
import type { Table } from './introspection/types';
|
|
5
|
+
export declare function introspect(uriOrOptions: ConnectionOptions, logger?: Logger): Promise<Table[]>;
|
|
6
|
+
export declare function buildSequelizeInstance(uriOrOptions: ConnectionOptions, logger: Logger, introspection?: Table[]): Promise<Sequelize>;
|
|
7
|
+
export declare function createSqlDataSource(uriOrOptions: ConnectionOptions, options?: {
|
|
7
8
|
introspection: Table[];
|
|
8
9
|
}): DataSourceFactory;
|
|
10
|
+
export type { ConnectionOptions, Table };
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -9,33 +9,35 @@ const datasource_sequelize_1 = require("@forestadmin/datasource-sequelize");
|
|
|
9
9
|
const introspector_1 = __importDefault(require("./introspection/introspector"));
|
|
10
10
|
const model_1 = __importDefault(require("./orm-builder/model"));
|
|
11
11
|
const relations_1 = __importDefault(require("./orm-builder/relations"));
|
|
12
|
-
function createEmptySequelize(
|
|
13
|
-
if (!/.*:\/\//g.test(connectionUri))
|
|
14
|
-
throw new Error(`Connection Uri "${connectionUri}" provided to SQL data source is not valid.` +
|
|
15
|
-
' Should be <dialect>://<connection>.');
|
|
12
|
+
function createEmptySequelize(uriOrOptions, logger) {
|
|
16
13
|
const logging = (sql) => logger?.('Debug', sql.substring(sql.indexOf(':') + 2));
|
|
17
|
-
|
|
14
|
+
if (typeof uriOrOptions === 'string' && !/.*:\/\//g.test(uriOrOptions))
|
|
15
|
+
throw new Error(`Connection Uri "${uriOrOptions}" provided to SQL data source is not valid.` +
|
|
16
|
+
' Should be <dialect>://<connection>.');
|
|
17
|
+
return typeof uriOrOptions === 'string'
|
|
18
|
+
? new sequelize_1.Sequelize(uriOrOptions, { logging })
|
|
19
|
+
: new sequelize_1.Sequelize({ ...uriOrOptions, logging });
|
|
18
20
|
}
|
|
19
|
-
async function introspect(
|
|
20
|
-
const sequelize = createEmptySequelize(
|
|
21
|
+
async function introspect(uriOrOptions, logger) {
|
|
22
|
+
const sequelize = createEmptySequelize(uriOrOptions, logger);
|
|
21
23
|
const tables = await introspector_1.default.introspect(sequelize, logger);
|
|
22
24
|
sequelize.close();
|
|
23
25
|
return tables;
|
|
24
26
|
}
|
|
25
27
|
exports.introspect = introspect;
|
|
26
|
-
async function buildSequelizeInstance(
|
|
27
|
-
const sequelize = createEmptySequelize(
|
|
28
|
+
async function buildSequelizeInstance(uriOrOptions, logger, introspection) {
|
|
29
|
+
const sequelize = createEmptySequelize(uriOrOptions, logger);
|
|
28
30
|
const tables = introspection ?? (await introspector_1.default.introspect(sequelize, logger));
|
|
29
31
|
model_1.default.defineModels(sequelize, logger, tables);
|
|
30
32
|
relations_1.default.defineRelations(sequelize, logger, tables);
|
|
31
33
|
return sequelize;
|
|
32
34
|
}
|
|
33
35
|
exports.buildSequelizeInstance = buildSequelizeInstance;
|
|
34
|
-
function createSqlDataSource(
|
|
36
|
+
function createSqlDataSource(uriOrOptions, options) {
|
|
35
37
|
return async (logger) => {
|
|
36
|
-
const sequelize = await buildSequelizeInstance(
|
|
38
|
+
const sequelize = await buildSequelizeInstance(uriOrOptions, logger, options?.introspection);
|
|
37
39
|
return new datasource_sequelize_1.SequelizeDataSource(sequelize, logger);
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
42
|
exports.createSqlDataSource = createSqlDataSource;
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUNBQXNDO0FBQ3RDLDRFQUF3RTtBQUd4RSxnRkFBd0Q7QUFDeEQsZ0VBQStDO0FBQy9DLHdFQUFzRDtBQUl0RCxTQUFTLG9CQUFvQixDQUFDLFlBQStCLEVBQUUsTUFBYztJQUMzRSxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXhGLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FDYixtQkFBbUIsWUFBWSw2Q0FBNkM7WUFDMUUsc0NBQXNDLENBQ3pDLENBQUM7SUFFSixPQUFPLE9BQU8sWUFBWSxLQUFLLFFBQVE7UUFDckMsQ0FBQyxDQUFDLElBQUkscUJBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMxQyxDQUFDLENBQUMsSUFBSSxxQkFBUyxDQUFDLEVBQUUsR0FBRyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRU0sS0FBSyxVQUFVLFVBQVUsQ0FDOUIsWUFBK0IsRUFDL0IsTUFBZTtJQUVmLE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxNQUFNLE1BQU0sR0FBRyxNQUFNLHNCQUFZLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFbEIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQVRELGdDQVNDO0FBRU0sS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxZQUErQixFQUMvQixNQUFjLEVBQ2QsYUFBdUI7SUFFdkIsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdELE1BQU0sTUFBTSxHQUFHLGFBQWEsSUFBSSxDQUFDLE1BQU0sc0JBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFbkYsZUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELG1CQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFM0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQVpELHdEQVlDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQ2pDLFlBQStCLEVBQy9CLE9BQW9DO0lBRXBDLE9BQU8sS0FBSyxFQUFFLE1BQWMsRUFBRSxFQUFFO1FBQzlCLE1BQU0sU0FBUyxHQUFHLE1BQU0sc0JBQXNCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFN0YsT0FBTyxJQUFJLDBDQUFtQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBVEQsa0RBU0MifQ==
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Options } from 'sequelize/types';
|
|
2
|
+
export declare type ConnectionOptions = string | Pick<Options, 'database' | 'dialect' | 'dialectModule' | 'dialectModulePath' | 'dialectOptions' | 'host' | 'minifyAliases' | 'native' | 'password' | 'pool' | 'port' | 'protocol' | 'replication' | 'schema' | 'ssl' | 'storage' | 'username'>;
|
|
3
|
+
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/datasource-sql",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"directory": "packages/datasource-sql"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@forestadmin/datasource-sequelize": "1.0.
|
|
16
|
-
"@forestadmin/datasource-toolkit": "1.0.
|
|
15
|
+
"@forestadmin/datasource-sequelize": "1.0.0",
|
|
16
|
+
"@forestadmin/datasource-toolkit": "1.0.0",
|
|
17
17
|
"pluralize": "^8.0.0",
|
|
18
18
|
"sequelize": "6.21.3"
|
|
19
19
|
},
|