@ -1,31 +1,36 @@
var fs = require ( 'fs' ) ;
var path = require ( 'path' ) ;
var marked = require ( 'marked' ) ;
'use strict' ;
var doc = path . resolve ( __ dirname , '..' , '..' , 'doc' , 'api' , 'addons.markdown' ) ;
var verifyDir = path . resolve ( __ dirname , '..' , '..' , 'test' , 'addons' ) ;
const fs = require ( 'fs' ) ;
const path = require ( 'path' ) ;
const marked = require ( 'marked' ) ;
var contents = fs . readFileSync ( doc ) . toString ( ) ;
const doc = path . resolve ( __ dirname , '..' , '..' , 'doc' , 'api' , 'addons.markdown' ) ;
const verifyDir = path . resolve ( __ dirname , '..' , '..' , 'test' , 'addons' ) ;
var tokens = marked . lexer ( contents , { } ) ;
var files = null ;
var id = 0 ;
const contents = fs . readFileSync ( doc ) . toString ( ) ;
let tokens = marked . lexer ( contents , { } ) ;
let files = null ;
let blockName ;
let id = 0 ;
// Just to make sure that all examples will be processed
tokens . push ( { type : 'heading' } ) ;
var oldDirs = fs . readdirSync ( verifyDir ) ;
oldDirs = oldDirs . filter ( function ( dir ) {
return /^doc- / . test ( dir ) ;
return /^\d{2}_ / . test ( dir ) ;
} ) . map ( function ( dir ) {
return path . resolve ( verifyDir , dir ) ;
} ) ;
for ( var i = 0 ; i < tokens . length ; i ++ ) {
var token = tokens [ i ] ;
if ( token . type === 'heading' ) {
if ( token . type === 'heading' && token . text ) {
blockName = token . text
if ( files && Object . keys ( files ) . length !== 0 ) {
verifyFiles ( files ,
blockName ,
console . log . bind ( null , 'wrote' ) ,
function ( err ) { if ( err ) throw err ; } ) ;
}
@ -48,15 +53,16 @@ function once(fn) {
} ;
}
function verifyFiles ( files , onprogress , ondone ) {
var dir = path . resolve ( verifyDir , 'doc-' + id ++ ) ;
function verifyFiles ( files , blockName , onprogress , ondone ) {
// must have a .cc and a .js to be a valid test
if ( ! Object . keys ( files ) . some ( ( name ) => / \ . cc$ / . test ( name ) ) ||
! Object . keys ( files ) . some ( ( name ) => / \ . js$ / . test ( name ) ) ) {
return ;
}
blockName = blockName . toLowerCase ( ) . replace ( /\s/g , '_' ) . replace ( /[^a-z\d_]/g , '' )
let dir = path . resolve ( verifyDir , ` ${ ( ++ id < 10 ? '0' : '' ) + id } _ ${ blockName } ` ) ;
files = Object . keys ( files ) . map ( function ( name ) {
return {
path : path . resolve ( dir , name ) ,