From c1aafef03dde690367bb94601b3dc794c812937a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Sun, 24 Dec 2017 14:22:16 +0100 Subject: [PATCH 1/2] Add `sourceType` option --- index.js | 1 + readme.markdown | 1 + test/esm.js | 23 +++++++++++++++++++++++ test/sources/esm.js | 2 ++ 4 files changed, 27 insertions(+) create mode 100644 test/esm.js create mode 100644 test/sources/esm.js diff --git a/index.js b/index.js index fed565c..c8528da 100644 --- a/index.js +++ b/index.js @@ -2,6 +2,7 @@ var aparse = require('acorn').parse; function parse (src, opts) { if (!opts) opts = {} return aparse(src, { + sourceType: opts.sourceType || 'string', ecmaVersion: opts.ecmaVersion || 8, allowHashBang: true }); diff --git a/readme.markdown b/readme.markdown index 7025150..0e09f2c 100644 --- a/readme.markdown +++ b/readme.markdown @@ -58,6 +58,7 @@ If there are no syntax errors in `src`, return `undefined`. Optionally set: * `opts.ecmaVersion` - default: 8 +* `opts.sourceType` - default: 'script' ## err.toString() diff --git a/test/esm.js b/test/esm.js new file mode 100644 index 0000000..ab475d2 --- /dev/null +++ b/test/esm.js @@ -0,0 +1,23 @@ +var test = require('tap').test; + +var fs = require('fs'); +var check = require('../'); + +var file = __dirname + '/sources/esm.js'; +var src = fs.readFileSync(file); + +test('esm with sourceType script', function (t) { + var err = check(src, file); + t.ok(err); + t.equal(err.line, 1); + t.equal(err.column, 1); + t.equal(err.message, "'import' and 'export' may appear only with 'sourceType: module'"); + t.ok(String(err).indexOf(file + ':1')); + t.end(); +}); + +test('esm with sourceType module', function (t) { + var err = check(src, file, { sourceType: 'module' }); + t.notOk(err); + t.end(); +}); diff --git a/test/sources/esm.js b/test/sources/esm.js new file mode 100644 index 0000000..220e115 --- /dev/null +++ b/test/sources/esm.js @@ -0,0 +1,2 @@ +import x from 'y'; +export default z; From 24df74785787044a9093e8e8e2e9927c412e67f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Sun, 24 Dec 2017 14:25:24 +0100 Subject: [PATCH 2/2] s/string/script --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index c8528da..c06177a 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,7 @@ var aparse = require('acorn').parse; function parse (src, opts) { if (!opts) opts = {} return aparse(src, { - sourceType: opts.sourceType || 'string', + sourceType: opts.sourceType || 'script', ecmaVersion: opts.ecmaVersion || 8, allowHashBang: true });