Skip to content

Commit 562da10

Browse files
committed
feat(coffeescript): add support for coffeescript
1 parent 455cd98 commit 562da10

File tree

6 files changed

+43
-0
lines changed

6 files changed

+43
-0
lines changed

jest-vue.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const addTemplateMapping = require('./lib/add-template-mapping')
55
const convertSourceMap = require('convert-source-map')
66
const compileBabel = require('./lib/compilers/babel-compiler')
77
const compileTypescript = require('./lib/compilers/typescript-compiler')
8+
const compileCoffeeScript = require('./lib/compilers/coffee-compiler')
89

910
const splitRE = /\r?\n/g
1011

@@ -13,6 +14,10 @@ function processScript (scriptPart) {
1314
return compileTypescript(scriptPart.content)
1415
}
1516

17+
if (scriptPart.lang === 'coffee') {
18+
return compileCoffeeScript(scriptPart.content)
19+
}
20+
1621
return compileBabel(scriptPart.content)
1722
}
1823

lib/compilers/coffee-compiler.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
var ensureRequire = require('../ensure-require.js')
2+
3+
module.exports = function (raw, cb, compiler) {
4+
ensureRequire('coffee', ['coffee-script'])
5+
var coffee = require('coffee-script')
6+
var compiled
7+
try {
8+
compiled = coffee.compile(raw, {
9+
bare: true,
10+
sourceMap: true
11+
})
12+
} catch (err) {
13+
throw new Error(err)
14+
}
15+
return {
16+
code: compiled.js,
17+
map: compiled.v3SourceMap
18+
}
19+
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"babel-jest": "^20.0.3",
1818
"babel-plugin-istanbul": "^4.1.4",
1919
"babel-preset-env": "^1.6.0",
20+
"coffee-script": "^1.12.7",
2021
"conventional-changelog": "^1.1.5",
2122
"cross-env": "^5.0.2",
2223
"eslint": "^4.3.0",

test/coffee.spec.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { shallow } from 'vue-test-utils'
2+
import Coffee from './resources/Coffee.vue'
3+
4+
test('processes .vue file with coffee script', () => {
5+
shallow(Coffee)
6+
})

test/resources/Coffee.vue

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<template>
2+
<div />
3+
</template>
4+
5+
<script lang="coffee">
6+
module.exports =
7+
data: -> {}
8+
</script>

yarn.lock

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -921,6 +921,10 @@ code-point-at@^1.0.0:
921921
version "1.1.0"
922922
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
923923

924+
coffee-script@^1.12.7:
925+
version "1.12.7"
926+
resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53"
927+
924928
color-convert@^1.9.0:
925929
version "1.9.0"
926930
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"

0 commit comments

Comments
 (0)