ilib
Version:
iLib is a cross-engine library of internationalization (i18n) classes written in pure JS
2 lines • 1.25 kB
JavaScript
// !data ctype
var ilib=require("../index.js"),SearchUtils=require("./SearchUtils.js"),Utils=require("./Utils.js"),IString=require("./IString.js"),CType={_inRange:function(num,rangeName,obj){var result;return!(num<0||!rangeName||!obj)&&!!(obj=obj[rangeName])&&(result=SearchUtils.bsearch(num,obj,rangeName=function(singlerange,target){return 1===singlerange.length||target<singlerange[0]?singlerange[0]-target:target>singlerange[1]?singlerange[1]-target:0}))<obj.length&&0===rangeName(obj[result],num)},withinRange:function(ch,rangeName){if(!rangeName)return!1;var num;switch(typeof ch){case"number":num=ch;break;case"string":num=IString.toCodePoint(ch,0);break;case"undefined":return!1;default:num=ch._toCodePoint(0)}return CType._inRange(num,rangeName.toLowerCase(),ilib.data.ctype)},_init:function(sync,loadParams,onLoad){CType._load("ctype",sync,loadParams,onLoad)},_load:function(name,sync,loadParams,onLoad){ilib.data[name]?onLoad&&"function"==typeof onLoad&&onLoad(ilib.data[name]):Utils.loadData({object:"CType",name:name?name+".json":"CType.json",locale:"-",nonlocale:!0,sync:sync,loadParams:loadParams,callback:ilib.bind(this,function(ct){ilib.data[name]=ct,onLoad&&"function"==typeof onLoad&&onLoad(ilib.data[name])})})}};module.exports=CType;