Socket
Socket
Sign inDemoInstall

@dbpath/dal

Package Overview
Dependencies
Maintainers
1
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dbpath/dal - npm Package Compare versions

Comparing version 0.2.4 to 0.2.6

1

dist/index.d.ts
export * from './src/dal';
export * from './src/dal.fixture';
export * from './src/prettyprint';
export * from './src/validator';

@@ -18,4 +18,3 @@ "use strict";

__exportStar(require("./src/dal"), exports);
__exportStar(require("./src/dal.fixture"), exports);
__exportStar(require("./src/prettyprint"), exports);
__exportStar(require("./src/validator"), exports);

11

dist/src/dal.d.ts

@@ -23,5 +23,11 @@ import { NameAnd } from "@dbpath/utils";

}
export interface TableMetaData {
export interface NameAndType {
name: string;
type: string;
}
export interface HasPk {
pk: NameAndType[];
}
export interface TableMetaData extends HasPk {
columns: NameAnd<ColumnMetaData>;
pk: string[];
fk: NameAnd<ForeignKeyMetaData>;

@@ -56,2 +62,3 @@ }

}
export declare function useDal<T>(dal: Dal, fn: (d: Dal) => T): T;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useDal = void 0;
function useDal(dal, fn) {
try {
return fn(dal);
}
finally {
dal.close();
}
}
exports.useDal = useDal;
import { Summary } from "@dbpath/config";
import { DatabaseMetaData } from "./dal";
import { ErrorsAnd } from "@dbpath/utils";
export interface TwoIds {
fromId: string;
toId: string;
}
export type ValidateTableNameFn = (tableName: string, fullTableName?: string) => string[];
import { TwoIds } from "@dbpath/types";
export type ValidateTableNameFn = (tableName: string) => string[];
export type ValidateFieldsFn = (tableName: string, fields: string[]) => string[];

@@ -19,4 +16,6 @@ export type ValidateLinkFn = (fromTableName: string, toTableName: string, idEquals: TwoIds[]) => string[];

useIdsOrSingleFkLinkOrError(fromTableName: string, toTableName: string, idEquals: TwoIds[]): TwoIds[];
actualTableName(tableName: string): string;
}
export declare const PathValidatorAlwaysOK: PathValidator;
export declare function fullTableName(summary: Summary, tableName: string): string;
export declare const validateTableName: (summary: Summary, m: DatabaseMetaData) => ValidateTableNameFn;

@@ -23,0 +22,0 @@ export declare const validateFields: (summary: Summary, m: DatabaseMetaData) => ValidateFieldsFn;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DalPathValidator = exports.validateLinks = exports.useIdsOrSingleFkLinkOrError = exports.getSingleFkLink = exports.validateFields = exports.validateTableName = exports.PathValidatorAlwaysOK = void 0;
exports.DalPathValidator = exports.validateLinks = exports.useIdsOrSingleFkLinkOrError = exports.getSingleFkLink = exports.validateFields = exports.validateTableName = exports.fullTableName = exports.PathValidatorAlwaysOK = void 0;
const utils_1 = require("@dbpath/utils");

@@ -11,3 +11,4 @@ exports.PathValidatorAlwaysOK = {

return idEquals;
}
},
actualTableName: t => t
};

