diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000000..86f4257f41
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,2 @@
+**/webpack.config.js
+vendor
diff --git a/.eslintrc.json b/.eslintrc.json
index 7c88e4121f..011399debe 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,31 +1,3 @@
{
- "plugins": ["prettier"],
- "extends": ["prettier", "eslint:recommended"],
- "env": {
- "browser": true,
- "commonjs": true,
- "es6": true,
- "node": true
- },
- "parser": "babel-eslint",
- "parserOptions": {
- "ecmaFeatures": {
- "jsx": true,
- "classes": true,
- "experimentalObjectRestSpread": true
- },
- "sourceType": "module"
- },
- "rules": {
- "no-const-assign": "warn",
- "no-console": "off",
- "no-this-before-super": "warn",
- "no-undef": "warn",
- "no-unreachable": "warn",
- "no-unused-vars": "warn",
- "constructor-super": "warn",
- "valid-typeof": "warn",
- "no-extra-semi": "error",
- "no-extra-boolean-cast": "off"
- }
+ "extends": "eslint-config-ibexa/eslint"
}
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 7bda6b4764..5ab6fb5afb 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -35,6 +35,11 @@ jobs:
- name: Run PHP CS Fixer
run: tools/php-cs-fixer/vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php -v --show-progress=dots
+ - name: Run Prettier
+ run: |
+ yarn install
+ yarn prettier-test --write
+
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
diff --git a/.gitignore b/.gitignore
index d30a4f0faa..ab03be3cad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,6 @@ __pycache__/*
.php-cs-fixer.cache
composer.lock
tools/php-cs-fixer/vendor
+node_modules/
+.yarn
+yarn.lock
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000000..d1a24d79d9
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1 @@
+**/webpack.config.js
diff --git a/code_samples/back_office/image_editor/assets/random_dot/random-dot-stem.js b/code_samples/back_office/image_editor/assets/random_dot/random-dot-stem.js
index 2583ff3580..29cd7d2aa0 100644
--- a/code_samples/back_office/image_editor/assets/random_dot/random-dot-stem.js
+++ b/code_samples/back_office/image_editor/assets/random_dot/random-dot-stem.js
@@ -29,5 +29,5 @@ ibexa.addConfig(
icon: ibexa.helpers.icon.getIconPath('radio-button'), // Path to an icon that will be displayed in the UI
identifier: IDENTIFIER, // The identifier must match the one from the configuration yaml file
},
- true
+ true,
);
diff --git a/code_samples/back_office/image_editor/assets/random_dot/random-dot.js b/code_samples/back_office/image_editor/assets/random_dot/random-dot.js
index 04420bad14..0d714c89f6 100644
--- a/code_samples/back_office/image_editor/assets/random_dot/random-dot.js
+++ b/code_samples/back_office/image_editor/assets/random_dot/random-dot.js
@@ -65,5 +65,5 @@ ibexa.addConfig(
icon: ibexa.helpers.icon.getIconPath('radio-button'),
identifier: IDENTIFIER,
},
- true
+ true,
);
diff --git a/code_samples/back_office/online_editor/assets/js/online_editor/buttons/date.js b/code_samples/back_office/online_editor/assets/js/online_editor/buttons/date.js
deleted file mode 100644
index e3ea1fe79c..0000000000
--- a/code_samples/back_office/online_editor/assets/js/online_editor/buttons/date.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import PropTypes from 'prop-types';
-import AlloyEditor from 'alloyeditor';
-import IbexaButton
- from '../../../../vendor/ezsystems/ezplatform-richtext/src/bundle/Resources/public/js/OnlineEditor/buttons/base/ibexa-button.js';
-
-export default class BtnDate extends IbexaButton {
- static get key() {
- return 'date';
- }
-
- insertDate(data) {
- this.execCommand(data);
- }
-
- render() {
- const title = 'Date';
-
- return (
-
- );
- }
-}
-
-AlloyEditor.Buttons[BtnDate.key] = AlloyEditor.BtnDate = BtnDate;
-ibexa.addConfig('ezAlloyEditor.BtnDate', BtnDate);
-
-BtnDate.propTypes = {
- command: PropTypes.string,
-};
-
-BtnDate.defaultProps = {
- command: 'InsertDate',
-};
diff --git a/code_samples/back_office/online_editor/assets/js/online_editor/buttons/hr.js b/code_samples/back_office/online_editor/assets/js/online_editor/buttons/hr.js
deleted file mode 100644
index b684fd249c..0000000000
--- a/code_samples/back_office/online_editor/assets/js/online_editor/buttons/hr.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import PropTypes from 'prop-types';
-import AlloyEditor from 'alloyeditor';
-import IbexaButton
- from '../../../../vendor/ezsystems/ezplatform-richtext/src/bundle/Resources/public/js/OnlineEditor/buttons/base/ibexa-button.js';
-
-export default class IbexaBtnHr extends IbexaButton {
- static get key() {
- return 'hr';
- }
-
- addHr() {
- this.execCommand({
- tagName: 'hr',
- });
- }
-
- render() {
- const title = "Hr";
- return (
-
- );
- }
-}
-
-AlloyEditor.Buttons[IbexaBtnHr.key] = AlloyEditor.IbexaBtnHr = IbexaBtnHr;
-
-const ibexa = (window.ibexa = window.ibexa || {});
-
-ibexa.ezAlloyEditor = ibexa.ezAlloyEditor || {};
-ibexa.ezAlloyEditor.IbexaBtnHr = IbexaBtnHr;
-
-IbexaBtnHr.propTypes = {
- command: PropTypes.string,
- modifiesSelection: PropTypes.bool,
-};
-
-IbexaBtnHr.defaultProps = {
- command: 'ibexaAddContent',
- modifiesSelection: true,
-};
diff --git a/code_samples/back_office/online_editor/assets/js/online_editor/plugins/date.js b/code_samples/back_office/online_editor/assets/js/online_editor/plugins/date.js
index d75bf3364d..c306895cff 100644
--- a/code_samples/back_office/online_editor/assets/js/online_editor/plugins/date.js
+++ b/code_samples/back_office/online_editor/assets/js/online_editor/plugins/date.js
@@ -6,10 +6,10 @@
const InsertDate = {
exec: function (editor) {
const now = new Date();
- editor.insertHtml( now.toString() );
+ editor.insertHtml(now.toString());
},
};
-
+
global.CKEDITOR.plugins.add('date', {
init: (editor) => editor.addCommand('InsertDate', InsertDate),
});
diff --git a/code_samples/back_office/search/append_to_webpack.config.js b/code_samples/back_office/search/append_to_webpack.config.js
index 3fa0b8d917..5146bc2a0e 100644
--- a/code_samples/back_office/search/append_to_webpack.config.js
+++ b/code_samples/back_office/search/append_to_webpack.config.js
@@ -1,8 +1,7 @@
-
const ibexaConfigManager = require('./ibexa.webpack.config.manager.js');
ibexaConfigManager.add({
ibexaConfig,
entryName: 'ibexa-admin-ui-layout-js',
- newItems: [ path.resolve(__dirname, './assets/js/admin.search.autocomplete.product.js'), ],
+ newItems: [path.resolve(__dirname, './assets/js/admin.search.autocomplete.product.js')],
});
diff --git a/code_samples/back_office/search/assets/js/admin.search.autocomplete.product.js b/code_samples/back_office/search/assets/js/admin.search.autocomplete.product.js
index c9a80f0b16..7394a84a93 100644
--- a/code_samples/back_office/search/assets/js/admin.search.autocomplete.product.js
+++ b/code_samples/back_office/search/assets/js/admin.search.autocomplete.product.js
@@ -1,14 +1,16 @@
(function (global, doc, ibexa, Routing) {
const renderItem = (result, searchText) => {
const globalSearch = doc.querySelector('.ibexa-global-search');
- const {highlightText} = ibexa.helpers.highlight;
- const autocompleteHighlightTemplate = globalSearch.querySelector('.ibexa-global-search__autocomplete-list').dataset.templateHighlight;
- const {getContentTypeIconUrl, getContentTypeName} = ibexa.helpers.contentType;
+ const { highlightText } = ibexa.helpers.highlight;
+ const autocompleteHighlightTemplate = globalSearch.querySelector('.ibexa-global-search__autocomplete-list').dataset
+ .templateHighlight;
+ const { getContentTypeIconUrl, getContentTypeName } = ibexa.helpers.contentType;
- const autocompleteItemTemplate = globalSearch.querySelector('.ibexa-global-search__autocomplete-product-template').dataset.templateItem;
+ const autocompleteItemTemplate = globalSearch.querySelector('.ibexa-global-search__autocomplete-product-template').dataset
+ .templateItem;
return autocompleteItemTemplate
- .replace('{{ productHref }}', Routing.generate('ibexa.product_catalog.product.view', {productCode: result.productCode}))
+ .replace('{{ productHref }}', Routing.generate('ibexa.product_catalog.product.view', { productCode: result.productCode }))
.replace('{{ productName }}', highlightText(searchText, result.name, autocompleteHighlightTemplate))
.replace('{{ productCode }}', result.productCode)
.replace('{{ productTypeIconHref }}', getContentTypeIconUrl(result.productTypeIdentifier))
diff --git a/code_samples/back_office/udw/assets/js/image-tab/components/image.js b/code_samples/back_office/udw/assets/js/image-tab/components/image.js
index 9319aad37f..4466982251 100644
--- a/code_samples/back_office/udw/assets/js/image-tab/components/image.js
+++ b/code_samples/back_office/udw/assets/js/image-tab/components/image.js
@@ -13,7 +13,6 @@ const Image = ({ restInfo, location }) => {
const [selectedLocations, dispatchSelectedLocationsAction] = useContext(SelectedLocationsContext);
const [multiple] = useContext(MultipleConfigContext);
const updateVersionInfoState = (response) => {
-
setContent(response.View.Result.searchHits.searchHit[0].value.Content);
};
const markLocation = ({ nativeEvent }) => {
@@ -29,11 +28,10 @@ const Image = ({ restInfo, location }) => {
if (!multiple) {
dispatchSelectedLocationsAction({ type: 'CLEAR_SELECTED_LOCATIONS' });
- dispatchSelectedLocationsAction({ type: 'ADD_SELECTED_LOCATION', location });
+ dispatchSelectedLocationsAction({ type: 'ADD_SELECTED_LOCATION', location });
}
};
let src =
-
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHdpZHRoPSI0MHB4IiBoZWlnaHQ9IjQwcHgiIHZpZXdCb3g9IjAgMCA0MCA0MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEuNDE0MjE7IiB4PSIwcHgiIHk9IjBweCI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWwogICAgICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICAgICAgZnJvbSB7CiAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpCiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRvIHsKICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTM1OWRlZykKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgICAgICBmcm9tIHsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpCiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRvIHsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0zNTlkZWcpCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHN2ZyB7CiAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7CiAgICAgICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAxLjVzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDEuNXMgbGluZWFyIGluZmluaXRlOwogICAgICAgICAgICB9CiAgICAgICAgXV0+PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSJvdXRlciI+CiAgICAgICAgPGc+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCwwQzIyLjIwNTgsMCAyMy45OTM5LDEuNzg4MTMgMjMuOTkzOSwzLjk5MzlDMjMuOTkzOSw2LjE5OTY4IDIyLjIwNTgsNy45ODc4MSAyMCw3Ljk4NzgxQzE3Ljc5NDIsNy45ODc4MSAxNi4wMDYxLDYuMTk5NjggMTYuMDA2MSwzLjk5MzlDMTYuMDA2MSwxLjc4ODEzIDE3Ljc5NDIsMCAyMCwwWiIgc3R5bGU9ImZpbGw6YmxhY2s7Ii8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8cGF0aCBkPSJNNS44NTc4Niw1Ljg1Nzg2QzcuNDE3NTgsNC4yOTgxNSA5Ljk0NjM4LDQuMjk4MTUgMTEuNTA2MSw1Ljg1Nzg2QzEzLjA2NTgsNy40MTc1OCAxMy4wNjU4LDkuOTQ2MzggMTEuNTA2MSwxMS41MDYxQzkuOTQ2MzgsMTMuMDY1OCA3LjQxNzU4LDEzLjA2NTggNS44NTc4NiwxMS41MDYxQzQuMjk4MTUsOS45NDYzOCA0LjI5ODE1LDcuNDE3NTggNS44NTc4Niw1Ljg1Nzg2WiIgc3R5bGU9ImZpbGw6cmdiKDIxMCwyMTAsMjEwKTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGc+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCwzMi4wMTIyQzIyLjIwNTgsMzIuMDEyMiAyMy45OTM5LDMzLjgwMDMgMjMuOTkzOSwzNi4wMDYxQzIzLjk5MzksMzguMjExOSAyMi4yMDU4LDQwIDIwLDQwQzE3Ljc5NDIsNDAgMTYuMDA2MSwzOC4yMTE5IDE2LjAwNjEsMzYuMDA2MUMxNi4wMDYxLDMzLjgwMDMgMTcuNzk0MiwzMi4wMTIyIDIwLDMyLjAxMjJaIiBzdHlsZT0iZmlsbDpyZ2IoMTMwLDEzMCwxMzApOyIvPgogICAgICAgIDwvZz4KICAgICAgICA8Zz4KICAgICAgICAgICAgPHBhdGggZD0iTTI4LjQ5MzksMjguNDkzOUMzMC4wNTM2LDI2LjkzNDIgMzIuNTgyNCwyNi45MzQyIDM0LjE0MjEsMjguNDkzOUMzNS43MDE5LDMwLjA1MzYgMzUuNzAxOSwzMi41ODI0IDM0LjE0MjEsMzQuMTQyMUMzMi41ODI0LDM1LjcwMTkgMzAuMDUzNiwzNS43MDE5IDI4LjQ5MzksMzQuMTQyMUMyNi45MzQyLDMyLjU4MjQgMjYuOTM0MiwzMC4wNTM2IDI4LjQ5MzksMjguNDkzOVoiIHN0eWxlPSJmaWxsOnJnYigxMDEsMTAxLDEwMSk7Ii8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8cGF0aCBkPSJNMy45OTM5LDE2LjAwNjFDNi4xOTk2OCwxNi4wMDYxIDcuOTg3ODEsMTcuNzk0MiA3Ljk4NzgxLDIwQzcuOTg3ODEsMjIuMjA1OCA2LjE5OTY4LDIzLjk5MzkgMy45OTM5LDIzLjk5MzlDMS43ODgxMywyMy45OTM5IDAsMjIuMjA1OCAwLDIwQzAsMTcuNzk0MiAxLjc4ODEzLDE2LjAwNjEgMy45OTM5LDE2LjAwNjFaIiBzdHlsZT0iZmlsbDpyZ2IoMTg3LDE4NywxODcpOyIvPgogICAgICAgIDwvZz4KICAgICAgICA8Zz4KICAgICAgICAgICAgPHBhdGggZD0iTTUuODU3ODYsMjguNDkzOUM3LjQxNzU4LDI2LjkzNDIgOS45NDYzOCwyNi45MzQyIDExLjUwNjEsMjguNDkzOUMxMy4wNjU4LDMwLjA1MzYgMTMuMDY1OCwzMi41ODI0IDExLjUwNjEsMzQuMTQyMUM5Ljk0NjM4LDM1LjcwMTkgNy40MTc1OCwzNS43MDE5IDUuODU3ODYsMzQuMTQyMUM0LjI5ODE1LDMyLjU4MjQgNC4yOTgxNSwzMC4wNTM2IDUuODU3ODYsMjguNDkzOVoiIHN0eWxlPSJmaWxsOnJnYigxNjQsMTY0LDE2NCk7Ii8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8cGF0aCBkPSJNMzYuMDA2MSwxNi4wMDYxQzM4LjIxMTksMTYuMDA2MSA0MCwxNy43OTQyIDQwLDIwQzQwLDIyLjIwNTggMzguMjExOSwyMy45OTM5IDM2LjAwNjEsMjMuOTkzOUMzMy44MDAzLDIzLjk5MzkgMzIuMDEyMiwyMi4yMDU4IDMyLjAxMjIsMjBDMzIuMDEyMiwxNy43OTQyIDMzLjgwMDMsMTYuMDA2MSAzNi4wMDYxLDE2LjAwNjFaIiBzdHlsZT0iZmlsbDpyZ2IoNzQsNzQsNzQpOyIvPgogICAgICAgIDwvZz4KICAgICAgICA8Zz4KICAgICAgICAgICAgPHBhdGggZD0iTTI4LjQ5MzksNS44NTc4NkMzMC4wNTM2LDQuMjk4MTUgMzIuNTgyNCw0LjI5ODE1IDM0LjE0MjEsNS44NTc4NkMzNS43MDE5LDcuNDE3NTggMzUuNzAxOSw5Ljk0NjM4IDM0LjE0MjEsMTEuNTA2MUMzMi41ODI0LDEzLjA2NTggMzAuMDUzNiwxMy4wNjU4IDI4LjQ5MzksMTEuNTA2MUMyNi45MzQyLDkuOTQ2MzggMjYuOTM0Miw3LjQxNzU4IDI4LjQ5MzksNS44NTc4NloiIHN0eWxlPSJmaWxsOnJnYig1MCw1MCw1MCk7Ii8+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K';
let alt = 'Loading meta data ...';
diff --git a/code_samples/back_office/udw/assets/js/image-tab/image.tab.module.js b/code_samples/back_office/udw/assets/js/image-tab/image.tab.module.js
index d8cd9f159e..65e25e0d91 100644
--- a/code_samples/back_office/udw/assets/js/image-tab/image.tab.module.js
+++ b/code_samples/back_office/udw/assets/js/image-tab/image.tab.module.js
@@ -22,7 +22,7 @@ ibexa.addConfig(
icon: '/bundles/ibexaadminui/img/ibexa-icons.svg#image',
},
],
- true
+ true,
);
export default ImageTabModule;
diff --git a/code_samples/forms/custom_form_attribute/assets/js/formbuilder-richtext-checkbox.js b/code_samples/forms/custom_form_attribute/assets/js/formbuilder-richtext-checkbox.js
index 80a2cd40ca..3c8b1e1c0f 100644
--- a/code_samples/forms/custom_form_attribute/assets/js/formbuilder-richtext-checkbox.js
+++ b/code_samples/forms/custom_form_attribute/assets/js/formbuilder-richtext-checkbox.js
@@ -3,19 +3,15 @@
const richtext = new ibexa.BaseRichText();
// Enable editor in all ibexa-data-source divs
- doc.querySelectorAll('.ibexa-data-source').forEach(
- (ibexaDataSource) => {
- const richtextContainer = ibexaDataSource.querySelector(
- '.ibexa-data-source__richtext'
- );
+ doc.querySelectorAll('.ibexa-data-source').forEach((ibexaDataSource) => {
+ const richtextContainer = ibexaDataSource.querySelector('.ibexa-data-source__richtext');
- if (richtextContainer.classList.contains('ck')) {
- return;
- }
-
- richtext.init(richtextContainer);
+ if (richtextContainer.classList.contains('ck')) {
+ return;
}
- );
+
+ richtext.init(richtextContainer);
+ });
});
const openUdw = (config) => {
diff --git a/code_samples/page/react_app_block/assets/page-builder/react/blocks/Calculator.js b/code_samples/page/react_app_block/assets/page-builder/react/blocks/Calculator.js
index ce01850290..1c3f055d0c 100644
--- a/code_samples/page/react_app_block/assets/page-builder/react/blocks/Calculator.js
+++ b/code_samples/page/react_app_block/assets/page-builder/react/blocks/Calculator.js
@@ -1,4 +1,4 @@
-import Calculator from "/assets/page-builder/components/Calculator";
+import Calculator from '/assets/page-builder/components/Calculator';
export default {
Calculator: Calculator,
diff --git a/docs/administration/back_office/customize_search_suggestion.md b/docs/administration/back_office/customize_search_suggestion.md
index 426353baa5..79061413aa 100644
--- a/docs/administration/back_office/customize_search_suggestion.md
+++ b/docs/administration/back_office/customize_search_suggestion.md
@@ -110,7 +110,7 @@ To allow template override and ease HTML writing, the example is also loading a
Here is a complete `assets/js/admin.search.autocomplete.product.js` from the product suggestion example:
-``` js hl_lines="8"
+``` js hl_lines="9"
[[= include_file('code_samples/back_office/search/assets/js/admin.search.autocomplete.product.js') =]]
```
diff --git a/package.json b/package.json
index 9a72290f2a..79d74fcc33 100644
--- a/package.json
+++ b/package.json
@@ -4,9 +4,17 @@
"main": "index.js",
"repository": "git@github.com:ibexa/documentation-developer.git",
"scripts": {
- "scss": "node-sass --watch scss -o docs/css"
+ "scss": "sass --watch scss:docs/css",
+ "test": "yarn prettier-test && yarn eslint-test",
+ "fix": "yarn prettier-test --write && yarn eslint-test --fix",
+ "eslint-test": "eslint \"./code_samples/**/*.js\"",
+ "prettier-test": "yarn prettier \"./code_samples/**/*.{js,scss}\" --check"
+ },
+ "prettier": "eslint-config-ibexa/prettier",
+ "devDependencies": {
+ "eslint-config-ibexa": "https://github.com/ibexa/eslint-config-ibexa.git#~v1.1.1"
},
"dependencies": {
- "node-sass": "^9.0.0"
+ "sass": "^1.82.0"
}
}