[Pkg-javascript-commits] [node-preserve] 01/05: Import Upstream version 0.2.0

Sruthi Chandran srud-guest at moszumanska.debian.org
Tue Oct 25 11:47:13 UTC 2016


This is an automated email from the git hooks/post-receive script.

srud-guest pushed a commit to branch master
in repository node-preserve.

commit 63c86a6ab0cd4bf35477105c343ec13095930dec
Author: Sruthi <srud at disroot.org>
Date:   Tue Oct 25 17:03:58 2016 +0530

    Import Upstream version 0.2.0
---
 .gitattributes | 14 +++++++++
 .gitignore     | 53 ++++++++++++++++++++++++++++++++++
 .jshintrc      | 24 ++++++++++++++++
 .npmignore     | 53 ++++++++++++++++++++++++++++++++++
 .travis.yml    |  3 ++
 .verb.md       | 59 ++++++++++++++++++++++++++++++++++++++
 LICENSE        | 24 ++++++++++++++++
 README.md      | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 index.js       | 54 +++++++++++++++++++++++++++++++++++
 package.json   | 48 +++++++++++++++++++++++++++++++
 test.js        | 48 +++++++++++++++++++++++++++++++
 11 files changed, 470 insertions(+)

diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..759c2c5
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,14 @@
+# Enforce Unix newlines
+*.*     text eol=lf
+*.css   text eol=lf
+*.html  text eol=lf
+*.js    text eol=lf
+*.json  text eol=lf
+*.less  text eol=lf
+*.md    text eol=lf
+*.yml   text eol=lf
+
+*.jpg binary
+*.gif binary
+*.png binary
+*.jpeg binary
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1a2e47f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,53 @@
+# Numerous always-ignore extensions
+*.csv
+*.dat
+*.diff
+*.err
+*.gz
+*.log
+*.orig
+*.out
+*.pid
+*.rar
+*.rej
+*.seed
+*.swo
+*.swp
+*.vi
+*.yo-rc.json
+*.zip
+*~
+.ruby-version
+lib-cov
+npm-debug.log
+
+# Always-ignore dirs
+/bower_components/
+/node_modules/
+/temp/
+/tmp/
+/vendor/
+_gh_pages
+
+# OS or Editor folders
+*.esproj
+*.komodoproject
+.komodotools
+*.sublime-*
+._*
+.cache
+.DS_Store
+.idea
+.project
+.settings
+.tmproj
+nbproject
+Thumbs.db
+
+# grunt-html-validation
+validation-status.json
+validation-report.json
+
+# misc
+TODO.md
+benchmark
\ No newline at end of file
diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 0000000..e72045d
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,24 @@
+{
+  "asi": false,
+  "boss": true,
+  "curly": true,
+  "eqeqeq": true,
+  "eqnull": true,
+  "esnext": true,
+  "immed": true,
+  "latedef": true,
+  "laxcomma": false,
+  "newcap": true,
+  "noarg": true,
+  "node": true,
+  "sub": true,
+  "undef": true,
+  "unused": true,
+  "globals": {
+    "define": true,
+    "before": true,
+    "after": true,
+    "describe": true,
+    "it": true
+  }
+}
\ No newline at end of file
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..1a2e47f
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,53 @@
+# Numerous always-ignore extensions
+*.csv
+*.dat
+*.diff
+*.err
+*.gz
+*.log
+*.orig
+*.out
+*.pid
+*.rar
+*.rej
+*.seed
+*.swo
+*.swp
+*.vi
+*.yo-rc.json
+*.zip
+*~
+.ruby-version
+lib-cov
+npm-debug.log
+
+# Always-ignore dirs
+/bower_components/
+/node_modules/
+/temp/
+/tmp/
+/vendor/
+_gh_pages
+
+# OS or Editor folders
+*.esproj
+*.komodoproject
+.komodotools
+*.sublime-*
+._*
+.cache
+.DS_Store
+.idea
+.project
+.settings
+.tmproj
+nbproject
+Thumbs.db
+
+# grunt-html-validation
+validation-status.json
+validation-report.json
+
+# misc
+TODO.md
+benchmark
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..ff74a05
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,3 @@
+language: node_js
+node_js:
+  - '0.10'
\ No newline at end of file
diff --git a/.verb.md b/.verb.md
new file mode 100644
index 0000000..72344a9
--- /dev/null
+++ b/.verb.md
@@ -0,0 +1,59 @@
+# {%= name %} {%= badge("fury") %}
+
+> {%= description %}
+
+Useful for protecting tokens, like templates in HTML, from being mutated when the string is transformed in some way, like from a formatter/beautifier.
+
+**Example without `preserve`**
+
+Let's say you want to use [js-beautify] on a string of html with Lo-Dash/Underscore templates, such as: `<ul><li><%= name %></li></ul>`:
+
+js-beautify will render the template unusable (and apply incorrect formatting because of the unfamiliar syntax from the Lo-Dash template):
+
+```html
+<ul>
+  <li>
+    <%=n ame %>
+  </li>
+</ul>
+```
+
+**Example with `preserve`**
+
+Correct.
+
+```html
+<ul>
+  <li><%= name %></li>
+</ul>
+```
+
+For the record, this is just a random example, I've had very few issues with js-beautify in general. But with or without js-beautify, this kind of token mangling does happen sometimes when you use formatters, beautifiers or similar tools.
+
+## Install
+{%= include("install-npm", {save: true}) %}
+
+## Run tests
+
+```bash
+npm test
+```
+
+## API
+{%= apidocs("index.js") %}
+
+## Contributing
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue]({%= bugs.url %})
+
+## Author
+{%= include("author") %}
+
+## License
+{%= copyright() %}
+{%= license() %}
+
+***
+
+{%= include("footer") %}
+
+[js-beautify]: https://github.com/beautify-web/js-beautify
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..5a9956a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,24 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2015, Jon Schlinkert.
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..75000b9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,90 @@
+# preserve [![NPM version](https://badge.fury.io/js/preserve.svg)](http://badge.fury.io/js/preserve)
+
+> Temporarily substitute tokens in the given `string` with placeholders, then put them back after transforming the string.
+
+Useful for protecting tokens, like templates in HTML, from being mutated when the string is transformed in some way, like from a formatter/beautifier.
+
+**Example without `preserve`**
+
+Let's say you want to use [js-beautify] on a string of html with Lo-Dash/Underscore templates, such as: `<ul><li><%= name %></li></ul>`:
+
+js-beautify will render the template unusable (and apply incorrect formatting because of the unfamiliar syntax from the Lo-Dash template):
+
+```html
+<ul>
+  <li>
+    <%=n ame %>
+  </li>
+</ul>
+```
+
+**Example with `preserve`**
+
+Correct.
+
+```html
+<ul>
+  <li><%= name %></li>
+</ul>
+```
+
+For the record, this is just a random example, I've had very few issues with js-beautify in general. But with or without js-beautify, this kind of token mangling does happen sometimes when you use formatters, beautifiers or similar tools.
+
+## Install
+## Install with [npm](npmjs.org)
+
+```bash
+npm i preserve --save
+```
+
+## Run tests
+
+```bash
+npm test
+```
+
+## API
+### [.before](index.js#L23)
+
+Replace tokens in `str` with a temporary, heuristic placeholder.
+
+* `str` **{String}**    
+* `returns` **{String}**: String with placeholders.  
+
+```js
+tokens.before('{a\\,b}');
+//=> '{__ID1__}'
+```
+
+### [.after](index.js#L44)
+
+Replace placeholders in `str` with original tokens.
+
+* `str` **{String}**: String with placeholders    
+* `returns` **{String}** `str`: String with original tokens.  
+
+```js
+tokens.after('{__ID1__}');
+//=> '{a\\,b}'
+```
+
+
+## Contributing
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/preserve/issues)
+
+## Author
+
+**Jon Schlinkert**
+ 
++ [github/jonschlinkert](https://github.com/jonschlinkert)
++ [twitter/jonschlinkert](http://twitter.com/jonschlinkert) 
+
+## License
+Copyright (c) 2015-2015, Jon Schlinkert.
+Released under the MIT license
+
+***
+
+_This file was generated by [verb](https://github.com/assemble/verb) on January 10, 2015._
+
+[js-beautify]: https://github.com/beautify-web/js-beautify
\ No newline at end of file
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..a6c5d48
--- /dev/null
+++ b/index.js
@@ -0,0 +1,54 @@
+/*!
+ * preserve <https://github.com/jonschlinkert/preserve>
+ *
+ * Copyright (c) 2014-2015, Jon Schlinkert.
+ * Licensed under the MIT license.
+ */
+
+'use strict';
+
+/**
+ * Replace tokens in `str` with a temporary, heuristic placeholder.
+ *
+ * ```js
+ * tokens.before('{a\\,b}');
+ * //=> '{__ID1__}'
+ * ```
+ *
+ * @param  {String} `str`
+ * @return {String} String with placeholders.
+ * @api public
+ */
+
+exports.before = function before(str, re) {
+  return str.replace(re, function (match) {
+    var id = randomize();
+    cache[id] = match;
+    return '__ID' + id + '__';
+  });
+};
+
+/**
+ * Replace placeholders in `str` with original tokens.
+ *
+ * ```js
+ * tokens.after('{__ID1__}');
+ * //=> '{a\\,b}'
+ * ```
+ *
+ * @param  {String} `str` String with placeholders
+ * @return {String} `str` String with original tokens.
+ * @api public
+ */
+
+exports.after = function after(str) {
+  return str.replace(/__ID(.{5})__/g, function (_, id) {
+    return cache[id];
+  });
+};
+
+function randomize() {
+  return Math.random().toString().slice(2, 7);
+}
+
+var cache = {};
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..056c0fa
--- /dev/null
+++ b/package.json
@@ -0,0 +1,48 @@
+{
+  "name": "preserve",
+  "description": "Temporarily substitute tokens in the given `string` with placeholders, then put them back after transforming the string.",
+  "version": "0.2.0",
+  "homepage": "https://github.com/jonschlinkert/preserve",
+  "author": {
+    "name": "Jon Schlinkert",
+    "url": "https://github.com/jonschlinkert"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/jonschlinkert/preserve.git"
+  },
+  "bugs": {
+    "url": "https://github.com/jonschlinkert/preserve/issues"
+  },
+  "license": {
+    "type": "MIT",
+    "url": "https://github.com/jonschlinkert/preserve/blob/master/LICENSE-MIT"
+  },
+  "main": "index.js",
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "scripts": {
+    "test": "mocha -R spec"
+  },
+  "devDependencies": {
+    "benchmarked": "^0.1.3",
+    "chalk": "^0.5.1",
+    "js-beautify": "^1.5.4",
+    "mocha": "*",
+    "should": "*"
+  },
+  "keywords": [
+    "escape",
+    "format",
+    "placeholder",
+    "placeholders",
+    "prettify",
+    "regex",
+    "replace",
+    "template",
+    "templates",
+    "token",
+    "tokens"
+  ]
+}
\ No newline at end of file
diff --git a/test.js b/test.js
new file mode 100644
index 0000000..9bf174f
--- /dev/null
+++ b/test.js
@@ -0,0 +1,48 @@
+/*!
+ * preserve <https://github.com/jonschlinkert/preserve>
+ *
+ * Copyright (c) 2014-2015, Jon Schlinkert.
+ * Licensed under the MIT License
+ */
+
+'use strict';
+
+var should = require('should');
+var tokens = require('./');
+
+var re = /<%=\s*[^>]+%>/g;
+var pretty = function(str) {
+  return require('js-beautify').html(str, {
+    indent_char: ' ',
+    indent_size: 2,
+  });
+};
+
+describe('preserve tokens', function () {
+  var testRe = /__ID.{5}__\n__ID.{5}__\n__ID.{5}__/;
+  var re = /<%=\s*[^>]+%>/g;
+
+  it('should (e.g. shouldn\'t, but will) mangle tokens in the given string', function () {
+    var html = pretty('<ul><li><%= name %></li></ul>');
+    html.should.equal('<ul>\n  <li>\n    <%=n ame %>\n  </li>\n</ul>');
+  });
+
+  it('should preserve tokens in the given string', function () {
+    var html = tokens.after(pretty(tokens.before('<ul><li><%= name %></li></ul>', re)));
+    html.should.equal('<ul>\n  <li><%= name %></li>\n</ul>');
+  });
+
+  describe('.before()', function () {
+    it('should replace matches with placeholder tokens:', function () {
+      tokens.before('<%= a %>\n<%= b %>\n<%= c %>', re).should.match(testRe);
+    });
+  });
+
+  describe('tokens.after()', function () {
+    it('should replace placeholder tokens with original values:', function () {
+      var before = tokens.before('<%= a %>\n<%= b %>\n<%= c %>', re);
+      before.should.match(testRe);
+      tokens.after(before).should.equal('<%= a %>\n<%= b %>\n<%= c %>');
+    });
+  });
+});

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-preserve.git



More information about the Pkg-javascript-commits mailing list