New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

teseo

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

teseo - npm Package Compare versions

Comparing version 0.1.4 to 0.1.5

2

package.json
{
"name": "teseo",
"version": "0.1.4",
"version": "0.1.5",
"description": "Small utility that helps to find a way out of a relational db dependency labyrinth",

@@ -5,0 +5,0 @@ "keywords": [

@@ -30,2 +30,14 @@ const chumpi = require('chumpi');

}
if (Array.isArray(_source)) {
// Get next props items
return _source.map((s) => {
if (s[props[0]]) {
return s[props[0]];
}
return s;
});
}
if (!_source) {
return _source;
}
return retrieve(_source, props);

@@ -53,2 +65,4 @@ };

const execute = (tables, master = 'master', name = 'name') => {
console.info(`Schema to sort has ${tables.length} tables`);
const analyzed = analyzer(tables, name, master);

@@ -61,3 +75,3 @@ chumpi.validation.enforce(analyzed, schema);

if (sorted.length === tables.length) {
return { order: sorted };
return tables;
}

@@ -78,4 +92,17 @@

}
console.info(`Sorted schema has ${sorted.length} tables`);
return { order: sorted };
// Return tables content in the sort order
const sortedSchema = sorted.reduce((acc, table) => {
// need to loop trough tables and compare the name string against table
// if it matches, then I push the whole tables instance to acc
for (const t of tables) {
if (table === get(t, name, { mandatory: true })) {
acc.push(t);
}
}
return acc;
}, []);
return sortedSchema;
};

@@ -82,0 +109,0 @@

@@ -10,5 +10,5 @@ const path = require('path');

describe('teseo basic cases suite', () => {
describe('cli basic cases suite', () => {
it('Parent with one child', async () => {
const expected = { order: ['master', 'detail'] };
const expected = [{ name: 'master' }, { name: 'detail', master: ['master'] }];
const dir = path.resolve(__dirname, '01');

@@ -19,7 +19,7 @@ const input = ['node', 'teseo', '-d', dir, '-f', 'yaml'];

const conv = await execute('parse', 'yaml', x);
assert.deepEqual(conv[0], expected);
assert.deepEqual(conv[0], expected[0]);
});
it('Parent with more than one child', async () => {
const expected = { order: ['master', 'detail', 'detail2'] };
const expected = [{ name: 'master' }, { name: 'detail', master: ['master'] }, { name: 'detail2', master: ['master'] }];
const dir = path.resolve(__dirname, '02');

@@ -30,7 +30,7 @@ const input = ['node', 'teseo', '-d', dir, '-f', 'yaml'];

const conv = await execute('parse', 'yaml', x);
assert.deepEqual(conv[0], expected);
assert.deepEqual(conv[0], expected[0]);
});
it('Master with one child and grandchild', async () => {
const expected = { order: ['master', 'detail', 'detail2'] };
const expected = [{ name: 'master' }, { name: 'detail', master: ['master'] }, { name: 'detail2', master: ['detai l'] }];
const dir = path.resolve(__dirname, '03');

@@ -41,7 +41,7 @@ const input = ['node', 'teseo', '-d', dir, '-f', 'yaml'];

const conv = await execute('parse', 'yaml', x);
assert.deepEqual(conv[0], expected);
assert.deepEqual(conv[0], expected[0]);
});
it('Detail: Master; Detail2: Detail; Detail3: Detail, Detail2; Detail4: master, detail3', async () => {
const expected = { order: ['master', 'detail', 'detail2', 'detail3', 'detail4'] };
const expected = [{ name: 'master' }, { name: 'detail', master: ['master'] }, { name: 'detail2', master: ['detail'] }, { name: 'detail3', master: ['detail', 'detail2'] }, { name: 'detail4', master: ['master', 'detail3'] }];
const dir = path.resolve(__dirname, '04');

@@ -52,3 +52,3 @@ const input = ['node', 'teseo', '-d', dir, '-f', 'yaml'];

const conv = await execute('parse', 'yaml', x);
assert.deepEqual(conv[0], expected);
assert.deepEqual(conv[0], expected[0]);
});

@@ -55,0 +55,0 @@

@@ -6,32 +6,32 @@ const path = require('path');

describe('teseo basic cases suite', () => {
describe('main basic cases suite', () => {
const yaml = 'yaml';
it('Parent with one child', async () => {
const expected = ['master', 'detail'];
const expected = [{ name: 'master' }, { name: 'detail', master: ['master'] }];
const dir = path.resolve(__dirname, '01');
const actual = await main({ dir, format: yaml });
assert.deepEqual(actual.order, expected);
assert.deepEqual(actual, expected);
});
it('Parent with more than one child', async () => {
const expected = ['master', 'detail', 'detail2'];
const expected = [{ name: 'master' }, { name: 'detail', master: ['master'] }, { name: 'detail2', master: ['master'] }];
const dir = path.resolve(__dirname, '02');
const actual = await main({ dir, format: yaml });
assert.deepEqual(actual.order, expected);
assert.deepEqual(actual, expected);
});
it('Master with one child and grandchild', async () => {
const expected = ['master', 'detail', 'detail2'];
const expected = [{ name: 'master' }, { name: 'detail', master: ['master'] }, { name: 'detail2', master: ['detail'] }];
const dir = path.resolve(__dirname, '03');
const actual = await main({ dir, format: yaml });
assert.deepEqual(actual.order, expected);
assert.deepEqual(actual, expected);
});
it('Detail: Master; Detail2: Detail; Detail3: Detail, Detail2; Detail4: master, detail3', async () => {
const expected = ['master', 'detail', 'detail2', 'detail3', 'detail4'];
const expected = [{ name: 'master' }, { name: 'detail', master: ['master'] }, { name: 'detail2', master: ['detail'] }, { name: 'detail3', master: ['detail', 'detail2'] }, { name: 'detail4', master: ['master', 'detail3'] }];
const dir = path.resolve(__dirname, '04');
const actual = await main({ dir, format: yaml });
assert.deepEqual(actual.order, expected);
assert.deepEqual(actual, expected);
});
});

@@ -16,3 +16,3 @@ const { describe, it } = require('mocha');

const tables = [{ name: 'master' }, { name: 'neo', master: ['detail'] }, { name: 'detail', master: ['master'] }];
const expected = { order: ['master', 'detail', 'neo'] };
const expected = [{ name: 'master' }, { name: 'detail', master: ['master'] }, { name: 'neo', master: ['detail'] }];
const actual = teseo.sort(tables);

@@ -24,5 +24,5 @@ assert.deepEqual(actual, expected);

const tables = [{ name: 'master' }, { name: 'neo' }, { name: 'detail' }];
const expected = { order: ['master', 'detail', 'neo'] };
const actual = teseo.sort(tables);
assert.sameMembers(actual.order, expected.order);
const expected = [{ name: 'master' }, { name: 'neo' }, { name: 'detail' }];
assert.deepEqual(actual, expected);
});

@@ -29,0 +29,0 @@

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