Skip to content

Commit

Permalink
fix: exportSvelteComponents
Browse files Browse the repository at this point in the history
  • Loading branch information
shinokada committed Sep 4, 2023
1 parent 4be06c1 commit 85dc5dd
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 16 deletions.
29 changes: 15 additions & 14 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,32 +71,32 @@ const getDocumentationURL = (packageJsonPath) => {
};
// end of component docs

// add export to package.json

export const exportSvelteComponents = (dir, packageJsonPath) => {
console.log('Adding Svelte components to package.json');

const customEntry = {
'.': {
types: './dist/index.d.ts',
svelte: './dist/index.js'
}
svelte: './dist/index.js',
},
};

const componentExports = {};

const processDirectory = (currentDir, relativePath = '') => {
const componentNames = fs.readdirSync(currentDir);
const processDirectory = (srcDir, relativePath = '') => {
const componentNames = fs.readdirSync(srcDir);

for (const componentName of componentNames) {
const componentPath = path.join(currentDir, componentName);
const componentPath = path.join(srcDir, componentName);
const stat = fs.lstatSync(componentPath);

if (stat.isDirectory()) {
const componentRelativePath = path.join(relativePath, componentName);
processDirectory(componentPath, componentRelativePath);
} else if (stat.isFile() && componentName.endsWith('.svelte')) {
const dtsFile = `${componentName}.d.ts`;
const exportKey = `./${path.join(relativePath, componentName)}`; // Add the ./ prefix
const exportKey = `./${path.basename(componentName)}`;

componentExports[exportKey] = {
types: `./dist/${path.join(relativePath, dtsFile)}`,
Expand All @@ -106,19 +106,20 @@ export const exportSvelteComponents = (dir, packageJsonPath) => {
}
};

processDirectory(dir);
processDirectory(srcDir);

// Read the existing package.json
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));

// Merge custom entry with componentExports
const updatedExports = { ...customEntry, ...componentExports };
// Remove the old "exports" field if it exists
delete packageJson.exports;

packageJson.exports = updatedExports;
// Merge custom entry with componentExports
packageJson.exports = { ...customEntry, ...componentExports };

// Write the updated package.json back to the file
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
};


// end export to package.json

// copy package.json to
Expand Down
49 changes: 47 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,50 @@
"url": "https://github.com/shinokada/svelte-lib-helpers/issues"
},
"homepage": "https://github.com/shinokada/svelte-lib-helpers#readme",
"exports": {}
}
"exports": {
".": {
"types": "./dist/index.d.ts",
"svelte": "./dist/index.js"
},
"./Accordion.svelte": {
"types": "./dist/accordion/Accordion.svelte.d.ts",
"svelte": "./dist/accordion/Accordion.svelte"
},
"./AccordionItem.svelte": {
"types": "./dist/accordion/AccordionItem.svelte.d.ts",
"svelte": "./dist/accordion/AccordionItem.svelte"
},
"./Alert.svelte": {
"types": "./dist/alerts/Alert.svelte.d.ts",
"svelte": "./dist/alerts/Alert.svelte"
},
"./Avatar.svelte": {
"types": "./dist/avatar/Avatar.svelte.d.ts",
"svelte": "./dist/avatar/Avatar.svelte"
},
"./Placeholder.svelte": {
"types": "./dist/avatar/Placeholder.svelte.d.ts",
"svelte": "./dist/avatar/Placeholder.svelte"
},
"./Button.svelte": {
"types": "./dist/buttons/Button.svelte.d.ts",
"svelte": "./dist/buttons/Button.svelte"
},
"./Card.svelte": {
"types": "./dist/cards/Card.svelte.d.ts",
"svelte": "./dist/cards/Card.svelte"
},
"./file1.svelte": {
"types": "./dist/file1.svelte.d.ts",
"svelte": "./dist/file1.svelte"
},
"./file2.svelte": {
"types": "./dist/file2.svelte.d.ts",
"svelte": "./dist/file2.svelte"
},
"./file3.svelte": {
"types": "./dist/file3.svelte.d.ts",
"svelte": "./dist/file3.svelte"
}
}
}

0 comments on commit 85dc5dd

Please sign in to comment.