Skip to content

Commit fe6b689

Browse files
committed
Remove type imports
1 parent 00210c0 commit fe6b689

27 files changed

+76
-71
lines changed

src/autoProcess.ts

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,32 @@ import stripIndent from 'strip-indent';
33
import {
44
PreprocessorGroup,
55
Preprocessor,
6-
Options,
76
Processed,
87
TransformerArgs,
98
TransformerOptions,
109
Transformers,
10+
Options,
1111
} from './types';
12-
import { hasPostCssInstalled } from './modules/hasPostcssInstalled';
12+
import { hasDepInstalled } from './modules/hasDepInstalled';
1313
import { concat } from './modules/concat';
1414
import { parseFile } from './modules/parseFile';
1515
import { addLanguageAlias } from './modules/language';
1616
import { throwError } from './modules/errors';
1717

18-
type AutoPreprocessOptions = Transformers & {
18+
type AutoPreprocessOptions = {
1919
markupTagName?: string;
2020
aliases?: Array<[string, string]>;
2121
preserve?: string[];
22+
typescript?: TransformerOptions<Options.Typescript>;
23+
scss?: TransformerOptions<Options.Sass>;
24+
sass?: TransformerOptions<Options.Sass>;
25+
less?: TransformerOptions<Options.Less>;
26+
stylus?: TransformerOptions<Options.Stylus>;
27+
postcss?: TransformerOptions<Options.Postcss>;
28+
coffeescript?: TransformerOptions<Options.Coffeescript>;
29+
pug?: TransformerOptions<Options.Pug>;
30+
globalStyle?: Options.GlobalStyle;
31+
replace?: Options.Replace;
2232
// workaround while we don't have this
2333
// https://github.com/microsoft/TypeScript/issues/17867
2434
[languageName: string]:
@@ -235,28 +245,23 @@ export function autoPreprocess(
235245

236246
let { code, map, dependencies } = transformResult;
237247

238-
if (transformers.postcss) {
239-
const transformed = await runTransformer(
240-
'postcss',
241-
transformers.postcss,
242-
{ content: code, map, filename, attributes },
243-
);
248+
if (await hasDepInstalled('postcss')) {
249+
if (transformers.postcss) {
250+
const transformed = await runTransformer(
251+
'postcss',
252+
transformers.postcss,
253+
{ content: code, map, filename, attributes },
254+
);
244255

245-
code = transformed.code;
246-
map = transformed.map;
247-
dependencies = concat(dependencies, transformed.dependencies);
248-
}
256+
code = transformed.code;
257+
map = transformed.map;
258+
dependencies = concat(dependencies, transformed.dependencies);
259+
}
249260

250-
if (await hasPostCssInstalled()) {
251261
const transformed = await runTransformer(
252262
'globalStyle',
253263
transformers?.globalStyle,
254-
{
255-
content: code,
256-
map,
257-
filename,
258-
attributes,
259-
},
264+
{ content: code, map, filename, attributes },
260265
);
261266

262267
code = transformed.code;

src/modules/hasDepInstalled.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const cachedResult: Record<string, boolean> = {};
2+
3+
export async function hasDepInstalled(dep: string) {
4+
if (cachedResult[dep] != null) {
5+
return cachedResult;
6+
}
7+
8+
let result = false;
9+
10+
try {
11+
await import(dep);
12+
result = true;
13+
} catch (e) {
14+
result = false;
15+
}
16+
17+
return (cachedResult[dep] = result);
18+
}

src/modules/hasPostcssInstalled.ts

Lines changed: 0 additions & 18 deletions
This file was deleted.

src/modules/language.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { basename } from 'path';
22

3-
import type { PreprocessorArgs } from '../types';
3+
import { PreprocessorArgs } from '../types';
44

55
export const ALIAS_MAP = new Map([
66
['pcss', 'css'],

src/modules/parseFile.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { readFile, access } from 'fs';
22
import { resolve, dirname } from 'path';
33

4-
import type { PreprocessorArgs } from '../types';
4+
import { PreprocessorArgs } from '../types';
55
import { getLanguage } from './language';
66

77
export const resolveSrc = (importerFile: string, srcPath: string) =>

src/processors/babel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PreprocessorGroup, Options } from '../types';
1+
import { PreprocessorGroup, Options } from '../types';
22
import { concat } from '../modules/concat';
33
import { parseFile } from '../modules/parseFile';
44

src/processors/coffeescript.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PreprocessorGroup, Options } from '../types';
1+
import { PreprocessorGroup, Options } from '../types';
22
import { parseFile } from '../modules/parseFile';
33
import { concat } from '../modules/concat';
44

src/processors/globalStyle.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PreprocessorGroup } from '../types';
1+
import { PreprocessorGroup } from '../types';
22

33
export default (): PreprocessorGroup => {
44
return {

src/processors/less.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PreprocessorGroup, Options } from '../types';
1+
import { PreprocessorGroup, Options } from '../types';
22
import { parseFile } from '../modules/parseFile';
33
import { concat } from '../modules/concat';
44

src/processors/postcss.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PreprocessorGroup, Options } from '../types';
1+
import { PreprocessorGroup, Options } from '../types';
22
import { parseFile } from '../modules/parseFile';
33
import { concat } from '../modules/concat';
44

src/processors/pug.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Options, PreprocessorGroup } from '../types';
1+
import { Options, PreprocessorGroup } from '../types';
22

33
export default (options?: Options.Pug): PreprocessorGroup => ({
44
async markup({ content, filename }) {

src/processors/replace.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PreprocessorGroup, Options } from '../types';
1+
import { PreprocessorGroup, Options } from '../types';
22

33
export default (options: Options.Replace): PreprocessorGroup => ({
44
async markup({ content, filename }) {

src/processors/scss.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PreprocessorGroup, Options } from '../types';
1+
import { PreprocessorGroup, Options } from '../types';
22
import { parseFile } from '../modules/parseFile';
33
import { concat } from '../modules/concat';
44

src/processors/stylus.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Options, PreprocessorGroup } from '../types';
1+
import { Options, PreprocessorGroup } from '../types';
22
import { parseFile } from '../modules/parseFile';
33
import { concat } from '../modules/concat';
44

src/processors/typescript.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Options, PreprocessorGroup } from '../types';
1+
import { Options, PreprocessorGroup } from '../types';
22
import { parseFile } from '../modules/parseFile';
33
import { concat } from '../modules/concat';
44

src/transformers/babel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { transformAsync } from '@babel/core';
22

3-
import type { Transformer, Options } from '../types';
3+
import { Transformer, Options } from '../types';
44

55
const transformer: Transformer<Options.Babel> = async ({
66
content,

src/transformers/coffeescript.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import coffeescript from 'coffeescript';
22

3-
import type { Transformer, Options } from '../types';
3+
import { Transformer, Options } from '../types';
44

55
const transformer: Transformer<Options.Coffeescript> = ({
66
content,

src/transformers/globalStyle.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import postcss, { AtRule } from 'postcss';
22

3-
import type { Transformer, Options } from '../types';
3+
import { Transformer, Options } from '../types';
44
import { globalifySelector } from '../modules/globalifySelector';
55

66
const selectorPattern = /:global(?!\()/;

src/transformers/less.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import less from 'less';
22

33
import { getIncludePaths } from '../modules/getIncludePaths';
4-
import type { Transformer, Options } from '../types';
4+
import { Transformer, Options } from '../types';
55

66
const transformer: Transformer<Options.Less> = async ({
77
content,

src/transformers/postcss.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import postcss from 'postcss';
22

3-
import type { Transformer, Options } from '../types';
3+
import { Transformer, Options } from '../types';
44

55
const process = async (
66
{ plugins, parser, syntax }: Options.Postcss,

src/transformers/pug.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import detectIndent from 'detect-indent';
22
import pug from 'pug';
33

4-
import type { Transformer, Options } from '../types';
4+
import { Transformer, Options } from '../types';
55

66
// Mixins to use svelte template features
77
const GET_MIXINS = (identationType: 'tab' | 'space') =>

src/transformers/replace.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Transformer, Options } from '../types';
1+
import { Transformer, Options } from '../types';
22

33
const transformer: Transformer<Options.Replace> = async ({
44
content,

src/transformers/scss.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import type { Result } from 'sass';
1+
import { Result } from 'sass';
22

3-
import type { Transformer, Processed, Options } from '../types';
3+
import { Transformer, Processed, Options } from '../types';
44
import { getIncludePaths } from '../modules/getIncludePaths';
55
import { importAny } from '../modules/importAny';
66

src/transformers/stylus.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import path from 'path';
33
import stylus from 'stylus';
44

55
import { getIncludePaths } from '../modules/getIncludePaths';
6-
import type { Transformer, Options } from '../types';
6+
import { Transformer, Options } from '../types';
77

88
const transformer: Transformer<Options.Stylus> = ({
99
content,

src/transformers/typescript.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { dirname, basename, resolve } from 'path';
33

44
import ts from 'typescript';
55

6-
import type { Transformer, Options } from '../types';
6+
import { Transformer, Options } from '../types';
77

88
type CompilerOptions = Options.Typescript['compilerOptions'];
99

@@ -130,7 +130,7 @@ function createImportTransformerFromProgram(program: ts.Program) {
130130
let newImportClause: ts.ImportClause = node.importClause;
131131

132132
if (node.importClause) {
133-
// import type {...} from './blah'
133+
// import {...} from './blah'
134134
if (node.importClause?.isTypeOnly) {
135135
return ts.createEmptyStatement();
136136
}

src/types/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import type {
1+
import {
22
Processed as SvelteProcessed,
33
Preprocessor,
44
} from 'svelte/types/compiler/preprocess';
55

6-
import type * as Options from './options';
6+
import * as Options from './options';
77

8-
export type { Options };
8+
export { Options };
99

10-
export type {
10+
export {
1111
Processed as SvelteProcessed,
1212
PreprocessorGroup,
1313
Preprocessor,

src/types/options.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import type postcss from 'postcss';
2-
import type { Options as SassOptions, render, renderSync } from 'sass';
3-
import type { Options as PugOptions } from 'pug';
4-
import type { CompilerOptions } from 'typescript';
5-
import type { TransformOptions as BabelOptions } from '@babel/core';
1+
import postcss from 'postcss';
2+
import { Options as SassOptions, render, renderSync } from 'sass';
3+
import { Options as PugOptions } from 'pug';
4+
import { CompilerOptions } from 'typescript';
5+
import { TransformOptions as BabelOptions } from '@babel/core';
66

77
export interface Coffeescript {
88
inlineMap?: boolean;

0 commit comments

Comments
 (0)