Skip to content

Commit 84fb328

Browse files
committed
chore: project structure updated to reflect sveltin 0.7.2 with SK next-302
1 parent efa447c commit 84fb328

18 files changed

+277
-210
lines changed

config/defaults.js.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const sveltinVersion = '0.5.4';
2-
const svelteKitVersion = '1.0.0-next.294';
3-
4-
export { sveltinVersion, svelteKitVersion };
1+
const sveltinVersion = '0.7.2';
2+
const sveltekitVersion = process.env.VITE_SVELTEKIT_VERSION;
3+
const buildTime = process.env.VITE_BUILD_TIME;
4+
export { sveltinVersion, sveltekitVersion, buildTime };

package.json

+6-4
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
"devDependencies": {
1717
"@commitlint/cli": "^16.2.1",
1818
"@commitlint/config-conventional": "^16.2.1",
19-
"@indaco/svelte-iconoir": "2.2.1",
20-
"@sveltejs/adapter-static": "^1.0.0-next.29",
21-
"@sveltejs/kit": "^1.0.0-next.294",
19+
"@indaco/svelte-iconoir": "^2.3.0",
20+
"@sveltejs/adapter-static": "1.0.0-next.29",
21+
"@sveltejs/kit": "1.0.0-next.302",
2222
"@sveltinio/essentials": "^0.1.2",
2323
"@sveltinio/seo": "^0.1.5",
2424
"@sveltinio/services": "^0.1.2",
@@ -45,7 +45,9 @@
4545
"mdsvex": "^0.10.5",
4646
"mdsvex-relative-images": "^1.0.1",
4747
"postcss": "^8.4.8",
48-
"postcss-load-config": "^3.1.3",
48+
"postcss-import": "^14.0.2",
49+
"postcss-load-config": "^3.1.1",
50+
"postcss-nested": "^5.0.6",
4951
"prettier": "^2.5.1",
5052
"prettier-plugin-svelte": "^2.6.0",
5153
"prettier-plugin-tailwindcss": "^0.1.8",

pnpm-lock.yaml

+37-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

postcss.config.cjs

+5-10
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
1-
const tailwindcss = require('tailwindcss');
2-
const autoprefixer = require('autoprefixer');
31
const cssnano = require('cssnano');
2+
const autoprefixer = require('autoprefixer');
3+
const postcssImport = require('postcss-import');
4+
const nesting = require('tailwindcss/nesting');
5+
const tailwindcss = require('tailwindcss');
46

57
const mode = process.env.NODE_ENV;
68
const dev = mode === 'development';
79

810
const config = {
9-
plugins: [
10-
tailwindcss(),
11-
autoprefixer(),
12-
!dev &&
13-
cssnano({
14-
preset: 'default'
15-
})
16-
]
11+
plugins: [postcssImport, nesting, tailwindcss, autoprefixer, !dev && cssnano]
1712
};
1813

1914
module.exports = config;

src/app.css

+8
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,11 @@
127127
--color-border-accent-dark: #1e2028 /* pearl */;
128128
}
129129
}
130+
131+
.md-content {
132+
@apply prose prose-sveltin;
133+
}
134+
135+
.md-content-dark {
136+
@apply prose-invert;
137+
}

src/lib/cli/apiCli.ts

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import type { DynamicObject } from '$lib/interfaces';
2+
import { ContentMetadata, ResourceContent, ResourceContentMaker } from '@sveltinio/widgets/types';
3+
4+
export const list = async (withMarkup = false) => {
5+
const contentFiles = import.meta.glob('/content/cli/**/*.{svelte.md,md,svx}');
6+
const contentFilesArray = Object.entries(contentFiles);
7+
const contents = await Promise.all(
8+
contentFilesArray.map(async ([path, resolver]) => {
9+
const data = await resolver();
10+
const result: DynamicObject = {
11+
meta: data.metadata,
12+
path: path
13+
};
14+
if (withMarkup) {
15+
result.markup = data.default.render();
16+
}
17+
return result;
18+
})
19+
);
20+
const publishedByDate = contents
21+
.filter((elem) => !elem.meta.draft)
22+
.sort((a, b) => (a.meta.created_at < b.meta.created_at ? 1 : -1));
23+
24+
return publishedByDate;
25+
};
26+
27+
export const getSingle = async (slug: string) => {
28+
const resourceName = 'cli';
29+
const publishedByDate = await list(true);
30+
31+
const selected = publishedByDate.filter((item) => {
32+
return item.meta.slug == slug;
33+
});
34+
35+
if (selected.length != 0) {
36+
const selectedItemIndex = publishedByDate.findIndex((elem) => slug === elem.meta.slug);
37+
const selectedItem = publishedByDate[selectedItemIndex];
38+
const current = ResourceContentMaker.createWithValues(
39+
resourceName,
40+
selectedItem.meta,
41+
selectedItem.markup.html
42+
);
43+
const previous: ResourceContent = {
44+
resource: resourceName,
45+
metadata: <ContentMetadata>{
46+
title: publishedByDate[selectedItemIndex + 1]?.meta.title,
47+
slug: publishedByDate[selectedItemIndex + 1]?.meta.slug
48+
}
49+
};
50+
const next: ResourceContent = {
51+
resource: resourceName,
52+
metadata: <ContentMetadata>{
53+
title: publishedByDate[selectedItemIndex - 1]?.meta.title,
54+
slug: publishedByDate[selectedItemIndex - 1]?.meta.slug
55+
}
56+
};
57+
58+
return {
59+
status: 200,
60+
current,
61+
previous,
62+
next
63+
};
64+
}
65+
return {
66+
status: 404
67+
};
68+
};

