Skip to content

Commit c0e4ad9

Browse files
committed
chore: lint files
1 parent 659dab0 commit c0e4ad9

File tree

572 files changed

+50740
-49771
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

572 files changed

+50740
-49771
lines changed

.github/workflows/publish.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
name: Publish Release
22
on:
3-
release:
4-
types: [created]
3+
# run after the 'Generate Release' workflow completes
4+
workflow_run:
5+
workflows: ["Generate Release"]
6+
types: [completed]
57

68
permissions:
79
id-token: write # Required for OIDC
810
contents: read
911

1012
jobs:
1113
publish:
14+
# only publish when the 'Generate Release' workflow was successful
15+
if: ${{ github.event.workflow_run.conclusion == 'success' }}
1216
runs-on: ubuntu-latest
1317
steps:
1418
- uses: actions/checkout@v6
@@ -39,9 +43,9 @@ jobs:
3943
- name: Publish Examples pre-release 🦋
4044
if: "github.event.prerelease" # only for pre-release
4145
working-directory: ./packages/examples
42-
run: npm run publish:examples:pre
46+
run: npm publish --tag pre
4347

4448
- name: Publish Examples release 🦋
4549
if: "!github.event.prerelease" # only for main release
4650
working-directory: ./packages/examples
47-
run: npm run publish:examples
51+
run: npm publish

.github/workflows/release.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- name: Generate release body 📝
3232
run: npx extract-changelog-release > RELEASE_BODY.md
3333

34-
- name: Create github release 🎉
34+
- name: Create GitHub release 🎉
3535
uses: ncipollo/release-action@v1
3636
with:
3737
bodyFile: "RELEASE_BODY.md"
@@ -42,6 +42,8 @@ jobs:
4242
- name: Publish documentation 📰
4343
# only update documentation for main releases
4444
if: ${{ github.ref != 'refs/tags/v[0-9]+.[0-9]+.[0-9]+-pre.[0-9]+' }}
45-
run: git push origin develop:master
45+
run: |
46+
git fetch origin develop:develop
47+
git push origin develop:master
4648
env:
4749
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.scripts/gen-comp-types.ts

Lines changed: 124 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,26 @@ import fs from "fs";
33
import path from "path";
44
import process from "process";
55

6-
import { createChecker } from "vue-component-meta";
6+
import { createChecker, PropertyMeta } from "vue-component-meta";
77

88
import {
9-
getComponents,
10-
fileExist,
11-
getFolders,
9+
getComponents,
10+
fileExist,
11+
getFolders,
1212
} from "../packages/docs/src/utils.ts";
1313

1414
const __dirname = process.cwd();
1515

1616
const componentDirectory = "./packages/oruga/src/components";
1717

1818
if (!fileExist(path.resolve(__dirname, componentDirectory)))
19-
throw new Error("Path not exist: " + componentDirectory);
19+
throw new Error("Path not exist: " + componentDirectory);
2020

2121
console.log("Creating vue-component-meta checker...");
2222
// create component meta checker
2323
const checker = createChecker(
24-
path.resolve(__dirname, "./packages/oruga/tsconfig.app.json"),
25-
{ forceUseTs: true, printer: { newLine: 1 } },
24+
path.resolve(__dirname, "./packages/oruga/tsconfig.app.json"),
25+
{ forceUseTs: true, printer: { newLine: 1 } },
2626
);
2727

2828
// get all component folders
@@ -31,102 +31,102 @@ const component_folders = getFolders(componentDirectory);
3131
console.log(`Processing components...`);
3232

