Skip to content

Commit 8038b49

Browse files
authored
feat: support custom template (#196)
1 parent 7ae1061 commit 8038b49

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/store.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ export interface StoreOptions {
117117
defaultVueRuntimeProdURL?: string
118118
defaultVueServerRendererURL?: string
119119
customElement?: boolean | string | RegExp | (string | RegExp)[]
120+
welcomeFileTemplate?: string
121+
newSFCTemplate?: string
120122
}
121123

122124
export class ReplStore implements Store {
@@ -134,6 +136,8 @@ export class ReplStore implements Store {
134136
private defaultVueRuntimeProdURL: string
135137
private defaultVueServerRendererURL: string
136138
private pendingCompiler: Promise<any> | null = null
139+
private welcomeFileTemplate?: string
140+
private newSFCTemplate?: string
137141

138142
constructor({
139143
serializedState = '',
@@ -144,16 +148,20 @@ export class ReplStore implements Store {
144148
outputMode = 'preview',
145149
productionMode = false,
146150
customElement = /\.ce\.vue$/,
151+
welcomeFileTemplate = welcomeCode,
152+
newSFCTemplate = newSFCCode,
147153
}: StoreOptions = {}) {
148154
const files: StoreState['files'] = {}
155+
this.welcomeFileTemplate = welcomeFileTemplate
156+
this.newSFCTemplate = newSFCTemplate
149157

150158
if (serializedState) {
151159
const saved = JSON.parse(atou(serializedState))
152160
for (const filename in saved) {
153161
setFile(files, filename, saved[filename])
154162
}
155163
} else {
156-
setFile(files, defaultMainFile, welcomeCode)
164+
setFile(files, defaultMainFile, this.welcomeFileTemplate)
157165
}
158166

159167
this.productionMode = productionMode
@@ -250,7 +258,7 @@ export class ReplStore implements Store {
250258
if (typeof fileOrFilename === 'string') {
251259
file = new File(
252260
fileOrFilename,
253-
fileOrFilename.endsWith('.vue') ? newSFCCode : ''
261+
fileOrFilename.endsWith('.vue') ? this.newSFCTemplate : ''
254262
)
255263
} else {
256264
file = fileOrFilename

0 commit comments

Comments
 (0)