src/lib/cli/getCli.js

-12
This file was deleted.

src/lib/interfaces.ts

+4
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,7 @@ export interface ExternalLinkItem {
66
url: string;
77
weight: number;
88
}
9+
10+
export interface DynamicObject {
11+
[key: string]: any;
12+
}

src/lib/utils/collections.js

+29-27
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@ import reduce from 'lodash-es/reduce.js';
33

44
/**
55
* @param {string} on
6-
* @param {any[]} collection
7-
* @param {string[]} giveBack
6+
* @param {Array.<Object>} collection
7+
* @param {Array.<string>} giveBack
8+
*
9+
* @returns {Array.<Object>}
810
*/
911
export const groupedByOne = (on, collection, giveBack) => {
1012
const res = [];
1113
const obj = {};
1214

1315
forEach(collection, (curr) => {
14-
const property = curr[on];
16+
const property = curr.meta[on];
1517
if (property != undefined) {
1618
if (!(property in obj)) {
1719
obj[property] = { name: property, items: [] };
@@ -20,7 +22,7 @@ export const groupedByOne = (on, collection, giveBack) => {
2022

2123
let result = {};
2224
forEach(giveBack, (value) => {
23-
result[value] = curr[value];
25+
result[value] = curr.meta[value];
2426
});
2527
obj[property].items.push(result);
2628
}
@@ -31,30 +33,30 @@ export const groupedByOne = (on, collection, giveBack) => {
3133

3234
/**
3335
* @param {string} on
34-
* @param {any[]} collection
35-
* @param {string[]} giveBack
36+
* @param {Array.<Object>} collection
37+
* @param {Array.<string>} giveBack
38+
*
39+
* @returns {Array.<Object>}
3640
*/
3741
export const groupedByMany = (on, collection, giveBack) => {
38-
return [
39-
Object.entries(
40-
reduce(
41-
collection,
42-
(acc, curr) => {
43-
forEach(curr[on], function (item) {
44-
let result = {};
45-
forEach(giveBack, (element) => {
46-
result[element] = curr[element];
47-
});
48-
if (acc[item]) {
49-
acc[item].push(result);
50-
} else {
51-
acc[item] = [result];
52-
}
42+
return Object.entries(
43+
reduce(
44+
collection,
45+
(acc, curr) => {
46+
forEach(curr.meta[on], function (item) {
47+
let result = {};
48+
forEach(giveBack, (element) => {
49+
result[element] = curr.meta[element];
5350
});
54-
return acc;
55-
},
56-
{}
57-
)
58-
).map(([name, items]) => ({ name, items }))
59-
];
51+
if (acc[item]) {
52+
acc[item].push(result);
53+
} else {
54+
acc[item] = [result];
55+
}
56+
});
57+
return acc;
58+
},
59+
{}
60+
)
61+
).map(([name, items]) => ({ name, items }));
6062
};
+18-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
1-
import { published } from '$lib/cli/getCli.js';
1+
import { list } from '$lib/cli/apiCli';
2+
import { ContentMetadata, ResourceContent, ResourceContentMaker } from '@sveltinio/widgets/types';
23

34
export async function get() {
4-
const body = Object.keys(published).map((slug) => ({
5-
slug,
6-
...published[slug]
7-
}));
5+
const resourceName = 'cli';
6+
const data = await list();
7+
8+
const items: Array<ResourceContent> = [];
9+
data.forEach((elem) => {
10+
const item = ResourceContentMaker.createWithValues(
11+
resourceName,
12+
<ContentMetadata>elem.meta,
13+
''
14+
);
15+
items.push(item);
16+
});
817
return {
918
status: 200,
10-
body: JSON.stringify(body)
19+
body: {
20+
resourceName: resourceName,
21+
items: items
22+
}
1123
};
1224
}
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { sveltinVersion, sveltekitVersion, buildTime } from '$config/defaults.js';
2+
export function get(): Record<string, unknown> {
3+
return {
4+
body: {
5+
sveltinVersion,
6+
sveltekitVersion,
7+
buildTime
8+
}
9+
};
10+
}

0 commit comments

Comments
 (0)