3333
const components = component_folders
34-
.map((folder) => {
35-
const name = folder.toLowerCase();
36-
const folderPath = path.resolve(__dirname, componentDirectory, folder);
37-
38-
// get all components in component folder
39-
const folderComponents = getComponents(folderPath);
40-
41-
// get all configurable props from all components in folder
42-
const props = folderComponents
43-
.flatMap((comp) => {
44-
const file = comp + ".vue";
45-
const componentPath = path.resolve(
46-
__dirname,
47-
componentDirectory,
48-
folder,
49-
file,
50-
);
51-
const meta = checker.getComponentMeta(componentPath);
52-
53-
if (!meta.props.length) {
54-
console.warn(
55-
`Failure parsing component '${name}': no properties found.`,
56-
);
57-
console.log("Recreating vue-component-meta checker...");
58-
}
59-
60-
return meta.props
61-
.filter((prop) => {
62-
// filter only class props and configurable props
63-
if (prop.name.includes("Class")) return true;
64-
if (prop.default?.includes("getDefault")) {
65-
const path = (prop.default.match(/"(.*?)"/) || [
66-
"",
67-
])[0];
68-
return path.includes(".");
69-
}
70-
return false;
71-
})
72-
.map((prop) => {
73-
// remove undefined because we wrap the object with partial
74-
if (prop.type.includes("| undefined"))
75-
prop.type = prop.type.replace(" | undefined", "");
76-
77-
// change type for class props
78-
if (prop.type === "ComponentClass")
79-
prop.type = "ClassDefinition";
80-
81-
if (prop.name.includes("Classes")) {
82-
prop.type = "Record<string, any>";
83-
return prop;
84-
}
85-
86-
// change property name based on config path
87-
if (
88-
prop.default &&
89-
prop.default?.includes("getDefault")
90-
) {
91-
let name = (prop.default.match(/"(.*?)"/) || [
92-
"",
93-
])[0];
94-
name = name.substring(1, name.length - 1);
95-
const split = name.split(".");
96-
name = split.length == 2 ? split[1] : split[0];
97-
if (prop.name !== name) prop.name = name;
98-
}
99-
100-
// sort union types
101-
if (
102-
prop.type.includes(" | ") &&
103-
!prop.type.includes("(") &&
104-
!prop.type.includes("[")
105-
)
106-
prop.type = prop.type
107-
.split(" | ")
108-
.sort((a, b) => a.localeCompare(b))
109-
.join(" | ");
110-
111-
// set deprecated text if available
112-
prop.deprecated = prop.tags
113-
?.filter((tag) => tag.name === "deprecated")
114-
.map((tag) => tag.text)
115-
.join("");
116-
117-
return prop;
118-
});
119-
})
120-
// filter duplicates
121-
.filter(
122-
(item, idx, self) =>
123-
idx === self.findIndex((p) => p.name === item.name),
124-
);
125-
126-
return { name, props };
127-
})
128-
// sort components by name
129-
.sort((a, b) => a.name.localeCompare(b.name));
34+
.map((folder) => {
35+
const name = folder.toLowerCase();
36+
const folderPath = path.resolve(__dirname, componentDirectory, folder);
37+
38+
// get all components in component folder
39+
const folderComponents = getComponents(folderPath);
40+
41+
// get all configurable props from all components in folder
42+
const props = folderComponents
43+
.flatMap((comp) => {
44+
const file = comp + ".vue";
45+
const componentPath = path.resolve(
46+
__dirname,
47+
componentDirectory,
48+
folder,
49+
file,
50+
);
51+
const meta = checker.getComponentMeta(componentPath);
52+
53+
if (!meta.props.length) {
54+
console.warn(
55+
`Failure parsing component '${name}': no properties found.`,
56+
);
57+
console.log("Recreating vue-component-meta checker...");
58+
}
59+
60+
return meta.props
61+
.filter((prop) => {
62+
// filter only class props and configurable props
63+
if (prop.name.includes("Class")) return true;
64+
if (prop.default?.includes("getDefault")) {
65+
const path = (prop.default.match(/"(.*?)"/) || [
66+
"",
67+
])[0];
68+
return path.includes(".");
69+
}
70+
return false;
71+
})
72+
.map((prop: PropertyMeta & { deprecated?: string }) => {
73+
// remove undefined because we wrap the object with partial
74+
if (prop.type.includes("| undefined"))
75+
prop.type = prop.type.replace(" | undefined", "");
76+
77+
// change type for class props
78+
if (prop.type === "ComponentClass")
79+
prop.type = "ClassDefinition";
80+
81+
if (prop.name.includes("Classes")) {
82+
prop.type = "Record<string, any>";
83+
return prop;
84+
}
85+
86+
// change property name based on config path
87+
if (
88+
prop.default &&
89+
prop.default?.includes("getDefault")
90+
) {
91+
let name = (prop.default.match(/"(.*?)"/) || [
92+
"",
93+
])[0];
94+
name = name.substring(1, name.length - 1);
95+
const split = name.split(".");
96+
name = split.length == 2 ? split[1] : split[0];
97+
if (prop.name !== name) prop.name = name;
98+
}
99+
100+
// sort union types
101+
if (
102+
prop.type.includes(" | ") &&
103+
!prop.type.includes("(") &&
104+
!prop.type.includes("[")
105+
)
106+
prop.type = prop.type
107+
.split(" | ")
108+
.sort((a, b) => a.localeCompare(b))
109+
.join(" | ");
110+
111+
// set deprecated text if available
112+
prop.deprecated = prop.tags
113+
?.filter((tag) => tag.name === "deprecated")
114+
.map((tag) => tag.text)
115+
.join("");
116+
117+
return prop;
118+
});
119+
})
120+
// filter duplicates
121+
.filter(
122+
(item, idx, self) =>
123+
idx === self.findIndex((p) => p.name === item.name),
124+
);
125+
126+
return { name, props };
127+
})
128+
// sort components by name
129+
.sort((a, b) => a.name.localeCompare(b.name));
130130

