Merge branch 'update-eslint-config'

https://codeberg.org/kytta/shareon/pulls/6
pull/45/head
Nikita Karamov 2022-02-10 22:22:33 +01:00
commit 733a8da0b7
No known key found for this signature in database
GPG Key ID: 3C8E688C96EEB9C9
7 changed files with 49 additions and 27 deletions

View File

@ -1,2 +0,0 @@
dev
dist

1
.eslintignore Symbolic link
View File

@ -0,0 +1 @@
./.gitignore

View File

@ -1,13 +1,29 @@
{
"root": true,
"env": {
"browser": true,
"es6": true,
"node": true
"browser": true
},
"extends": ["eslint:recommended", "plugin:unicorn/recommended", "prettier"],
"rules": {
"unicorn/no-for-loop": 0
},
"extends": ["airbnb-base", "prettier"],
"parserOptions": {
"ecmaVersion": 2020,
"ecmaVersion": "latest",
"sourceType": "module"
}
},
"overrides": [
{
"files": ["postcss.config.js", "vite.config.js"],
"env": {
"node": true,
"browser": false
}
},
{
"files": ["postcss.config.js"],
"rules": {
"unicorn/prefer-module": 0
}
}
]
}

View File

@ -39,7 +39,7 @@
"build:js": "vite build",
"build:css": "postcss src/shareon.css -o dist/shareon.min.css --map",
"dev": "vite",
"lint": "prettier --check . && eslint src/*.js",
"lint": "prettier --check . && eslint .",
"size": "size-limit",
"test": "pnpm run lint && pnpm run build && pnpm run size",
"postversion": "pnpm run build"
@ -49,9 +49,8 @@
"autoprefixer": "^10.4.2",
"cssnano": "^5.0.16",
"eslint": "^8.8.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-unicorn": "^40.1.0",
"postcss": "^8.4.6",
"postcss-banner": "^4.0.1",
"postcss-calc": "^8.2.3",

View File

@ -1,5 +1,5 @@
const pkg = require("./package.json");
const bannerText = `${pkg.name} v${pkg.version}`;
const package_ = require("./package.json");
const bannerText = `${package_.name} v${package_.version}`;
module.exports = {
map: {

View File

@ -6,4 +6,4 @@ if (s && s.hasAttribute("init")) {
initializeShareon();
}
export default initializeShareon;
export { default } from "./shareon";

View File

@ -30,18 +30,30 @@ const urlBuilderMap = {
whatsapp: (d) => `https://wa.me/?text=${d.title}%0D%0A${d.url}${d.text ? `%0D%0A%0D%0A${d.text}` : ''}`,
};
const openUrl = (buttonUrl) => () => {
window.open(buttonUrl, "_blank", "noopener,noreferrer");
};
const initializeShareon = () => {
const shareonContainers = document.getElementsByClassName("shareon");
const shareonContainers = document.querySelectorAll(".shareon");
// iterate over <div class="shareon">
for (let i = 0; i < shareonContainers.length; i += 1) {
for (
let containerIndex = 0;
containerIndex < shareonContainers.length;
containerIndex += 1
) {
/** @type Element */
const container = shareonContainers[i];
const container = shareonContainers[containerIndex];
// iterate over children of <div class="shareon">
for (let j = 0; j < container.children.length; j += 1) {
for (
let childIndex = 0;
childIndex < container.children.length;
childIndex += 1
) {
/** @type Element */
const child = container.children[j];
const child = container.children[childIndex];
if (child) {
const classListLength = child.classList.length;
@ -81,11 +93,7 @@ const initializeShareon = () => {
child.setAttribute("rel", "noopener noreferrer");
child.setAttribute("target", "_blank");
} else {
const getButtonListener = (buttonUrl) => () => {
window.open(buttonUrl, "_blank", "noopener,noreferrer");
};
child.addEventListener("click", getButtonListener(url));
child.addEventListener("click", openUrl(url));
}
break; // once a network is detected we don't want to check further

View File

@ -1,6 +1,6 @@
import { defineConfig } from "vite";
import * as path from "path";
import pkg from "./package.json";
import * as path from "node:path";
import package_ from "./package.json";
export default defineConfig({
esbuild: {
@ -17,7 +17,7 @@ export default defineConfig({
},
rollupOptions: {
output: {
banner: `/*! ${pkg.name} v${pkg.version} */`,
banner: `/*! ${package_.name} v${package_.version} */`,
},
},
},