Permalink
Commits on Apr 13, 2018
  1. 2.0.0

    FND committed Apr 13, 2018
  2. Tweak documentation

    FND committed Apr 13, 2018
  3. Add support for arbitrary-length charsets

    FND committed Apr 13, 2018
    as pointed out by @tillsc, there's no technical reason not to support
    this - though naming and documentation complicate things a little
Commits on Apr 10, 2018
  1. Merge pull request #70 from FND/es6

    andrew committed Apr 10, 2018
    Switch to ES6 modules
Commits on Apr 4, 2018
  1. Add documentation for modular API

    FND committed Apr 4, 2018
  2. Rename source folder

    FND committed Apr 4, 2018
    now that we expect users to import individual modules, `lib` _seems_ to
    be a more conventional choice
  3. Revert back to CommonJS modules

    FND committed Apr 4, 2018
    in documenting the new API, it became apparent that distinguishing
    between entry points for legacy vs. ES6 modules is too awkward, in terms
    of both explanation and implementation
    
    plus this means we no longer need a build process and all that goes
    along with it
    
    while this might seem like a significant departure from what we set out
    to do with ES6 modules, for users the main benefit remains: since the
    code base is now split into separate modules, users only need to import
    what they need (tools for bundling modules typically understand CommonJS
    as well as ES6 modules) - though the legacy API remains the default for
    backwards compatibility
  4. Tweak Code Climate configuration

    FND committed Apr 4, 2018
    excluding generated bundle, raising DRY threshold to ignore
    intentionally duplicated `while` loops
  5. Drop support for Node v5 and below

    FND committed Apr 4, 2018
    Node v6.14.1 is currently the oldest LTS version, so supporting anything
    below that seems unreasonable
  6. Ensure legacy tests and benchmarks use generated CommonJS bundle

    FND committed Apr 3, 2018
    this ensures backwards compatibility
  7. Replace faucet-pipeline with Rollup

    FND committed Apr 3, 2018
    now that we no longer need transpiling, it's not worth using faucet's
    abstraction anymore
  8. Revert back to ES5, limiting ES6 to module syntax

    FND committed Apr 3, 2018
    this makes it simpler to generate a ES5 CommonJS bundle for backwards
    compatibility, as now we only need a bundler (Rollup) instead of a
    full-on transpiler (Babel)
    
    tested with Node v6.14.1 (currently the oldest LTS version)
  9. Add ES5 distribution

    FND committed Mar 31, 2018
    I'm not convinced this is a great idea:
    * while faucet-pipeline <http://faucet-pipeline.org> makes bundling and
      transpiling easy, it inevitably means we get Rollup and Babel as
      fairly heavyweight dependencies (even though they're only needed for
      development)
    * I very much dislike adding build artifacts (i.e. `base62.js`) to the
      source repository - the alternative would be to only add it to the
      npm package, but that would require a release script and process
    
    it might be better to leave bundling/transpiling to users - if that's
    even necessary anymore, as ES6 support is becoming increasingly
    widespread (plus there's always the v1.x line to fall back on,
    particularly because functionality-wise there's no difference)
  10. Switch to ES6 modules

    FND committed Mar 31, 2018
    this effectively constitutes a rewrite, based on and guided by the
    previous implementation, with the following goals:
    * lightweight and efficient
    * engine-agnostic, i.e. supporting browsers as well as Node/Nashorn/…
    * modular: since ASCII is considered the default, we don't want to
      impose size or performance penalties for the sake of custom charsets
    * modern: ES6 (or ES2015, to be precise) provides standardized
      modularity as well as a bit of syntactic sugar - plus there's value in
      going along with the community, now that ES6 is generally accepted
    
    notes and caveats:
    * `legacy.js` continues to provide the v1.x API for backwards
      compatibility (the term "legacy" is not intended to be derogatory in
      any way)
    * since the source code is now ES6 modules, users are expected to either
      support ES2015 natively or transpile to ES5
      originally I'd hoped for `legacy.js` to remain a CommonJS module, but
      then we wouldn't be able to import our new implementation
    * consequently, using esm <https://github.com/standard-things/esm> in
      tests and benchmark to make Node accept `import`/`export` syntax
      (while from Node v8.5.0, this is supported natively, that only applies
      to `.mjs` files)
    * benchmarks - both the existing Node harness and an ad-hoc setup in the
      browser - suggest this implementation is faster than the previous one,
      though it would be nice for that to be confirmed independently
    * while `encode` is almost identical in both versions (ASCII-optimized
      vs. custom charsets), I opted not to worry excessively about DRYness
      for the sake of runtime efficiency
    * not sure about code style (e.g. quotation marks, keyword spacing etc.)
Commits on Mar 31, 2018
  1. Bump dependencies

    FND committed Mar 31, 2018
Commits on Mar 30, 2018
  1. Remove install tracking

    andrew committed Mar 30, 2018
    Closes #67
    Closes #66
Commits on Feb 14, 2018
  1. 1.2.7

    andrew committed Feb 14, 2018
  2. 1.2.6

    andrew committed Feb 14, 2018
Commits on Feb 10, 2018
  1. Experiment with removing yarn.lock file on travis

    andrew committed Feb 10, 2018
  2. 1.2.5

    andrew committed Feb 10, 2018
  3. 1.2.4

    andrew committed Feb 10, 2018
  4. Embed install-stats due to a bug in npm5

    andrew committed Feb 10, 2018
  5. 1.2.3

    andrew committed Feb 10, 2018
  6. 1.2.2

    andrew committed Feb 10, 2018
  7. Add install-stats

    andrew committed Feb 10, 2018
Commits on Nov 14, 2017
  1. 1.2.1

    andrew committed Nov 14, 2017
  2. Merge pull request #56 from lmk123/add-typescript-declaration-file

    andrew committed Nov 14, 2017
    add TypeScript Declaration File
  3. add TypeScript Declaration File

    lmk123 committed Nov 14, 2017
Commits on Oct 16, 2017
  1. Stop testing on really old node versions

    andrew committed Oct 16, 2017
  2. Update dependencies

    andrew committed Oct 16, 2017
  3. Test against node 8.7

    andrew committed Oct 16, 2017