@@ -20,9 +21,10 @@ function checkFullTableName(m, tableName) {

}
function theTableName(summary, tableName, fullTableName) {
function fullTableName(summary, tableName) {
const foundInSummary = summary.tables[tableName];
const nameToCheck = fullTableName ? fullTableName : foundInSummary ? foundInSummary.tableName : tableName;
const nameToCheck = foundInSummary ? foundInSummary.tableName : tableName;
return nameToCheck;
}
exports.fullTableName = fullTableName;
function getTableMetaData(summary, m, tableName) {
const nameToCheck = theTableName(summary, tableName, undefined);
const nameToCheck = fullTableName(summary, tableName);
const foundInMeta = m.tables[nameToCheck];

@@ -34,4 +36,4 @@ if (!foundInMeta)

const validateTableName = (summary, m) => {
return (tableName, fullTableName) => {
const nameToCheck = theTableName(summary, tableName, fullTableName);
return (tableName) => {
const nameToCheck = fullTableName(summary, tableName);
return checkFullTableName(m, nameToCheck);

@@ -105,5 +107,6 @@ };

validateLink: (0, exports.validateLinks)(summary, m),
useIdsOrSingleFkLinkOrError: (0, exports.useIdsOrSingleFkLinkOrError)(summary, m)
useIdsOrSingleFkLinkOrError: (0, exports.useIdsOrSingleFkLinkOrError)(summary, m),
actualTableName: t => fullTableName(summary, t)
};
}
exports.DalPathValidator = DalPathValidator;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const validator_1 = require("./validator");
const dal_fixture_1 = require("./dal.fixture");
const fixtures_1 = require("@dbpath/fixtures");
describe("validators", () => {
describe("tableNameValidator", () => {
it("should accept tables that are valid", () => {
expect((0, validator_1.validateTableName)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver")).toEqual([]);
expect((0, validator_1.validateTableName)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver", "drivertable")).toEqual([]);
expect((0, validator_1.validateTableName)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("drivertable")).toEqual([]);
expect((0, validator_1.validateTableName)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("mission")).toEqual([]);
expect((0, validator_1.validateTableName)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("notin", "drivertable")).toEqual([]);
expect((0, validator_1.validateTableName)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("driver")).toEqual([]);
expect((0, validator_1.validateTableName)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("drivertable")).toEqual([]);
expect((0, validator_1.validateTableName)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("mission")).toEqual([]);
});
it("should reject table names that are not in summary or metadata", () => {
expect((0, validator_1.validateTableName)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("notin")).toEqual([
expect((0, validator_1.validateTableName)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("notin")).toEqual([
"Table notin is not known. Legal tables",
" driver_aud,drivertable,mission,mission_aud"
]);
expect((0, validator_1.validateTableName)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver", "notin")).toEqual([
"Table notin is not known. Legal tables",
" driver_aud,drivertable,mission,mission_aud"
]);
expect((0, validator_1.validateTableName)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("notin", "notin")).toEqual([
"Table notin is not known. Legal tables",
" driver_aud,drivertable,mission,mission_aud"
]);
});

@@ -31,7 +21,7 @@ });

it("should accept fields that are valid", () => {
expect((0, validator_1.validateFields)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver", ["driverid", "name"])).toEqual([]);
expect((0, validator_1.validateFields)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("drivertable", ["driverid", "name"])).toEqual([]);
expect((0, validator_1.validateFields)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("driver", ["driverid", "name"])).toEqual([]);
expect((0, validator_1.validateFields)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("drivertable", ["driverid", "name"])).toEqual([]);
});
it("should reject fields that are invalid", () => {
expect((0, validator_1.validateFields)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver", ["driverid", "name", "notIn"])).toEqual([
expect((0, validator_1.validateFields)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("driver", ["driverid", "name", "notIn"])).toEqual([
"Fields notIn are not known for table driver. Legal fields",

@@ -44,4 +34,4 @@ " driverid,name"

it("should accept links that are valid", () => {
expect((0, validator_1.validateLinks)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver", "mission", [{ fromId: 'driverid', toId: 'driverid' }])).toEqual([]);
expect((0, validator_1.validateLinks)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver", "mission", [{ fromId: 'driverid', toId: 'id' }, { fromId: 'driverid', toId: 'driverid' }])).toEqual([]);
expect((0, validator_1.validateLinks)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("driver", "mission", [{ fromId: 'driverid', toId: 'driverid' }])).toEqual([]);
expect((0, validator_1.validateLinks)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("driver", "mission", [{ fromId: 'driverid', toId: 'id' }, { fromId: 'driverid', toId: 'driverid' }])).toEqual([]);
});

@@ -51,7 +41,7 @@ });

it("should accept links that follow a fk", () => {
expect((0, validator_1.validateLinks)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver", "mission", [])).toEqual([]);
expect((0, validator_1.validateLinks)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver", "driver_aud", [])).toEqual([]);
expect((0, validator_1.validateLinks)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("driver", "mission", [])).toEqual([]);
expect((0, validator_1.validateLinks)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("driver", "driver_aud", [])).toEqual([]);
});
it("should reject links that do not follow a fk driver to driver", () => {
expect((0, validator_1.validateLinks)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver", "driver", [])).toEqual([
expect((0, validator_1.validateLinks)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("driver", "driver", [])).toEqual([
"No foreign key from driver to driver. Valid links are ",

@@ -63,3 +53,3 @@ " driver.(driverid,id)driver_aud",

it("should reject links that do not follow a fk driver to mission_aud", () => {
expect((0, validator_1.validateLinks)(dal_fixture_1.sampleSummary, dal_fixture_1.sampleMeta)("driver", "mission_aud", [])).toEqual([
expect((0, validator_1.validateLinks)(fixtures_1.sampleSummary, fixtures_1.sampleMeta)("driver", "mission_aud", [])).toEqual([
"No foreign key from driver to mission_aud. Valid links are ",

@@ -66,0 +56,0 @@ " driver.(driverid,id)driver_aud",

{
"name": "@dbpath/dal",
"description": "",
"version": "0.2.4",
"version": "0.2.6",
"main": "dist/index",

@@ -20,3 +20,4 @@ "types": "dist/index",

"dependencies": {
"@dbpath/config": "0.2.4"
"@dbpath/config": "0.2.6",
"@dbpath/fixtures": "0.2.6"
},

@@ -23,0 +24,0 @@ "devDependencies": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc