From a54b9b8230ab4ebfbcd97f2dc825cee16e1e52c4 Mon Sep 17 00:00:00 2001 From: cha0s Date: Tue, 26 Jan 2021 23:40:18 -0600 Subject: [PATCH] refactor: resource controllers --- app/src/react/components/resource/index.jsx | 2 +- packages/core/src/index.js | 22 +++++++++---------- .../binary/index.jsx | 8 +++---- .../binary/index.scss | 0 .../image/index.jsx | 8 +++---- .../image/index.scss | 0 .../text/index.jsx | 8 +++---- .../text/index.scss | 0 packages/entity/src/index.js | 6 ++--- .../entity/index.jsx | 10 ++++----- .../entity/index.scss | 0 .../entity/stage/index.jsx | 0 .../entity/stage/index.scss | 0 .../entity/traits/index.jsx | 0 .../entity/traits/index.scss | 0 .../entity/view/index.jsx | 0 .../entity/view/index.scss | 0 .../src/trait-renderers/emitter/particle.jsx | 2 +- packages/json/src/index.js | 6 ++--- .../src/{ => resource-controllers}/json.jsx | 2 +- 20 files changed, 37 insertions(+), 37 deletions(-) rename packages/core/src/{resource-renderers => resource-controllers}/binary/index.jsx (80%) rename packages/core/src/{resource-renderers => resource-controllers}/binary/index.scss (100%) rename packages/core/src/{resource-renderers => resource-controllers}/image/index.jsx (70%) rename packages/core/src/{resource-renderers => resource-controllers}/image/index.scss (100%) rename packages/core/src/{resource-renderers => resource-controllers}/text/index.jsx (63%) rename packages/core/src/{resource-renderers => resource-controllers}/text/index.scss (100%) rename packages/entity/src/{resource-renderers => resource-controllers}/entity/index.jsx (85%) rename packages/entity/src/{resource-renderers => resource-controllers}/entity/index.scss (100%) rename packages/entity/src/{resource-renderers => resource-controllers}/entity/stage/index.jsx (100%) rename packages/entity/src/{resource-renderers => resource-controllers}/entity/stage/index.scss (100%) rename packages/entity/src/{resource-renderers => resource-controllers}/entity/traits/index.jsx (100%) rename packages/entity/src/{resource-renderers => resource-controllers}/entity/traits/index.scss (100%) rename packages/entity/src/{resource-renderers => resource-controllers}/entity/view/index.jsx (100%) rename packages/entity/src/{resource-renderers => resource-controllers}/entity/view/index.scss (100%) rename packages/json/src/{ => resource-controllers}/json.jsx (91%) diff --git a/app/src/react/components/resource/index.jsx b/app/src/react/components/resource/index.jsx index 02bc572..cbacc28 100644 --- a/app/src/react/components/resource/index.jsx +++ b/app/src/react/components/resource/index.jsx @@ -11,7 +11,7 @@ import {resourceSelector, UriContext} from '@persea/core'; const Resource = ({uri, uuid}) => { const latus = useLatus(); const resource = useSelector((state) => resourceSelector(state, `${uuid}${uri}`)); - const Component = latus.get('%resource-renderers')(uri); + const {Component} = latus.get('%resource-controllers')(uri); const buffer = Buffer.from(resource, 'base64'); return (
diff --git a/packages/core/src/index.js b/packages/core/src/index.js index 7ab226c..6fbec13 100644 --- a/packages/core/src/index.js +++ b/packages/core/src/index.js @@ -1,8 +1,8 @@ import flatten from 'lodash.flatten'; -import BinaryResourceRenderer from './resource-renderers/binary'; -import ImageResourceRenderer from './resource-renderers/image'; -import TextResourceRenderer from './resource-renderers/text'; +import BinaryResource from './resource-controllers/binary'; +import ImageResource from './resource-controllers/image'; +import TextResource from './resource-controllers/text'; import {projects, user} from './state'; export {default as Number} from './components/number'; @@ -19,17 +19,17 @@ export * from './state'; export default { hooks: { '@latus/core/config': () => ({ - 'resource-renderers': [], + 'resource-controllers': [], }), '@latus/core/starting': async (latus) => { - const Renderers = flatten(await latus.invokeOrdered('@persea/core/resource-renderers')); - Renderers.push( - ImageResourceRenderer, - TextResourceRenderer, - BinaryResourceRenderer, + const Controllers = flatten(await latus.invokeOrdered('@persea/core/resource-controllers')); + Controllers.push( + ImageResource, + TextResource, + BinaryResource, ); - const Renderer = (uri) => Renderers.find(({matcher}) => uri.match(matcher)).Component; - latus.set('%resource-renderers', Renderer); + const Controller = (uri) => Controllers.find(({matcher}) => uri.match(matcher)); + latus.set('%resource-controllers', Controller); }, '@latus/redux/slices': () => ({ projects, diff --git a/packages/core/src/resource-renderers/binary/index.jsx b/packages/core/src/resource-controllers/binary/index.jsx similarity index 80% rename from packages/core/src/resource-renderers/binary/index.jsx rename to packages/core/src/resource-controllers/binary/index.jsx index fe22cd2..db34634 100644 --- a/packages/core/src/resource-renderers/binary/index.jsx +++ b/packages/core/src/resource-controllers/binary/index.jsx @@ -5,7 +5,7 @@ import { import HexEditor from 'react-hex-editor'; import oneDarkPro from 'react-hex-editor/themes/oneDarkPro'; -const BinaryRendererComponent = ({buffer}) => ( +const BinaryComponent = ({buffer}) => ( ( /> ); -BinaryRendererComponent.propTypes = { +BinaryComponent.propTypes = { buffer: PropTypes.shape({ buffer: PropTypes.shape({}), length: PropTypes.number, }).isRequired, }; -export default class BinaryResourceRenderer { +export default class BinaryController { static Component({buffer}) { return ( - + ); } diff --git a/packages/core/src/resource-renderers/binary/index.scss b/packages/core/src/resource-controllers/binary/index.scss similarity index 100% rename from packages/core/src/resource-renderers/binary/index.scss rename to packages/core/src/resource-controllers/binary/index.scss diff --git a/packages/core/src/resource-renderers/image/index.jsx b/packages/core/src/resource-controllers/image/index.jsx similarity index 70% rename from packages/core/src/resource-renderers/image/index.jsx rename to packages/core/src/resource-controllers/image/index.jsx index a01834d..65ae538 100644 --- a/packages/core/src/resource-renderers/image/index.jsx +++ b/packages/core/src/resource-controllers/image/index.jsx @@ -3,7 +3,7 @@ import { React, } from '@latus/react'; -const ImageRendererComponent = ({buffer}) => ( +const ImageComponent = ({buffer}) => (
(
); -ImageRendererComponent.propTypes = { +ImageComponent.propTypes = { buffer: PropTypes.shape({ toString: PropTypes.func, }).isRequired, }; -export default class ImageResourceRenderer { +export default class ImageController { static Component({buffer}) { return ( - + ); } diff --git a/packages/core/src/resource-renderers/image/index.scss b/packages/core/src/resource-controllers/image/index.scss similarity index 100% rename from packages/core/src/resource-renderers/image/index.scss rename to packages/core/src/resource-controllers/image/index.scss diff --git a/packages/core/src/resource-renderers/text/index.jsx b/packages/core/src/resource-controllers/text/index.jsx similarity index 63% rename from packages/core/src/resource-renderers/text/index.jsx rename to packages/core/src/resource-controllers/text/index.jsx index 4a74d44..52d6279 100644 --- a/packages/core/src/resource-renderers/text/index.jsx +++ b/packages/core/src/resource-controllers/text/index.jsx @@ -3,21 +3,21 @@ import { React, } from '@latus/react'; -const TextRendererComponent = ({buffer}) => ( +const TextComponent = ({buffer}) => (
{buffer.toString()}
); -TextRendererComponent.propTypes = { +TextComponent.propTypes = { buffer: PropTypes.shape({ toString: PropTypes.func, }).isRequired, }; -export default class TextResourceRenderer { +export default class TextController { static Component({buffer}) { return ( - + ); } diff --git a/packages/core/src/resource-renderers/text/index.scss b/packages/core/src/resource-controllers/text/index.scss similarity index 100% rename from packages/core/src/resource-renderers/text/index.scss rename to packages/core/src/resource-controllers/text/index.scss diff --git a/packages/entity/src/index.js b/packages/entity/src/index.js index 6c31be5..0ffa7d3 100644 --- a/packages/entity/src/index.js +++ b/packages/entity/src/index.js @@ -2,7 +2,7 @@ import {basename, extname} from 'path'; import {camelCase} from '@latus/core'; -import EntityRenderer from './resource-renderers/entity'; +import EntityController from './resource-controllers/entity'; export default { hooks: { @@ -10,8 +10,8 @@ export default { const TraitRenderers = latus.invokeReduce('@persea/entity/trait-renderers'); latus.set('%trait-renderers', TraitRenderers); }, - '@persea/core/resource-renderers': () => [ - EntityRenderer, + '@persea/core/resource-controllers': () => [ + EntityController, ], '@persea/entity/trait-renderers': () => { const context = require.context('./trait-renderers', false, /\.jsx$/); diff --git a/packages/entity/src/resource-renderers/entity/index.jsx b/packages/entity/src/resource-controllers/entity/index.jsx similarity index 85% rename from packages/entity/src/resource-renderers/entity/index.jsx rename to packages/entity/src/resource-controllers/entity/index.jsx index b0dd167..fa9f6d8 100644 --- a/packages/entity/src/resource-renderers/entity/index.jsx +++ b/packages/entity/src/resource-controllers/entity/index.jsx @@ -14,7 +14,7 @@ import { import Traits from './traits'; import View from './view'; -const EntityRendererComponent = ({ +const EntityComponent = ({ buffer, path, }) => { @@ -44,23 +44,23 @@ const EntityRendererComponent = ({ ); }; -EntityRendererComponent.defaultProps = { +EntityComponent.defaultProps = { path: '', }; -EntityRendererComponent.propTypes = { +EntityComponent.propTypes = { buffer: PropTypes.shape({}).isRequired, path: PropTypes.string, }; -export default class EntityResourceRenderer { +export default class EntityController { static Component({ buffer, path, }) { return ( - diff --git a/packages/entity/src/resource-renderers/entity/index.scss b/packages/entity/src/resource-controllers/entity/index.scss similarity index 100% rename from packages/entity/src/resource-renderers/entity/index.scss rename to packages/entity/src/resource-controllers/entity/index.scss diff --git a/packages/entity/src/resource-renderers/entity/stage/index.jsx b/packages/entity/src/resource-controllers/entity/stage/index.jsx similarity index 100% rename from packages/entity/src/resource-renderers/entity/stage/index.jsx rename to packages/entity/src/resource-controllers/entity/stage/index.jsx diff --git a/packages/entity/src/resource-renderers/entity/stage/index.scss b/packages/entity/src/resource-controllers/entity/stage/index.scss similarity index 100% rename from packages/entity/src/resource-renderers/entity/stage/index.scss rename to packages/entity/src/resource-controllers/entity/stage/index.scss diff --git a/packages/entity/src/resource-renderers/entity/traits/index.jsx b/packages/entity/src/resource-controllers/entity/traits/index.jsx similarity index 100% rename from packages/entity/src/resource-renderers/entity/traits/index.jsx rename to packages/entity/src/resource-controllers/entity/traits/index.jsx diff --git a/packages/entity/src/resource-renderers/entity/traits/index.scss b/packages/entity/src/resource-controllers/entity/traits/index.scss similarity index 100% rename from packages/entity/src/resource-renderers/entity/traits/index.scss rename to packages/entity/src/resource-controllers/entity/traits/index.scss diff --git a/packages/entity/src/resource-renderers/entity/view/index.jsx b/packages/entity/src/resource-controllers/entity/view/index.jsx similarity index 100% rename from packages/entity/src/resource-renderers/entity/view/index.jsx rename to packages/entity/src/resource-controllers/entity/view/index.jsx diff --git a/packages/entity/src/resource-renderers/entity/view/index.scss b/packages/entity/src/resource-controllers/entity/view/index.scss similarity index 100% rename from packages/entity/src/resource-renderers/entity/view/index.scss rename to packages/entity/src/resource-controllers/entity/view/index.scss diff --git a/packages/entity/src/trait-renderers/emitter/particle.jsx b/packages/entity/src/trait-renderers/emitter/particle.jsx index 8b09719..fe0543f 100644 --- a/packages/entity/src/trait-renderers/emitter/particle.jsx +++ b/packages/entity/src/trait-renderers/emitter/particle.jsx @@ -7,7 +7,7 @@ import { import {Number, Stage} from '@persea/core'; import {useJsonPatcher} from '@persea/json'; -import Entity from '../../resource-renderers/entity'; +import Entity from '../../resource-controllers/entity'; import useEntity from '../../hooks/use-entity'; const emitterJson = { diff --git a/packages/json/src/index.js b/packages/json/src/index.js index ab0d7d1..5742f3c 100644 --- a/packages/json/src/index.js +++ b/packages/json/src/index.js @@ -1,4 +1,4 @@ -import JsonResourceComponent from './json'; +import JsonController from './resource-controllers/json'; import reducer from './state/reducer'; export {default as useJsonPatcher} from './hooks/use-json-patcher'; @@ -7,8 +7,8 @@ export * from './state'; export default { hooks: { '@latus/redux/reducers': () => reducer, - '@persea/core/resource-renderers': () => [ - JsonResourceComponent, + '@persea/core/resource-controllers': () => [ + JsonController, ], }, }; diff --git a/packages/json/src/json.jsx b/packages/json/src/resource-controllers/json.jsx similarity index 91% rename from packages/json/src/json.jsx rename to packages/json/src/resource-controllers/json.jsx index 0a76eb4..06051a9 100644 --- a/packages/json/src/json.jsx +++ b/packages/json/src/resource-controllers/json.jsx @@ -2,7 +2,7 @@ import {React} from '@latus/react'; import {Prism as SyntaxHighlighter} from 'react-syntax-highlighter/dist/cjs/index'; import {dark} from 'react-syntax-highlighter/dist/cjs/styles/prism'; -export default class JsonResourceRenderer { +export default class JsonController { static Component({buffer}) { return (