131131
console.log(`${components.length} components processed.`);
132132

@@ -139,28 +139,27 @@ const code = `import type {
139139
140140
// Auto generated component theme config definition
141141
declare module "../index" {
142-
interface OrugaOptions {
143-
${components.map(
144-
({ name, props }) =>
145-
`${name.toLowerCase()}?: ComponentConfigBase &
146-
Partial<{${props
147-
.map(
148-
(prop) => `
149-
/**
150-
* ${prop.description}${
151-
prop.deprecated
152-
? `
153-
* @deprecated ${prop.deprecated}`
154-
: ""
155-
}
156-
*/
157-
${prop.name}: ${prop.type};`,
158-
)
159-
.join("")}
160-
}>;`,
161-
).join(`
162-
`)}
163-
}
142+
interface OrugaOptions {
143+
${components.map(({ name, props }) =>
144+
`${name.toLowerCase()}?: ComponentConfigBase &
145+
Partial<{${props
146+
.map(
147+
(prop) => `
148+
/**
149+
* ${prop.description}${
150+
prop.deprecated
151+
? `
152+
* @deprecated ${prop.deprecated}`
153+
: ""
154+
}
155+
*/
156+
${prop.name}: ${prop.type};`,
157+
)
158+
.join("")}
159+
}>;`,
160+
).join(`
161+
`)}
162+
}
164163
}
165164
`;
166165

.scripts/gen-volar-dts.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,36 @@ const __dirname = process.cwd();
1010
const componentDirectory = "./packages/oruga/src/components";
1111

1212
function generateComponentsType(module: string, file: string): void {
13-
if (!fileExist(path.resolve(__dirname, componentDirectory)))
14-
throw new Error("Path not exist: " + componentDirectory);
13+
if (!fileExist(path.resolve(__dirname, componentDirectory)))
14+
throw new Error("Path not exist: " + componentDirectory);
1515

16-
const globalComponents = getComponents(componentDirectory);
16+
const globalComponents = getComponents(componentDirectory);
1717

18-
const lines = globalComponents
19-
// add global "O" prefix
20-
.map((dir) => "O" + dir)
21-
// convert to type declaration format
22-
.map((key) => `${key}: (typeof import("${module}"))["${key}"];`);
18+
const lines = globalComponents
19+
// add global "O" prefix
20+
.map((dir) => "O" + dir)
21+
// convert to type declaration format
22+
.map((key) => `${key}: (typeof import("${module}"))["${key}"];`);
2323

24-
const code = `// Auto generated component declarations
24+
const code = `// Auto generated component declarations
2525
declare module "vue" {
26-
export interface GlobalComponents {
27-
${lines.join(`
28-
`)}
29-
}
26+
export interface GlobalComponents {
27+
${lines.join(`
28+
`)}
29+
}
3030
}
3131
export {};
3232
`;
3333

34-
fs.writeFileSync(path.resolve(__dirname, file), code, { encoding: "utf8" });
34+
fs.writeFileSync(path.resolve(__dirname, file), code, { encoding: "utf8" });
3535

36-
console.log(`File '${file}' generated.`);
36+
console.log(`File '${file}' generated.`);
3737
}
3838

3939
// generate export types volar file
4040
generateComponentsType("@oruga-ui/oruga-next", "./packages/oruga/volar.d.ts");
4141
// generate main package types volar file
4242
generateComponentsType(
43-
"../oruga/src/components",
44-
"./packages/oruga/components.d.ts",
43+
"../oruga/src/components",
44+
"./packages/oruga/components.d.ts",
4545
);

0 commit comments

Comments
 (0)