precis-js
Version:
A JavaScript implementation of RFC 7564 (The PRECIS Framework).
64 lines (40 loc) • 2.02 kB
JavaScript
// Generated by CoffeeScript 1.10.0
(function() {
var CodepointPropertyReader, PrecisEnforcer, PrecisPreparer, UnicodeTrie, WidthMapper, fs, precis, preparer, propertyReader, trie, trieData, widthMapper, widthMappingData;
fs = require('fs');
UnicodeTrie = require('unicode-trie');
CodepointPropertyReader = require('./unicode/CodepointPropertyReader');
precis = require('./constants');
PrecisEnforcer = require('./PrecisEnforcer');
PrecisPreparer = require('./PrecisPreparer');
WidthMapper = require('./unicode/WidthMapper');
trieData = fs.readFileSync(__dirname + '/../data/properties.trie');
trie = new UnicodeTrie(trieData);
propertyReader = new CodepointPropertyReader(trie);
widthMappingData = JSON.parse(fs.readFileSync(__dirname + '/../data/width-mapping.json'));
widthMapper = new WidthMapper(widthMappingData);
preparer = new PrecisPreparer(propertyReader, widthMapper);
module.exports = precis;
module.exports.prepare = preparer.prepare.bind(preparer);
module.exports.preparer = preparer;
module.exports.propertyReader = propertyReader;
module.exports.PrecisEnforcer = PrecisEnforcer;
module.exports.PrecisPreparer = PrecisPreparer;
module.exports.error = {
EmptyStringError: require('./error/EmptyStringError'),
InvalidCodepointError: require('./error/InvalidCodepointError'),
InvalidDirectionalityError: require('./error/InvalidDirectionalityError')
};
module.exports.profile = {
NicknameProfile: require('./profile/NicknameProfile'),
OpaqueStringProfile: require('./profile/OpaqueStringProfile'),
UsernameCaseMappedProfile: require('./profile/UsernameCaseMappedProfile'),
UsernameCasePreservedProfile: require('./profile/UsernameCasePreservedProfile')
};
module.exports.unicode = {
CodepointPropertyReader: CodepointPropertyReader,
DirectionalityValidator: require('./unicode/DirectionalityValidator'),
Normalizer: require('./unicode/Normalizer'),
WidthMapper: WidthMapper
};
}).call(this);