Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ECMAScript support #212

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
2 changes: 0 additions & 2 deletions .eslintrc.js → .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
'use strict';

module.exports = {
root: true,
extends: ['eslint:recommended', 'plugin:prettier/recommended'],
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ logs
npm-debug.log*

dist
lib
es
.DS_Store

Expand Down
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ node_js:
- 14
- 13
- 12
- 10
script:
- npm test
after_script:
Expand Down
1 change: 0 additions & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ environment:
- nodejs_version: 14
- nodejs_version: 13
- nodejs_version: 12
- nodejs_version: 10
install:
- ps: Install-Product node $env:nodejs_version
- set CI=true
Expand Down
2 changes: 1 addition & 1 deletion contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
1. Fork this repository
2. `git clone` your fork down to your local machine
3. `cd` into the directory for your fork
4. run `npm install`
4. run `npm ci`

## Tests

Expand Down
4 changes: 1 addition & 3 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
'use strict';

module.exports = {
export default {
collectCoverage: true,
coverageDirectory: './coverage/',
testEnvironment: 'node',
Expand Down
3,611 changes: 2,664 additions & 947 deletions package-lock.json

Large diffs are not rendered by default.

43 changes: 20 additions & 23 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,34 @@
"Rafał Ruciński (https://github.com/fatfisz)"
],
"devDependencies": {
"@babel/cli": "^7.10.1",
"@babel/core": "^7.10.2",
"@babel/plugin-proposal-class-properties": "^7.10.1",
"@babel/plugin-proposal-export-default-from": "^7.10.1",
"@babel/preset-env": "^7.10.2",
"@rollup/plugin-babel": "^5.0.2",
"@babel/cli": "^7.12.10",
"@babel/core": "^7.12.10",
"@babel/plugin-proposal-class-properties": "^7.12.1",
"@babel/plugin-proposal-export-default-from": "^7.12.1",
"@babel/preset-env": "^7.12.11",
"@rollup/plugin-babel": "^5.2.3",
"@rollup/plugin-node-resolve": "^8.0.0",
"babel-core": "^6.26.3",
"babel-eslint": "^10.1.0",
"babel-plugin-add-module-exports": "^1.0.2",
"babel-plugin-add-module-exports": "^1.0.4",
"codecov": "^3.7.0",
"cross-env": "^7.0.2",
"cross-env": "^7.0.3",
"doctoc": "^1.4.0",
"eslint": "^7.1.0",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-prettier": "^3.1.3",
"eslint": "^7.18.0",
"eslint-config-prettier": "^7.2.0",
"eslint-plugin-prettier": "^3.3.1",
"jest": "^26.0.1",
"micromatch": "^4.0.2",
"prettier": "^2.0.5",
"rimraf": "^3.0.2",
"rollup": "^2.12.0",
"rollup": "^2.38.1",
"rollup-plugin-uglify": "^6.0.4"
},
"directories": {
"lib": "lib"
},
"engines": {
"node": ">=10.0.0"
"node": ">=12.0.0"
},
"homepage": "https://github.com/declandewet/common-tags",
"keywords": [
Expand Down Expand Up @@ -73,30 +73,27 @@
"template"
],
"license": "MIT",
"main": "lib",
"jsnext:main": "es",
"module": "es",
"type": "module",
"exports": "./es/index.js",
"unpkg": "dist/common-tags.min.js",
"files": [
"/dist",
"/es",
"/lib"
"/es"
],
"repository": {
"type": "git",
"url": "https://github.com/declandewet/common-tags"
},
"scripts": {
"clear": "rimraf lib && rimraf es && rimraf dist",
"build": "npm run clear && npm run build:cjs && npm run build:es && npm run build:unpkg",
"build:cjs": "babel src --out-dir lib --ignore **/*.test.js",
"clear": "rimraf es/* && rimraf dist/*",
"build": "npm run clear && npm run build:es && npm run build:unpkg",
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --ignore **/*.test.js",
"build:unpkg": "cross-env BABEL_ENV=es rollup --config",
"codecov": "codecov",
"doctoc": "doctoc readme.md --title \"## Table of Contents\"",
"lint": "eslint .*rc.js *.js src/**/*.js --ignore-pattern '!.*rc.js'",
"lint": "eslint src/**/*.js",
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couldn't quite figure out how to include linting the CommonJS root files without ESLint throwing an error, hope this is okay.

"lint:fix": "npm run lint -- --fix",
"prerelease": "npm run build",
"prepare": "npm run build",
"preversion": "npm run doctoc && npm test",
"release": "npm publish",
"test": "npm run lint && jest src"
Expand Down
10 changes: 9 additions & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,10 @@ The official recommendation for running `common-tags` is as follows:
- In order to use `common-tags`, your environment will also need to support ES2015 tagged templates ([pssst… check Babel out](http://babeljs.io))
- You might also want to [polyfill some features](https://github.com/zloirock/core-js) if you plan on supporting older browsers: `Array.prototype.includes`

It might work with below versions of Node, but this is not a guarantee.
Use the upcoming release for more modern environments:

- [Node.js](https://nodejs.org/en/download/) v14.0.0 or higher
- In order to use `common-tags`, your environment will need to support ECMAScript modules

### Instructions

Expand All @@ -142,6 +145,11 @@ It might work with below versions of Node, but this is not a guarantee.
npm install common-tags
```

Or for the upcoming release:
```sh
npm install common-tags@next
```

### With unpkg

`common-tags` is also available at [unpkg](https://unpkg.com/common-tags). Just put this code in your HTML:
Expand Down
2 changes: 1 addition & 1 deletion src/TemplateTag/TemplateTag.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import createTag from '../createTag';
import createTag from '../createTag/index.js';

let deprecationWarningPrinted = false;

Expand Down
2 changes: 1 addition & 1 deletion src/TemplateTag/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './TemplateTag';
export default from './TemplateTag.js';
2 changes: 1 addition & 1 deletion src/codeBlock/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from '../html';
export default from '../html/index.js';
6 changes: 3 additions & 3 deletions src/commaLists/commaLists.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import createTag from '../createTag';
import stripIndent from '../stripIndent';
import inlineArrayTransformer from '../inlineArrayTransformer';
import createTag from '../createTag/index.js';
import stripIndent from '../stripIndent/index.js';
import inlineArrayTransformer from '../inlineArrayTransformer/index.js';

const commaLists = createTag(
inlineArrayTransformer({ separator: ',' }),
Expand Down
2 changes: 1 addition & 1 deletion src/commaLists/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './commaLists';
export default from './commaLists.js';
6 changes: 3 additions & 3 deletions src/commaListsAnd/commaListsAnd.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import createTag from '../createTag';
import stripIndent from '../stripIndent';
import inlineArrayTransformer from '../inlineArrayTransformer';
import createTag from '../createTag/index.js';
import stripIndent from '../stripIndent/index.js';
import inlineArrayTransformer from '../inlineArrayTransformer/index.js';

const commaListsAnd = createTag(
inlineArrayTransformer({ separator: ',', conjunction: 'and' }),
Expand Down
2 changes: 1 addition & 1 deletion src/commaListsAnd/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './commaListsAnd';
export default from './commaListsAnd.js';
6 changes: 3 additions & 3 deletions src/commaListsOr/commaListsOr.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import createTag from '../createTag';
import stripIndent from '../stripIndent';
import inlineArrayTransformer from '../inlineArrayTransformer';
import createTag from '../createTag/index.js';
import stripIndent from '../stripIndent/index.js';
import inlineArrayTransformer from '../inlineArrayTransformer/index.js';

const commaListsOr = createTag(
inlineArrayTransformer({ separator: ',', conjunction: 'or' }),
Expand Down
2 changes: 1 addition & 1 deletion src/commaListsOr/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './commaListsOr';
export default from './commaListsOr.js';
2 changes: 1 addition & 1 deletion src/createTag/createTag.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { flat } from '../utils';
import { flat } from '../utils/index.js';

const tagTransformersSymbol = 'COMMON_TAGS_TAG_TRANSFORMERS_SYMBOL';

Expand Down
2 changes: 1 addition & 1 deletion src/createTag/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './createTag';
export default from './createTag.js';
10 changes: 5 additions & 5 deletions src/html/html.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import createTag from '../createTag';
import stripIndent from '../stripIndent';
import inlineArrayTransformer from '../inlineArrayTransformer';
import splitStringTransformer from '../splitStringTransformer';
import removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer';
import createTag from '../createTag/index.js';
import stripIndent from '../stripIndent/index.js';
import inlineArrayTransformer from '../inlineArrayTransformer/index.js';
import splitStringTransformer from '../splitStringTransformer/index.js';
import removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer/index.js';

const html = createTag(
splitStringTransformer('\n'),
Expand Down
2 changes: 1 addition & 1 deletion src/html/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './html';
export default from './html.js';
2 changes: 1 addition & 1 deletion src/id/id.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import createTag from '../createTag';
import createTag from '../createTag/index.js';

const id = createTag();

Expand Down
2 changes: 1 addition & 1 deletion src/id/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './id';
export default from './id.js';
54 changes: 27 additions & 27 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
// core
export createTag from './createTag';
export createTag from './createTag/index.js';

// transformers
export inlineArrayTransformer from './inlineArrayTransformer';
export removeNonPrintingValuesTransformer from './removeNonPrintingValuesTransformer';
export replaceResultTransformer from './replaceResultTransformer';
export replaceStringTransformer from './replaceStringTransformer';
export replaceSubstitutionTransformer from './replaceSubstitutionTransformer';
export splitStringTransformer from './splitStringTransformer';
export stripIndentTransformer from './stripIndentTransformer';
export trimResultTransformer from './trimResultTransformer';
export inlineArrayTransformer from './inlineArrayTransformer/index.js';
export removeNonPrintingValuesTransformer from './removeNonPrintingValuesTransformer/index.js';
export replaceResultTransformer from './replaceResultTransformer/index.js';
export replaceStringTransformer from './replaceStringTransformer/index.js';
export replaceSubstitutionTransformer from './replaceSubstitutionTransformer/index.js';
export splitStringTransformer from './splitStringTransformer/index.js';
export stripIndentTransformer from './stripIndentTransformer/index.js';
export trimResultTransformer from './trimResultTransformer/index.js';

// tags
export codeBlock from './codeBlock';
export commaLists from './commaLists';
export commaListsAnd from './commaListsAnd';
export commaListsOr from './commaListsOr';
export html from './html';
export id from './id';
export inlineLists from './inlineLists';
export oneLine from './oneLine';
export oneLineCommaLists from './oneLineCommaLists';
export oneLineCommaListsAnd from './oneLineCommaListsAnd';
export oneLineCommaListsOr from './oneLineCommaListsOr';
export oneLineInlineLists from './oneLineInlineLists';
export oneLineTrim from './oneLineTrim';
export safeHtml from './safeHtml';
export source from './source';
export stripIndent from './stripIndent';
export stripIndents from './stripIndents';
export codeBlock from './codeBlock/index.js';
export commaLists from './commaLists/index.js';
export commaListsAnd from './commaListsAnd/index.js';
export commaListsOr from './commaListsOr/index.js';
export html from './html/index.js';
export id from './id/index.js';
export inlineLists from './inlineLists/index.js';
export oneLine from './oneLine/index.js';
export oneLineCommaLists from './oneLineCommaLists/index.js';
export oneLineCommaListsAnd from './oneLineCommaListsAnd/index.js';
export oneLineCommaListsOr from './oneLineCommaListsOr/index.js';
export oneLineInlineLists from './oneLineInlineLists/index.js';
export oneLineTrim from './oneLineTrim/index.js';
export safeHtml from './safeHtml/index.js';
export source from './source/index.js';
export stripIndent from './stripIndent/index.js';
export stripIndents from './stripIndents/index.js';

// deprecated
export TemplateTag from './TemplateTag';
export TemplateTag from './TemplateTag/index.js';
2 changes: 1 addition & 1 deletion src/inlineArrayTransformer/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './inlineArrayTransformer';
export default from './inlineArrayTransformer.js';
2 changes: 1 addition & 1 deletion src/inlineArrayTransformer/inlineArrayTransformer.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { prefixLines, stripLastNewLine } from '../utils';
import { prefixLines, stripLastNewLine } from '../utils/index.js';

/**
* Converts an array substitution to a string containing a list
Expand Down
2 changes: 1 addition & 1 deletion src/inlineLists/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './inlineLists';
export default from './inlineLists.js';
6 changes: 3 additions & 3 deletions src/inlineLists/inlineLists.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import createTag from '../createTag';
import stripIndent from '../stripIndent';
import inlineArrayTransformer from '../inlineArrayTransformer';
import createTag from '../createTag/index.js';
import stripIndent from '../stripIndent/index.js';
import inlineArrayTransformer from '../inlineArrayTransformer/index.js';

const inlineLists = createTag(inlineArrayTransformer(), stripIndent);

Expand Down
2 changes: 1 addition & 1 deletion src/oneLine/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './oneLine';
export default from './oneLine.js';
6 changes: 3 additions & 3 deletions src/oneLine/oneLine.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import createTag from '../createTag';
import trimResultTransformer from '../trimResultTransformer';
import replaceResultTransformer from '../replaceResultTransformer';
import createTag from '../createTag/index.js';
import trimResultTransformer from '../trimResultTransformer/index.js';
import replaceResultTransformer from '../replaceResultTransformer/index.js';

const oneLine = createTag(
replaceResultTransformer(/(?:\n(?:\s*))+/g, ' '),
Expand Down
2 changes: 1 addition & 1 deletion src/oneLineCommaLists/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './oneLineCommaLists';
export default from './oneLineCommaLists.js';
8 changes: 4 additions & 4 deletions src/oneLineCommaLists/oneLineCommaLists.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import createTag from '../createTag';
import inlineArrayTransformer from '../inlineArrayTransformer';
import trimResultTransformer from '../trimResultTransformer';
import replaceResultTransformer from '../replaceResultTransformer';
import createTag from '../createTag/index.js';
import inlineArrayTransformer from '../inlineArrayTransformer/index.js';
import trimResultTransformer from '../trimResultTransformer/index.js';
import replaceResultTransformer from '../replaceResultTransformer/index.js';

const oneLineCommaLists = createTag(
inlineArrayTransformer({ separator: ',' }),
Expand Down
2 changes: 1 addition & 1 deletion src/oneLineCommaListsAnd/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './oneLineCommaListsAnd';
export default from './oneLineCommaListsAnd.js';
8 changes: 4 additions & 4 deletions src/oneLineCommaListsAnd/oneLineCommaListsAnd.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import createTag from '../createTag';
import inlineArrayTransformer from '../inlineArrayTransformer';
import trimResultTransformer from '../trimResultTransformer';
import replaceResultTransformer from '../replaceResultTransformer';
import createTag from '../createTag/index.js';
import inlineArrayTransformer from '../inlineArrayTransformer/index.js';
import trimResultTransformer from '../trimResultTransformer/index.js';
import replaceResultTransformer from '../replaceResultTransformer/index.js';

const oneLineCommaListsAnd = createTag(
inlineArrayTransformer({ separator: ',', conjunction: 'and' }),
Expand Down
2 changes: 1 addition & 1 deletion src/oneLineCommaListsOr/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './oneLineCommaListsOr';
export default from './oneLineCommaListsOr.js';
8 changes: 4 additions & 4 deletions src/oneLineCommaListsOr/oneLineCommaListsOr.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import createTag from '../createTag';
import inlineArrayTransformer from '../inlineArrayTransformer';
import trimResultTransformer from '../trimResultTransformer';
import replaceResultTransformer from '../replaceResultTransformer';
import createTag from '../createTag/index.js';
import inlineArrayTransformer from '../inlineArrayTransformer/index.js';
import trimResultTransformer from '../trimResultTransformer/index.js';
import replaceResultTransformer from '../replaceResultTransformer/index.js';

const oneLineCommaListsOr = createTag(
inlineArrayTransformer({ separator: ',', conjunction: 'or' }),
Expand Down
2 changes: 1 addition & 1 deletion src/oneLineInlineLists/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default from './oneLineInlineLists';
export default from './oneLineInlineLists.js';
8 changes: 4 additions & 4 deletions src/oneLineInlineLists/oneLineInlineLists.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import createTag from '../createTag';
import inlineArrayTransformer from '../inlineArrayTransformer';
import trimResultTransformer from '../trimResultTransformer';
import replaceResultTransformer from '../replaceResultTransformer';
import createTag from '../createTag/index.js';
import inlineArrayTransformer from '../inlineArrayTransformer/index.js';
import trimResultTransformer from '../trimResultTransformer/index.js';
import replaceResultTransformer from '../replaceResultTransformer/index.js';

const oneLineInlineLists = createTag(
inlineArrayTransformer(),
Expand Down
Loading