New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

hepburn

Package Overview
Dependencies
Maintainers
2
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hepburn - npm Package Compare versions

Comparing version 0.2.0 to 0.3.0

46

lib/hepburn.js

@@ -88,2 +88,25 @@ var bulkReplace = require("bulk-replace");

// For use with toKatakana
var katakanaMap = {};
Object.keys(katakanaMonographs).forEach(function(key) {
var value = katakanaMonographs[key];
if (!(value in katakanaMap)) {
katakanaMap[value] = key;
}
});
Object.keys(katakanaDigraphs).forEach(function(key) {
var value = katakanaDigraphs[key];
if (!(value in katakanaMap)) {
katakanaMap[value] = key;
}
});
var katakanaRegex = new RegExp(Object.keys(katakanaMap).sort(function(a, b) {
return b.length - a.length;
}).join("|"), "g");
// API
exports.fromKana = function(str) {

@@ -98,2 +121,3 @@ // Initial transliteration

str = str.replace(/っC/g, "TC").replace(/っ(.)/g, "$1$1");
str = str.replace(/ッC/g, "TC").replace(/ッ(.)/g, "$1$1");

@@ -103,4 +127,4 @@ // Correct usage of N' (M' is a common mistake)

// Ignore use of choonpu and tsu
return str.replace(/[ーッ]/g, "");
// Ignore use of choonpu
return str.replace(/[ー]/g, "");
};

@@ -123,1 +147,19 @@

};
exports.toKatakana = function(str) {
// For to be uppercase
str = str.toUpperCase();
// Correct use of sokuon
str = str.replace(/([^AEIOUN])\1/g, "ッ$1");
// Transliteration
str = bulkReplace(str, katakanaRegex, katakanaMap);
// Fix any remaining N/M usage (that isn't a N' usage)
str = str.replace(/N|M/g, "ン");
return str;
};

8

package.json
{
"name": "hepburn",
"version": "0.2.0",
"version": "0.3.0",
"main": "./lib/hepburn",

@@ -23,7 +23,9 @@ "description": "Convert Japanese Hiragana and Katakana script to, and from, Romaji using Hepburn romanisation",

"katakana",
"romaji"
"romaji",
"kana"
],
"author": "Lovell Fuller <npm@lovell.info>",
"contributors": [
"John Resig <jeresig@gmail.com>"
"John Resig <jeresig@gmail.com>",
"Ron Korving <rkorving@wizcorp.jp>"
],

@@ -30,0 +32,0 @@ "license": "Apache 2.0",

@@ -38,2 +38,12 @@ # Hepburn

### toKatakana(string)
```javascript
var katakana = hepburn.toKatakana("KATAKANA");
```
Converts a string containing Romaji to Katakana.
In this example `katakana` will have the value `カタカナ`.
## Testing [![Build Status](https://travis-ci.org/lovell/hepburn.png?branch=master)](https://travis-ci.org/lovell/hepburn)

@@ -47,3 +57,3 @@

Copyright 2013 Lovell Fuller and John Resig
Copyright 2013 Lovell Fuller, John Resig and Ron Korving

@@ -50,0 +60,0 @@ Licensed under the Apache License, Version 2.0 (the "License");

var assert = require("assert");
var hepburn = require("../lib/hepburn");
var katakanaTests = {
"カタカナ": "KATAKANA",
"チャーシュー": "CHASHU",
"マッモト": "MAMMOTO"
};
var toKatakanaTests = {
"KATAKANA": "カタカナ",
"TOKYO": "トキョ",
"MAKKUDONARUDO": "マックドナルド",
"MADONNA": "マドンナ",
"TABAKO": "タバコ"
};
var hiraganaTests = {

@@ -25,12 +39,6 @@ "ひらがな": "HIRAGANA",

"こんにちは": "KONNICHIHA",
"ちぢむ": "CHIDJIMU",
"りんぱ": "RINPA"
};
var katakanaTests = {
"カタカナ": "KATAKANA",
"チャーシュー": "CHASHU",
"ちぢむ": "CHIDJIMU",
"マッモト": "MAMOTO"
};
// Culled from ENAMDICT

@@ -510,12 +518,17 @@ var toHiraganaTests = {

for (var hiragana in hiraganaTests) {
assert.equal(hepburn.fromKana(hiragana), hiraganaTests[hiragana], "Hirigana conversion failed");
assert.equal(hepburn.fromKana(hiragana), hiraganaTests[hiragana], "Hiragana conversion failed on " + hiragana);
}
for (var katakana in katakanaTests) {
assert.equal(hepburn.fromKana(katakana), katakanaTests[katakana], "Katakana conversion failed");
assert.equal(hepburn.fromKana(katakana), katakanaTests[katakana], "Katakana conversion failed on " + katakana);
}
for (var romaji in toKatakanaTests) {
assert.equal(hepburn.toKatakana(romaji), toKatakanaTests[romaji], "Hepburn conversion to katakana failed on " + romaji);
assert.equal(hepburn.fromKana(toKatakanaTests[romaji]), romaji, "Hepburn conversion from katakana failed on " + romaji);
}
for (var romaji in toHiraganaTests) {
assert.equal(hepburn.toHiragana(romaji), toHiraganaTests[romaji], "Hepburn conversion failed");
assert.equal(hepburn.fromKana(toHiraganaTests[romaji]), romaji, "Hepburn conversion failed");
assert.equal(hepburn.toHiragana(romaji), toHiraganaTests[romaji], "Hepburn conversion to hiragana failed on " + romaji);
assert.equal(hepburn.fromKana(toHiraganaTests[romaji]), romaji, "Hepburn conversion from hiragana failed on " + romaji);
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc