[no publish] progressing dot parser

This commit is contained in:
2020-02-20 15:22:33 +01:00
parent 8d665a3576
commit 74fed4363b
4 changed files with 225 additions and 8 deletions

102
test/db_structure.dot Normal file
View File

@ -0,0 +1,102 @@
digraph {
node [shape=box,margin=0,height=0]
edge [arrowhead=open,style=dashed]
rankdir="RL";
users [label=<
<table border="0" cellborder="1" cellspacing="0">
<tr><td border="2"><b>users</b></td></tr>
<tr><td port="id">🔑 id</td></tr>
<tr><td port="name">★ name ''</td></tr>
<tr><td port="email">★ email ''</td></tr>
<tr><td port="password">password ''</td></tr>
<tr><td port="salt">salt ''</td></tr>
<tr><td port="deleted">deleted ✓</td></tr>
</table>
>]
applications [label=<
<table border="0" cellborder="1" cellspacing="0">
<tr><td border="2"><b>applications</b></td></tr>
<tr><td port="id">🔑 id</td></tr>
<tr><td port="name">name ''</td></tr>
</table>
>]
permissions [label=<
<table border="0" cellborder="1" cellspacing="0">
<tr><td border="2"><b>permissions</b></td></tr>
<tr><td port="id">🔑 id</td></tr>
<tr><td port="user_id">user_id #</td></tr>
<tr><td>create_app ✓</td></tr>
<tr><td>manage_users ✓</td></tr>
<tr><td>manage_permissions ✓</td></tr>
<tr><td>manage_apps ✓</td></tr>
<tr><td>manage_keys ✓</td></tr>
<tr><td>issue_key ✓</td></tr>
</table>
>]
user_access [label=<
<table border="0" cellborder="1" cellspacing="0">
<tr><td border="2"><b>user_access</b></td></tr>
<tr><td port="id">🔑 id</td></tr>
<tr><td port="user_id">user_id #</td></tr>
<tr><td port="app_id">app_id #</td></tr>
<tr><td port="crud">crud ''</td></tr>
</table>
>]
auth_keys [label=<
<table border="0" cellborder="1" cellspacing="0">
<tr><td border="2"><b>auth_keys</b></td></tr>
<tr><td port="id">🔑 id</td></tr>
<tr><td port="key">★ key ''</td></tr>
<tr><td port="app_id">app_id #</td></tr>
<tr><td port="read_data">read_data ✓</td></tr>
<tr><td port="hash">★ hash ''</td></tr>
<tr><td port="name">name ''</td></tr>
</table>
>]
categories [label=<
<table border="0" cellborder="1" cellspacing="0">
<tr><td border="2"><b>categories</b></td></tr>
<tr><td port="id">🔑 id</td></tr>
<tr><td port="name">★ name ''</td></tr>
<tr><td port="app_id">app_id #</td></tr>
</table>
>, shape=box, margin=0]
log [label=<
<table border="0" cellborder="1" cellspacing="0">
<tr><td border="2"><b>log</b></td></tr>
<tr><td port="id">🔑 id</td></tr>
<tr><td port="key_id">key_id #</td></tr>
<tr><td port="app_id">app_id #</td></tr>
<tr><td port="timestamp">timestamp #</td></tr>
<tr><td port="category_id">category_id #</td></tr>
</table>
>]
data [label=<
<table border="0" cellborder="1" cellspacing="0">
<tr><td border="2"><b>data</b></td></tr>
<tr><td port="id">🔑 id</td></tr>
<tr><td port="log_id">log_id #</td></tr>
<tr><td port="key">key ''</td></tr>
<tr><td port="value">value ''</td></tr>
</table>
>]
data:log_id -> log:id [color=blue]
permissions:user_id -> users:id [color=blue]
log:key_id -> auth_keys:id [color=blue]
auth_keys:app_id -> applications:id [color=blue]
user_access:user_id -> users:id [color=red]
user_access:app_id -> applications:id [color=red]
log:app_id -> applications:id [color=blue]
log:category_id -> categories:id [color=blue]
categories:app_id -> applications:id [color=blue]
}
data_key [label=key]

14
test/index.js Normal file
View File

@ -0,0 +1,14 @@
/* eslint-disable no-console */
'use strict';
const dot_parser = require ('../snippets/db/dot_parser');
/**
* test
*/
async function test () {
const data = await dot_parser.get_tables ('db_structure.dot');
for (const table of data)
console.log (dot_parser.create_table_function (table));
}
test ();