diff --git a/packages/preprocess/src/svelte-ts-preprocess.ts b/packages/preprocess/src/svelte-ts-preprocess.ts index 25c0acb..60d336c 100644 --- a/packages/preprocess/src/svelte-ts-preprocess.ts +++ b/packages/preprocess/src/svelte-ts-preprocess.ts @@ -1,3 +1,5 @@ +import fs from 'fs' +import path from 'path' import ts from 'typescript' const LANGS = ['ts', 'typescript'] @@ -93,7 +95,8 @@ interface Script { filename: string content: string attributes: { - lang?: string + lang?: string, + src?: string } } @@ -164,6 +167,12 @@ export function preprocess(opts?: Partial) { return } + if (attributes.src) { + const dir = path.parse(filename).dir + filename = path.join(dir, attributes.src) + content = fs.readFileSync(filename).toString() + } + filename = ts.sys.resolvePath(filename) const options = createPreprocessOptions(opts)