-
-
Notifications
You must be signed in to change notification settings - Fork 240
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #130 from ktsn/fix-vue-src
fix(vue): resolve src attribute on the script block on Vue files
- Loading branch information
Showing
11 changed files
with
341 additions
and
54 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,227 @@ | ||
/** | ||
* This declaration is copied from https://github.com/vuejs/vue/pull/7918 | ||
* which may included vue-template-compiler v2.6.0. | ||
*/ | ||
declare module 'vue-template-compiler' { | ||
import Vue, { VNode } from "vue" | ||
|
||
/* | ||
* Template compilation options / results | ||
*/ | ||
interface CompilerOptions { | ||
modules?: ModuleOptions[]; | ||
directives?: Record<string, DirectiveFunction>; | ||
preserveWhitespace?: boolean; | ||
} | ||
|
||
interface CompiledResult { | ||
ast: ASTElement | undefined; | ||
render: string; | ||
staticRenderFns: string[]; | ||
errors: string[]; | ||
tips: string[]; | ||
} | ||
|
||
interface CompiledResultFunctions { | ||
render: () => VNode; | ||
staticRenderFns: (() => VNode)[]; | ||
} | ||
|
||
interface ModuleOptions { | ||
preTransformNode: (el: ASTElement) => ASTElement | undefined; | ||
transformNode: (el: ASTElement) => ASTElement | undefined; | ||
postTransformNode: (el: ASTElement) => void; | ||
genData: (el: ASTElement) => string; | ||
transformCode?: (el: ASTElement, code: string) => string; | ||
staticKeys?: string[]; | ||
} | ||
|
||
type DirectiveFunction = (node: ASTElement, directiveMeta: ASTDirective) => void; | ||
|
||
/* | ||
* AST Types | ||
*/ | ||
|
||
/** | ||
* - 0: FALSE - whole sub tree un-optimizable | ||
* - 1: FULL - whole sub tree optimizable | ||
* - 2: SELF - self optimizable but has some un-optimizable children | ||
* - 3: CHILDREN - self un-optimizable but have fully optimizable children | ||
* - 4: PARTIAL - self un-optimizable with some un-optimizable children | ||
*/ | ||
export type SSROptimizability = 0 | 1 | 2 | 3 | 4 | ||
|
||
export interface ASTModifiers { | ||
[key: string]: boolean; | ||
} | ||
|
||
export interface ASTIfCondition { | ||
exp: string | undefined; | ||
block: ASTElement; | ||
} | ||
|
||
export interface ASTElementHandler { | ||
value: string; | ||
params?: any[]; | ||
modifiers: ASTModifiers | undefined; | ||
} | ||
|
||
export interface ASTElementHandlers { | ||
[key: string]: ASTElementHandler | ASTElementHandler[]; | ||
} | ||
|
||
export interface ASTDirective { | ||
name: string; | ||
rawName: string; | ||
value: string; | ||
arg: string | undefined; | ||
modifiers: ASTModifiers | undefined; | ||
} | ||
|
||
export type ASTNode = ASTElement | ASTText | ASTExpression; | ||
|
||
export interface ASTElement { | ||
type: 1; | ||
tag: string; | ||
attrsList: { name: string; value: any }[]; | ||
attrsMap: Record<string, any>; | ||
parent: ASTElement | undefined; | ||
children: ASTNode[]; | ||
|
||
processed?: true; | ||
|
||
static?: boolean; | ||
staticRoot?: boolean; | ||
staticInFor?: boolean; | ||
staticProcessed?: boolean; | ||
hasBindings?: boolean; | ||
|
||
text?: string; | ||
attrs?: { name: string; value: any }[]; | ||
props?: { name: string; value: string }[]; | ||
plain?: boolean; | ||
pre?: true; | ||
ns?: string; | ||
|
||
component?: string; | ||
inlineTemplate?: true; | ||
transitionMode?: string | null; | ||
slotName?: string; | ||
slotTarget?: string; | ||
slotScope?: string; | ||
scopedSlots?: Record<string, ASTElement>; | ||
|
||
ref?: string; | ||
refInFor?: boolean; | ||
|
||
if?: string; | ||
ifProcessed?: boolean; | ||
elseif?: string; | ||
else?: true; | ||
ifConditions?: ASTIfCondition[]; | ||
|
||
for?: string; | ||
forProcessed?: boolean; | ||
key?: string; | ||
alias?: string; | ||
iterator1?: string; | ||
iterator2?: string; | ||
|
||
staticClass?: string; | ||
classBinding?: string; | ||
staticStyle?: string; | ||
styleBinding?: string; | ||
events?: ASTElementHandlers; | ||
nativeEvents?: ASTElementHandlers; | ||
|
||
transition?: string | true; | ||
transitionOnAppear?: boolean; | ||
|
||
model?: { | ||
value: string; | ||
callback: string; | ||
expression: string; | ||
}; | ||
|
||
directives?: ASTDirective[]; | ||
|
||
forbidden?: true; | ||
once?: true; | ||
onceProcessed?: boolean; | ||
wrapData?: (code: string) => string; | ||
wrapListeners?: (code: string) => string; | ||
|
||
// 2.4 ssr optimization | ||
ssrOptimizability?: SSROptimizability; | ||
|
||
// weex specific | ||
appendAsTree?: boolean; | ||
} | ||
|
||
export interface ASTExpression { | ||
type: 2; | ||
expression: string; | ||
text: string; | ||
tokens: (string | Record<string, any>)[]; | ||
static?: boolean; | ||
// 2.4 ssr optimization | ||
ssrOptimizability?: SSROptimizability; | ||
} | ||
|
||
export interface ASTText { | ||
type: 3; | ||
text: string; | ||
static?: boolean; | ||
isComment?: boolean; | ||
// 2.4 ssr optimization | ||
ssrOptimizability?: SSROptimizability; | ||
} | ||
|
||
/* | ||
* SFC parser related types | ||
*/ | ||
interface SFCParserOptions { | ||
pad?: true | 'line' | 'space'; | ||
} | ||
|
||
export interface SFCBlock { | ||
type: string; | ||
content: string; | ||
attrs: Record<string, string>; | ||
start?: number; | ||
end?: number; | ||
lang?: string; | ||
src?: string; | ||
scoped?: boolean; | ||
module?: string | boolean; | ||
} | ||
|
||
export interface SFCDescriptor { | ||
template: SFCBlock | undefined; | ||
script: SFCBlock | undefined; | ||
styles: SFCBlock[]; | ||
customBlocks: SFCBlock[]; | ||
} | ||
|
||
/* | ||
* Exposed functions | ||
*/ | ||
export function compile( | ||
template: string, | ||
options?: CompilerOptions | ||
): CompiledResult; | ||
|
||
export function compileToFunctions(template: string): CompiledResultFunctions; | ||
|
||
export function ssrCompile( | ||
template: string, | ||
options?: CompilerOptions | ||
): CompiledResult; | ||
|
||
export function ssrCompileToFunctions(template: string): CompiledResultFunctions; | ||
|
||
export function parseComponent( | ||
file: string, | ||
options?: SFCParserOptions | ||
): SFCDescriptor; | ||
} |
Oops, something went wrong.