Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(tools): remove jsdoc plugin #8518

Merged
merged 1 commit into from
Mar 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion packages/base/.eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
test
lib
dist
jsdoc-dist
src/generated
src/thirdparty
bundle.esm.js
Expand Down
2 changes: 1 addition & 1 deletion packages/base/package-scripts.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const LIB = path.join(__dirname, `../tools/lib/`);
const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`;

const scripts = {
clean: "rimraf jsdoc-dist && rimraf src/generated && rimraf dist && rimraf .port",
clean: "rimraf src/generated && rimraf dist && rimraf .port",
lint: `eslint .`,
generate: "cross-env UI5_TS=true nps clean integrate copy generateAssetParameters generateVersionInfo generateStyles generateTemplates",
prepare: "cross-env UI5_TS=true nps clean integrate copy generateAssetParameters generateVersionInfo generateStyles generateTemplates typescript integrate.no-remaining-require",
Expand Down
25 changes: 3 additions & 22 deletions packages/create-package/create-package.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,8 @@ const isNPMRC = sourcePath => {

// Validation of user input
const ComponentNamePattern = /^[A-Z][A-Za-z0-9]+$/;
const NamespacePattern = /^[a-z][a-z0-9\.\-]+$/;
const isPackageNameValid = name => typeof name === "string" && name.match(/^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/);
const isComponentNameValid = name => typeof name === "string" && ComponentNamePattern.test(name);
const isNamespaceValid = name => typeof name === "string" && NamespacePattern.test(name);
const isTagValid = tag => typeof tag === "string" && tag.match(/^[a-z0-9]+?-[a-zA-Z0-9\-_]+?[a-z0-9]$/);

/**
Expand Down Expand Up @@ -94,12 +92,11 @@ const copyFiles = (vars, sourcePath, destPath) => {
}
};

const generateFilesContent = (packageName, componentName, namespace, skipSubfolder) => {
const generateFilesContent = (packageName, componentName, skipSubfolder) => {
const tagName = argv.tag || hyphaneteComponentName(componentName);

// All variables that will be replaced in the content of the resources/
const vars = {
INIT_PACKAGE_VAR_NAMESPACE: namespace, // namespace must be replaced before name
INIT_PACKAGE_VAR_NAME: packageName,
INIT_PACKAGE_VAR_TAG: tagName,
INIT_PACKAGE_VAR_CLASS_NAME: componentName,
Expand Down Expand Up @@ -178,21 +175,16 @@ const createWebcomponentsPackage = async () => {
throw new Error("The component name should be a string, starting with a capital letter [A-Z][a-z], for example: Button, MyButton, etc.");
}

if (argv.namespace && !isNamespaceValid(argv.namespace)) {
throw new Error("The JSDoc namespace must start with a letter and can only contain small-case letters, numbers, dots and dashes.");
}

if (argv.tag && !isTagValid(argv.tag) ) {
throw new Error("The tag should be in kebab-case (f.e my-component) and it can't be a single word.");
}

let packageName = argv.name || "my-package";
let componentName = argv.componentName || "MyComponent";
let namespace = argv.namespace || "demo.components";
const skipSubfolder = !!argv.skipSubfolder;

if (argv.skip) {
return generateFilesContent(packageName, componentName, namespace, skipSubfolder);
return generateFilesContent(packageName, componentName, skipSubfolder);
}

if (!argv.name) {
Expand All @@ -216,18 +208,7 @@ const createWebcomponentsPackage = async () => {
componentName = response.componentName;
}

if (!argv.namespace) {
response = await prompts({
type: "text",
name: "namespace",
message: "JSDoc namespace:",
initial: "demo.components",
validate: (value) => isNamespaceValid(value) ? true : "The JSDoc namespace must start with a letter and can only contain small-case letters, numbers, dots and dashes.",
});
namespace = response.namespace;
}

return generateFilesContent(packageName, componentName, namespace, skipSubfolder);
return generateFilesContent(packageName, componentName, skipSubfolder);
};

createWebcomponentsPackage();
1 change: 0 additions & 1 deletion packages/create-package/template/.eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,4 @@
dist
test
src/generated
jsdoc-dist
.eslintrc.js
1 change: 0 additions & 1 deletion packages/create-package/template/gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
node_modules
dist
jsdoc-dist
src/generated
1 change: 0 additions & 1 deletion packages/fiori/.eslintignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Note: Changes to this file also must be applied to the top level .eslintignore file.
target
dist
jsdoc-dist
src/generated
lib
test
Expand Down
1 change: 0 additions & 1 deletion packages/fiori/.npmignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
dist/resources
dist/test-resources
jsdoc-dist
src/generated
src/**/*.ts
lib/
Expand Down
1 change: 0 additions & 1 deletion packages/main/.eslintignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Note: Changes to this file also must be applied to the top level .eslintignore file.
target
dist
jsdoc-dist
src/generated
lib
test
Expand Down
1 change: 0 additions & 1 deletion packages/main/.npmignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
dist/resources
dist/test-resources
jsdoc-dist
src/generated
src/**/*.ts
lib/
Expand Down
11 changes: 2 additions & 9 deletions packages/tools/components-package/nps.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
const path = require("path");
const fs = require("fs");
const resolve = require("resolve");
const LIB = path.join(__dirname, `../lib/`);
const preprocessJSDocScript = resolve.sync("@ui5/webcomponents-tools/lib/jsdoc/preprocess.js");

const getScripts = (options) => {

Expand Down Expand Up @@ -54,7 +52,7 @@ const getScripts = (options) => {
}

const scripts = {
clean: 'rimraf jsdoc-dist && rimraf src/generated && rimraf dist && rimraf .port && nps "scope.testPages.clean"',
clean: 'rimraf src/generated && rimraf dist && rimraf .port && nps "scope.testPages.clean"',
lint: `eslint . ${eslintConfig}`,
lintfix: `eslint . ${eslintConfig} --fix`,
generate: {
Expand Down Expand Up @@ -137,14 +135,9 @@ const getScripts = (options) => {
bundle: `node ${LIB}/dev-server/dev-server.js ${viteConfig}`,
},
generateAPI: {
default: `nps ${ tsOption ? "generateAPI.generateCEM generateAPI.validateCEM" : "generateAPI.prepare generateAPI.preprocess generateAPI.jsdoc generateAPI.cleanup generateAPI.prepareManifest generateAPI.validateCEM"}`,
default: "nps generateAPI.generateCEM generateAPI.validateCEM",
generateCEM: `cem analyze --config "${LIB}/cem/custom-elements-manifest.config.mjs" ${ options.dev ? "--dev" : "" }`,
validateCEM: `node "${LIB}/cem/validate.js" ${ options.dev ? "--dev" : "" }`,
prepare: `node "${LIB}/copy-and-watch/index.js" --silent "dist/**/*.js" jsdoc-dist/`,
prepareManifest: `node "${LIB}/generate-custom-elements-manifest/index.js" dist dist`,
preprocess: `node "${preprocessJSDocScript}" jsdoc-dist/ src`,
jsdoc: `jsdoc -c "${LIB}/jsdoc/config.json"`,
cleanup: "rimraf jsdoc-dist/"
},
};

Expand Down
Loading