Skip to content

Commit 177be00

Browse files
authored
feat(cli): workspace now gives files object (#755)
* feat(cli): workspace now gives `files` object * making use of `files.svelteConfig`
1 parent a7ed96d commit 177be00

File tree

10 files changed

+30
-17
lines changed

10 files changed

+30
-17
lines changed

.changeset/thirty-shrimps-fry.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'sv': patch
3+
---
4+
5+
feat(cli): workspace now gives `files` object with `viteConfig` and `svelteConfig` paths to be used in add-ons

packages/addons/devtools-json/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ export default defineAddon({
88
homepage: 'https://github.com/ChromeDevTools/vite-plugin-devtools-json',
99
options: {},
1010

11-
run: ({ sv, viteConfigFile }) => {
11+
run: ({ sv, files }) => {
1212
sv.devDependency('vite-plugin-devtools-json', '^1.0.0');
1313

1414
// add the vite plugin
15-
sv.file(viteConfigFile, (content) => {
15+
sv.file(files.viteConfig, (content) => {
1616
const { ast, generateCode } = parseScript(content);
1717

1818
const vitePluginName = 'devtoolsJson';

packages/addons/mdsvex/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ export default defineAddon({
77
shortDescription: 'svelte + markdown',
88
homepage: 'https://mdsvex.pngwn.io',
99
options: {},
10-
run: ({ sv }) => {
10+
run: ({ sv, files }) => {
1111
sv.devDependency('mdsvex', '^0.12.6');
1212

13-
sv.file('svelte.config.js', (content) => {
13+
sv.file(files.svelteConfig, (content) => {
1414
const { ast, generateCode } = parseScript(content);
1515

1616
imports.addNamed(ast, { from: 'mdsvex', imports: ['mdsvex'] });

packages/addons/paraglide/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export default defineAddon({
5555
setup: ({ kit, unsupported }) => {
5656
if (!kit) unsupported('Requires SvelteKit');
5757
},
58-
run: ({ sv, options, viteConfigFile, typescript, kit }) => {
58+
run: ({ sv, options, files, typescript, kit }) => {
5959
const ext = typescript ? 'ts' : 'js';
6060
if (!kit) throw new Error('SvelteKit is required');
6161

@@ -81,7 +81,7 @@ export default defineAddon({
8181
});
8282

8383
// add the vite plugin
84-
sv.file(viteConfigFile, (content) => {
84+
sv.file(files.viteConfig, (content) => {
8585
const { ast, generateCode } = parseScript(content);
8686

8787
const vitePluginName = 'paraglideVitePlugin';

packages/addons/sveltekit-adapter/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export default defineAddon({
2929
setup: ({ kit, unsupported }) => {
3030
if (!kit) unsupported('Requires SvelteKit');
3131
},
32-
run: ({ sv, options }) => {
32+
run: ({ sv, options, files }) => {
3333
const adapter = adapters.find((a) => a.id === options.adapter)!;
3434

3535
// removes previously installed adapters
@@ -48,7 +48,7 @@ export default defineAddon({
4848

4949
sv.devDependency(adapter.package, adapter.version);
5050

51-
sv.file('svelte.config.js', (content) => {
51+
sv.file(files.svelteConfig, (content) => {
5252
const { ast, generateCode } = parseScript(content);
5353

5454
// finds any existing adapter's import declaration

packages/addons/tailwindcss/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export default defineAddon({
3232
shortDescription: 'css framework',
3333
homepage: 'https://tailwindcss.com',
3434
options,
35-
run: ({ sv, options, viteConfigFile, typescript, kit, dependencyVersion }) => {
35+
run: ({ sv, options, files, typescript, kit, dependencyVersion }) => {
3636
const prettierInstalled = Boolean(dependencyVersion('prettier'));
3737

3838
sv.devDependency('tailwindcss', '^4.1.14');
@@ -48,7 +48,7 @@ export default defineAddon({
4848
}
4949

5050
// add the vite plugin
51-
sv.file(viteConfigFile, (content) => {
51+
sv.file(files.viteConfig, (content) => {
5252
const { ast, generateCode } = parseScript(content);
5353

5454
const vitePluginName = 'tailwindcss';

packages/addons/vitest-addon/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export default defineAddon({
2020
shortDescription: 'unit testing',
2121
homepage: 'https://vitest.dev',
2222
options,
23-
run: ({ sv, viteConfigFile, typescript, kit, options }) => {
23+
run: ({ sv, files, typescript, kit, options }) => {
2424
const ext = typescript ? 'ts' : 'js';
2525
const unitTesting = options.usages.includes('unit');
2626
const componentTesting = options.usages.includes('component');
@@ -97,11 +97,11 @@ export default defineAddon({
9797
});
9898
}
9999

100-
sv.file(viteConfigFile, (content) => {
100+
sv.file(files.viteConfig, (content) => {
101101
const { ast, generateCode } = parseScript(content);
102102

103103
const clientObjectExpression = object.create({
104-
extends: `./${viteConfigFile}`,
104+
extends: `./${files.viteConfig}`,
105105
test: {
106106
name: 'client',
107107
environment: 'browser',
@@ -117,7 +117,7 @@ export default defineAddon({
117117
});
118118

119119
const serverObjectExpression = object.create({
120-
extends: `./${viteConfigFile}`,
120+
extends: `./${files.viteConfig}`,
121121
test: {
122122
name: 'server',
123123
environment: 'node',

packages/cli/commands/add/utils.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ export function fileExists(cwd: string, filePath: string): boolean {
110110
export const commonFilePaths = {
111111
packageJson: 'package.json',
112112
svelteConfig: 'svelte.config.js',
113+
svelteConfigTS: 'svelte.config.ts',
113114
jsconfig: 'jsconfig.json',
114115
tsconfig: 'tsconfig.json',
115116
viteConfig: 'vite.config.js',

packages/cli/commands/add/workspace.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,13 @@ export async function createWorkspace({
2727

2828
// This is not linked with typescript detection
2929
const viteConfigPath = path.join(resolvedCwd, commonFilePaths.viteConfigTS);
30-
const viteConfigFile = fs.existsSync(viteConfigPath)
30+
const viteConfig = fs.existsSync(viteConfigPath)
3131
? commonFilePaths.viteConfigTS
3232
: commonFilePaths.viteConfig;
33+
const sveteConfigPath = path.join(resolvedCwd, commonFilePaths.svelteConfigTS);
34+
const svelteConfig = fs.existsSync(sveteConfigPath)
35+
? commonFilePaths.svelteConfigTS
36+
: commonFilePaths.svelteConfig;
3337

3438
let dependencies: Record<string, string> = {};
3539
let directory = resolvedCwd;
@@ -62,7 +66,7 @@ export async function createWorkspace({
6266
options,
6367
packageManager: packageManager ?? (await detect({ cwd }))?.name ?? getUserAgent() ?? 'npm',
6468
typescript: usesTypescript,
65-
viteConfigFile,
69+
files: { viteConfig, svelteConfig },
6670
kit: dependencies['@sveltejs/kit'] ? parseKitOptions(resolvedCwd) : undefined,
6771
dependencyVersion: (pkg) => dependencies[pkg]
6872
};

packages/core/addon/workspace.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ export type Workspace<Args extends OptionDefinition> = {
1313
*/
1414
dependencyVersion: (pkg: string) => string | undefined;
1515
typescript: boolean;
16-
viteConfigFile: string;
16+
files: {
17+
viteConfig: string;
18+
svelteConfig: string;
19+
};
1720
kit: { libDirectory: string; routesDirectory: string } | undefined;
1821
packageManager: PackageManager;
1922
};

0 commit comments

Comments
 (0)