Skip to content

Commit

Permalink
feat(bootstrap): start new ddf functionality
Browse files Browse the repository at this point in the history
also provided ddf root folder validation

Closes #10
Closes #9
  • Loading branch information
buchslava committed Mar 3, 2016
1 parent 451a88d commit e3dbd13
Show file tree
Hide file tree
Showing 54 changed files with 313 additions and 1,174 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
.idea
node_modules
npm-debug.log
coverage
5 changes: 5 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
language: node_js
node_js:
- 4.2.6
script:
- npm run-script test-travis
103 changes: 0 additions & 103 deletions ddf-schema/ddf-dimensions.schema.js

This file was deleted.

4 changes: 0 additions & 4 deletions ddf-schema/ddf-index.schema.js

This file was deleted.

9 changes: 0 additions & 9 deletions ddf-schema/ddf-measure-values.schema.js

This file was deleted.

117 changes: 0 additions & 117 deletions ddf-schema/ddf-measures.schema.js

This file was deleted.

5 changes: 0 additions & 5 deletions ddf-utils/rx-read-dimension.js

This file was deleted.

5 changes: 0 additions & 5 deletions ddf-utils/rx-read-index.js

This file was deleted.

5 changes: 0 additions & 5 deletions ddf-utils/rx-read-measures.js

This file was deleted.

84 changes: 9 additions & 75 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,78 +1,12 @@
#! /usr/bin/env node
'use strict';

// from args
var userArgs = process.argv.slice(2);
let folder = userArgs[0] || process.cwd();

const fs = require('fs');
const path = require('path');
const rx = require('rxjs');
require('console.table');

const errorCodes = require('./lib/ddf-error-codes');
const logger = require('./utils/logger');

const normalizedPath = require('./utils/path-normilize')(folder);

if (!require('./utils/path-exists-sync')(normalizedPath)) {
logger.log(errorCodes.err_folder_not_found.message(folder));
return;
}

const files$ = require('./utils/rx-recursive-readdir')(normalizedPath);

const folders$ = files$
.filter(file => fs.lstatSync(file).isDirectory());

const ddfFolders$ = folders$
.filter(folder => require('./utils/path-is-ddf-folder-sync')(folder));

// validate list of ddf folders
ddfFolders$.count()
.combineLatest([ddfFolders$.toArray(), folders$.count()],
(ddfFoldersCount, ddfFolders, foldersCount)=> {
return {ddfFolders, ddfFoldersCount, foldersCount};
})
.subscribe(res => {
const isFolderValid = require('./lib/ddf-root-folder.validator.js')
(folder, res.ddfFoldersCount, res.foldersCount);

if (!isFolderValid) {
return;
}

const plural = res.ddfFoldersCount === 1 ? '' : 's';
logger.log(`Found ${res.ddfFoldersCount} DDF folder${plural}, processing...:`);
logger.log(res.ddfFolders);

return validateDdfFolder(ddfFolders$);
}, err => console.error(err));

// validate each ddfFolder
function validateDdfFolder(ddfFolders$) {
ddfFolders$
.do(x=>console.log('Validating ddf folder', x))
.map(folderPath => {
// validate dimensions file
const dimensionsFile$ = require('./ddf-utils/rx-read-dimension')(folderPath);
const isDimensionsValid = require('./lib/ddf-dimensions.validator')(folderPath, dimensionsFile$);

// validate measures file
const measuresFile$ = require('./ddf-utils/rx-read-measures')(folderPath);
const isMeasuresValid = require('./lib/ddf-measures.validator')(folderPath, measuresFile$);

// validate dimensions&measures unique ids
const isIdUnique = require('./lib/ddf-dimensions-and-measures-unique-id.validator.js')
(folderPath, dimensionsFile$, measuresFile$);

return isDimensionsValid
.combineLatest([isMeasuresValid, isIdUnique], (a, b, c)=> {
const d = a.concat(b).concat(c);
console.table(d);
return d;
});
})
//.do(x=>console.log(x))
.subscribe(x=>x.subscribe(), x=>console.error(x.stack));
}
const utils = require('./lib/utils');
const DDFRoot = require('./lib/files/root');
const ddfRoot = new DDFRoot(utils.ddfRootFolder);
ddfRoot.check(() => {

ddfRoot.getDdfDirectoriesDescriptors().forEach(d => {
console.log(`${d.dir} ${d.isEmpty} ${d.isDDF}`);
});
});
3 changes: 0 additions & 3 deletions lib/ddf-concept.validator.js

This file was deleted.

Loading

0 comments on commit e3dbd13

Please sign in to comment.