From 8312d9ece7a046dc9e3263e43e9f448169e8d38c Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Wed, 9 Feb 2022 19:40:45 -0300 Subject: [PATCH] initial version with basic event utils. --- .eslintrc.json | 147 ++++++++++++++++++++++++++++++++++++++ .gitignore | 3 + .prettierrc.yaml | 9 +++ app.jsx | 53 ++++++++++++++ build.js | 26 +++++++ components/item.jsx | 17 +++++ handlers/EventSigning.jsx | 27 +++++++ handlers/Nothing.jsx | 28 ++++++++ package.json | 15 ++++ public/index.html | 4 ++ 10 files changed, 329 insertions(+) create mode 100644 .eslintrc.json create mode 100644 .gitignore create mode 100644 .prettierrc.yaml create mode 100644 app.jsx create mode 100755 build.js create mode 100644 components/item.jsx create mode 100644 handlers/EventSigning.jsx create mode 100644 handlers/Nothing.jsx create mode 100644 package.json create mode 100644 public/index.html diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..7cad130 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,147 @@ +{ + "parserOptions": { + "ecmaVersion": 2020, + "ecmaFeatures": { + "jsx": true + }, + "sourceType": "module", + "allowImportExportEverywhere": false + }, + + "env": { + "es6": true, + "node": true + }, + + "plugins": [ + "react", + "babel" + ], + + "globals": { + "document": false, + "navigator": false, + "window": false, + "location": false, + "URL": false, + "URLSearchParams": false, + "fetch": false, + "EventSource": false, + "localStorage": false, + "sessionStorage": false + }, + + "rules": { + "react/jsx-uses-vars": 2, + "react/jsx-no-undef": 2, + "react/jsx-uses-react": 2, + "accessor-pairs": 2, + "arrow-spacing": [2, { "before": true, "after": true }], + "block-spacing": [2, "always"], + "brace-style": [2, "1tbs", { "allowSingleLine": true }], + "comma-dangle": 0, + "comma-spacing": [2, { "before": false, "after": true }], + "comma-style": [2, "last"], + "constructor-super": 2, + "curly": [0, "multi-line"], + "dot-location": [2, "property"], + "eol-last": 2, + "eqeqeq": [2, "allow-null"], + "generator-star-spacing": [2, { "before": true, "after": true }], + "handle-callback-err": [2, "^(err|error)$" ], + "indent": 0, + "jsx-quotes": [2, "prefer-double"], + "key-spacing": [2, { "beforeColon": false, "afterColon": true }], + "keyword-spacing": [2, { "before": true, "after": true }], + "new-cap": 0, + "new-parens": 0, + "no-array-constructor": 2, + "no-caller": 2, + "no-class-assign": 2, + "no-cond-assign": 2, + "no-const-assign": 2, + "no-control-regex": 0, + "no-debugger": 0, + "no-delete-var": 2, + "no-dupe-args": 2, + "no-dupe-class-members": 2, + "no-dupe-keys": 2, + "no-duplicate-case": 2, + "no-empty-character-class": 2, + "no-empty-pattern": 2, + "no-eval": 0, + "no-ex-assign": 2, + "no-extend-native": 2, + "no-extra-bind": 2, + "no-extra-boolean-cast": 2, + "no-extra-parens": [2, "functions"], + "no-fallthrough": 2, + "no-floating-decimal": 2, + "no-func-assign": 2, + "no-implied-eval": 2, + "no-inner-declarations": [0, "functions"], + "no-invalid-regexp": 2, + "no-irregular-whitespace": 2, + "no-iterator": 2, + "no-label-var": 2, + "no-labels": [2, { "allowLoop": false, "allowSwitch": false }], + "no-lone-blocks": 2, + "no-mixed-spaces-and-tabs": 2, + "no-multi-spaces": 2, + "no-multi-str": 2, + "no-multiple-empty-lines": [2, { "max": 2 }], + "no-native-reassign": 2, + "no-negated-in-lhs": 2, + "no-new": 0, + "no-new-func": 2, + "no-new-object": 2, + "no-new-require": 2, + "no-new-symbol": 2, + "no-new-wrappers": 2, + "no-obj-calls": 2, + "no-octal": 2, + "no-octal-escape": 2, + "no-path-concat": 0, + "no-proto": 2, + "no-redeclare": 2, + "no-regex-spaces": 2, + "no-return-assign": 0, + "no-self-assign": 2, + "no-self-compare": 2, + "no-sequences": 2, + "no-shadow-restricted-names": 2, + "no-spaced-func": 2, + "no-sparse-arrays": 2, + "no-this-before-super": 2, + "no-throw-literal": 2, + "no-trailing-spaces": 2, + "no-undef": 2, + "no-undef-init": 2, + "no-unexpected-multiline": 2, + "no-unneeded-ternary": [2, { "defaultAssignment": false }], + "no-unreachable": 2, + "no-unused-vars": [2, { "vars": "local", "args": "none", "varsIgnorePattern": "^_"}], + "no-useless-call": 2, + "no-useless-constructor": 2, + "no-with": 2, + "one-var": [0, { "initialized": "never" }], + "operator-linebreak": [2, "after", { "overrides": { "?": "before", ":": "before" } }], + "padded-blocks": [2, "never"], + "quotes": [2, "single", { "avoidEscape": true, "allowTemplateLiterals": true }], + "semi": [2, "never"], + "semi-spacing": [2, { "before": false, "after": true }], + "space-before-blocks": [2, "always"], + "space-before-function-paren": 0, + "space-in-parens": [2, "never"], + "space-infix-ops": 2, + "space-unary-ops": [2, { "words": true, "nonwords": false }], + "spaced-comment": 0, + "template-curly-spacing": [2, "never"], + "use-isnan": 2, + "valid-typeof": 2, + "wrap-iife": [2, "any"], + "yield-star-spacing": [2, "both"], + "yoda": 0, + "no-unsafe-optional-chaning": 0 + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..70a6f25 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +public/app.js +yarn.lock diff --git a/.prettierrc.yaml b/.prettierrc.yaml new file mode 100644 index 0000000..e31d792 --- /dev/null +++ b/.prettierrc.yaml @@ -0,0 +1,9 @@ +arrowParens: avoid +bracketSpacing: false +jsxBracketSameLine: false +printWidth: 80 +proseWrap: preserve +semi: false +singleQuote: true +trailingComma: none +useTabs: false diff --git a/app.jsx b/app.jsx new file mode 100644 index 0000000..0a8a0d8 --- /dev/null +++ b/app.jsx @@ -0,0 +1,53 @@ +import React, {useState} from 'react' +import {render} from 'react-dom' + +import Nothing from './handlers/Nothing' +import EventSigning from './handlers/EventSigning' + +const handlers = [EventSigning, Nothing] + +function App() { + let [value, setValue] = useState(null) + + let Result + for (let i = 0; i < handlers.length; i++) { + let alt = handlers[i] + if (alt.match(value)) { + Result = alt + break + } + } + + return ( +
+
+

nostr army knife

+ paste something nostric +