scan all used charactors from directories/files non repeatly
be useful for fontmin
can distinguish Unicode out of \u0000~\uFFFF
, charactors like: 'Ǒ'
whose code is '\u01D1'
USE ES2015
npm install charactor-scanner
const Scan = require('charactor-scanner');
const path = require('path');
Scan({
dir: [path.resolve(__dirname, './test-directory')]
}, data => console.log("Async Callback call: ", data.join()));
// Async Callback call: !,",#,$,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\,],^,_,`,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,{,|,},~,𠮷,𠮶,ノ,ン,リ,ピ,ー,ト,的,方,式,来,和,会,计,师,费
Scan({
dir: path.resolve(__dirname, './test-directory')
}).then(data => console.log("Async Promise call: ", data.join()));
// Async Promise call: !,",#,$,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\,],^,_,`,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,{,|,},~,的,方,式,来,和,会,计,师,费,𠮷,𠮶,ノ,ン,リ,ピ,ー,ト
console.log("Sync call: ", Scan({
dir: path.resolve(__dirname, './test-directory'),
sync: true,
appendAscii: false
}).join());
// Sync call: {,",a,:,𠮷,𠮶,,,b,ノ,ン,リ,ピ,ー,ト,},c,o,n,s,l,e,.,g,(,',的,方,式,来,和,会,计,师,费,),;,<,!,d,t,y,p,h,m,>,r,=,U,T,F,-,8,v,i,w,u,1,0,x,q,X,A,C,D,/,*,k,#,f
const Scan = require('charactor-scanner');
Scan(options, callback)
When options.sync
is true
, the function directly return the result
When options.sync
is false
, and callback
have NOT passed, the function return a Promise
object, and the result will be resolved: .then(result => console.log(result)
When options.sync
is false
, and callback
have passed, the callback function will be called after scanning and the result will be the first param of callback
sync
:Boolean
, if use sync mode, default:false
appendAscii
:Boolean
, append all readable ascii charactors to the result no matter they are appeared or not, default:true
dir
:String / Array
, Needed, the dir(s) where to scan charactors, you have to pass absolute path(s), usepath.resolve
to transform paths to absoluteext
:String / Array
, only scan files with specific ext(s), example:'json'
or['txt', 'json', 'html']
ignoreExt
:String / Array
, files with specific ext(s) should be ignoreregExp
:RegExp
, only scan files whose path string match the regexp, example:/lang-/
,/\.foo\.txt$/
,\/dir-foo\/
ignoreRegExp
:RegExp
, ignore files whose path string match the regexp- Weight:
ignoreRegExp
>regExp
>ignoreExt
>ext
An array contains charactors.
cann't identify "\u0061"
as an "a"
in javascript file