feat(compiler): include names in source map
This commit is contained in:
@@ -11,7 +11,17 @@ describe('compiler: integration tests', () => {
|
||||
</div>
|
||||
`.trim()
|
||||
|
||||
function getPositionInCode(code: string, token: string) {
|
||||
interface Pos {
|
||||
line: number
|
||||
column: number
|
||||
name?: string
|
||||
}
|
||||
|
||||
function getPositionInCode(
|
||||
code: string,
|
||||
token: string,
|
||||
expectName: string | boolean = false
|
||||
): Pos {
|
||||
const generatedOffset = code.indexOf(token)
|
||||
let line = 1
|
||||
let lastNewLinePos = -1
|
||||
@@ -21,13 +31,17 @@ describe('compiler: integration tests', () => {
|
||||
lastNewLinePos = i
|
||||
}
|
||||
}
|
||||
return {
|
||||
const res: Pos = {
|
||||
line,
|
||||
column:
|
||||
lastNewLinePos === -1
|
||||
? generatedOffset
|
||||
: generatedOffset - lastNewLinePos - 1
|
||||
}
|
||||
if (expectName) {
|
||||
res.name = typeof expectName === 'string' ? expectName : token
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
test('function mode', async () => {
|
||||
@@ -41,6 +55,7 @@ describe('compiler: integration tests', () => {
|
||||
)
|
||||
|
||||
expect(code).toMatchSnapshot()
|
||||
expect(map).toMatchSnapshot()
|
||||
expect(map!.sources).toEqual([`foo.vue`])
|
||||
expect(map!.sourcesContent).toEqual([source])
|
||||
|
||||
@@ -97,6 +112,7 @@ describe('compiler: integration tests', () => {
|
||||
expect(code).toMatch(`const { createVNode, toString, renderList } = Vue`)
|
||||
|
||||
expect(code).toMatchSnapshot()
|
||||
expect(map).toMatchSnapshot()
|
||||
expect(map!.sources).toEqual([`foo.vue`])
|
||||
expect(map!.sourcesContent).toEqual([source])
|
||||
|
||||
@@ -118,29 +134,31 @@ describe('compiler: integration tests', () => {
|
||||
consumer.originalPositionFor(getPositionInCode(code, `bar`))
|
||||
).toMatchObject(getPositionInCode(source, `bar`))
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.bar`))
|
||||
).toMatchObject(getPositionInCode(source, `bar`))
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.bar`, `bar`))
|
||||
).toMatchObject(getPositionInCode(source, `bar`, true))
|
||||
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `world`))
|
||||
).toMatchObject(getPositionInCode(source, `{{ world }}`))
|
||||
consumer.originalPositionFor(getPositionInCode(code, `world`, true))
|
||||
).toMatchObject(getPositionInCode(source, `{{ world }}`, `world`))
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.world`))
|
||||
).toMatchObject(getPositionInCode(source, `{{ world }}`))
|
||||
consumer.originalPositionFor(
|
||||
getPositionInCode(code, `_ctx.world`, `world`)
|
||||
)
|
||||
).toMatchObject(getPositionInCode(source, `{{ world }}`, `world`))
|
||||
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `ok`))
|
||||
).toMatchObject(getPositionInCode(source, `ok`))
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.ok`))
|
||||
).toMatchObject(getPositionInCode(source, `ok`))
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.ok`, `ok`))
|
||||
).toMatchObject(getPositionInCode(source, `ok`, true))
|
||||
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `list`))
|
||||
).toMatchObject(getPositionInCode(source, `list`))
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.list`))
|
||||
).toMatchObject(getPositionInCode(source, `list`))
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.list`, `list`))
|
||||
).toMatchObject(getPositionInCode(source, `list`, true))
|
||||
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `value`))
|
||||
@@ -188,29 +206,31 @@ describe('compiler: integration tests', () => {
|
||||
consumer.originalPositionFor(getPositionInCode(code, `bar`))
|
||||
).toMatchObject(getPositionInCode(source, `bar`))
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.bar`))
|
||||
).toMatchObject(getPositionInCode(source, `bar`))
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.bar`, `bar`))
|
||||
).toMatchObject(getPositionInCode(source, `bar`, true))
|
||||
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `world`))
|
||||
).toMatchObject(getPositionInCode(source, `{{ world }}`))
|
||||
consumer.originalPositionFor(getPositionInCode(code, `world`, true))
|
||||
).toMatchObject(getPositionInCode(source, `{{ world }}`, `world`))
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.world`))
|
||||
).toMatchObject(getPositionInCode(source, `{{ world }}`))
|
||||
consumer.originalPositionFor(
|
||||
getPositionInCode(code, `_ctx.world`, `world`)
|
||||
)
|
||||
).toMatchObject(getPositionInCode(source, `{{ world }}`, `world`))
|
||||
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `ok`))
|
||||
).toMatchObject(getPositionInCode(source, `ok`))
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.ok`))
|
||||
).toMatchObject(getPositionInCode(source, `ok`))
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.ok`, `ok`))
|
||||
).toMatchObject(getPositionInCode(source, `ok`, true))
|
||||
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `list`))
|
||||
).toMatchObject(getPositionInCode(source, `list`))
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.list`))
|
||||
).toMatchObject(getPositionInCode(source, `list`))
|
||||
consumer.originalPositionFor(getPositionInCode(code, `_ctx.list`, `list`))
|
||||
).toMatchObject(getPositionInCode(source, `list`, true))
|
||||
|
||||
expect(
|
||||
consumer.originalPositionFor(getPositionInCode(code, `value`))
|
||||
|
||||
Reference in New Issue
Block a user