From a9d85a0e810916bca0346b956b3a4ae8f02255af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=93=E7=99=BD?= Date: Wed, 29 Oct 2014 14:55:42 +0800 Subject: [PATCH 1/3] Sometimes convert result will be \uXXXX. --- index.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index ddc28c3..865cae7 100644 --- a/index.js +++ b/index.js @@ -27,7 +27,13 @@ function native2ascii(str) { function ascii2native(str) { - return unescape(str.split('\\').join('%')); + if(str.indexOf('\\\\u')>-1){ + return str.replace(/\\(\\u\w+)/g, function(all, key){ + return unescape(key); + }); + }else{ + return unescape(str.split('\\').join('%')); + } } From 75ec505833910a281f3c823855dc20ce6f13a8b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=93=E7=99=BD?= Date: Thu, 30 Oct 2014 17:09:35 +0800 Subject: [PATCH 2/3] able to decode the error ascii string, update test cases. --- .gitignore | 5 ++-- index.js | 7 ++--- package.json | 13 +++++----- test/cases/default.js | 1 + test/cases/errMinify.js | 1 + test/{ => cases}/reverse.js | 0 test/default.js | 1 - test/test.js | 51 ++++++++++++++++++++++++------------- 8 files changed, 50 insertions(+), 29 deletions(-) create mode 100644 test/cases/default.js create mode 100644 test/cases/errMinify.js rename test/{ => cases}/reverse.js (100%) delete mode 100644 test/default.js diff --git a/.gitignore b/.gitignore index 52d85dc..acc0be2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea +.iml node_modules -*-converted.js -*.log +test/test-output +*.log \ No newline at end of file diff --git a/index.js b/index.js index 865cae7..4ffcb86 100644 --- a/index.js +++ b/index.js @@ -28,9 +28,10 @@ function native2ascii(str) { function ascii2native(str) { if(str.indexOf('\\\\u')>-1){ - return str.replace(/\\(\\u\w+)/g, function(all, key){ - return unescape(key); - }); + // fix err js minify string + return ascii2native.call(null, str.replace(/\\(\\u(\w+){4})/g, function (all, key) { + return key; + })); }else{ return unescape(str.split('\\').join('%')); } diff --git a/package.json b/package.json index 5cd046d..3c6f412 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "gulp-native2ascii", "description": "native2ascii plugin for gulp", - "version": "0.0.3", + "version": "0.0.4", "homepage": "https://github.com/adamme/gulp-native2ascii", "author": { "name": "Adam Lau", @@ -29,15 +29,16 @@ "gulp", "native2ascii" ], - "scripts": { - "test": "node test/test.js" - }, + "scripts": { + "test": "node test/test.js" + }, "dependencies": { "gulp-util": "^2.2.14", "through2": "^0.4.1" }, "devDependencies": { - "gulp-mocha": "^0.4.1", - "gulp-rename": "^1.1.0" + "del": "^0.1.3", + "gulp-rename": "^1.1.0", + "gulp-uglify": "^1.0.1" } } diff --git a/test/cases/default.js b/test/cases/default.js new file mode 100644 index 0000000..21d54d1 --- /dev/null +++ b/test/cases/default.js @@ -0,0 +1 @@ +console.log('你好,世界!'); diff --git a/test/cases/errMinify.js b/test/cases/errMinify.js new file mode 100644 index 0000000..8ec0d38 --- /dev/null +++ b/test/cases/errMinify.js @@ -0,0 +1 @@ +console.log('\\u7f16\\u7801\\u8f6c\\u6362'); \ No newline at end of file diff --git a/test/reverse.js b/test/cases/reverse.js similarity index 100% rename from test/reverse.js rename to test/cases/reverse.js diff --git a/test/default.js b/test/default.js deleted file mode 100644 index e48d21e..0000000 --- a/test/default.js +++ /dev/null @@ -1 +0,0 @@ -alert('你好,世界!'); diff --git a/test/test.js b/test/test.js index 1fbe116..229b8a0 100644 --- a/test/test.js +++ b/test/test.js @@ -1,20 +1,37 @@ -var n2a = require('../'); -var rename = require('gulp-rename'); -var gulp = require('gulp'); +var gulp = require('gulp'), + n2a = require('../'), + del = require('del'); +const TEST_CASE = './test/cases/'; +const OUTPUT = './test/test-output/'; -gulp.src('./**/default.js', {buffer: false}) - .pipe(n2a()) - .pipe(rename(function (path) { - path.basename += "-converted"; - })) - .pipe(gulp.dest('./')); +/** 1. clean up output files. **/ +del([OUTPUT], function (err) { + if (err) { + console.error("clean up output files failed."); + } else { + testCase(); + } +}); -gulp.src('./**/reverse.js') - .pipe(n2a({ - reverse: true - })) - .pipe(rename(function (path) { - path.basename += "-converted"; - })) - .pipe(gulp.dest('./')); +function testCase() { + /** 2. convert unicode to ascii. **/ + gulp.src(TEST_CASE + 'default.js', {buffer: false}) + .pipe(n2a()) + .pipe(gulp.dest(OUTPUT)); + + /** 3. convert ascii to unicode. **/ + gulp.src(TEST_CASE + 'reverse.js') + .pipe(n2a({ + reverse: true + })) + .pipe(gulp.dest(OUTPUT)); + + /** 4. fixs error uglify ascii string to unicode **/ + gulp.src(TEST_CASE + 'errMinify.js') + .pipe(n2a({ + reverse: true + })) + .pipe(gulp.dest(OUTPUT)); + +} From b429fdd9e16364b3c1e7f0dcf3dffc47a32d529a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=93=E7=99=BD?= Date: Thu, 30 Oct 2014 17:10:48 +0800 Subject: [PATCH 3/3] remove unuse devpendencies. --- package.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/package.json b/package.json index 3c6f412..ddca520 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,6 @@ "through2": "^0.4.1" }, "devDependencies": { - "del": "^0.1.3", - "gulp-rename": "^1.1.0", - "gulp-uglify": "^1.0.1" + "del": "^0.1.3" } }