From 0d0f635db47e1e339a1202f4268ffd971992b9aa Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Tue, 25 Feb 2020 15:21:23 +0000 Subject: [PATCH 1/4] eslint tidy up --- .eslintrc.json | 6 +- .prettierignore | 5 + package.json | 1 + packages/builder/rollup.config.js | 28 ++- packages/builder/src/App.svelte | 1 - .../src/accessLevels/AccessLevelsRoot.svelte | 7 +- .../src/actionsAndTriggers/ActionView.svelte | 23 +-- .../src/actionsAndTriggers/Actions.svelte | 28 ++- .../src/actionsAndTriggers/TriggerView.svelte | 5 +- .../src/builderStore/buildStateOrigins.js | 41 ++-- packages/builder/src/builderStore/index.js | 6 +- .../builderStore/loadComponentLibraries.js | 10 +- packages/builder/src/builderStore/store.js | 2 +- packages/builder/src/common/Dropdown.svelte | 2 +- .../builder/src/common/DropdownButton.svelte | 4 +- packages/builder/src/common/PlusButton.svelte | 4 +- packages/builder/src/common/core.js | 2 +- .../builder/src/database/ActionsHeader.svelte | 4 +- .../builder/src/database/FieldView.svelte | 2 +- .../builder/src/database/IndexView.svelte | 21 +-- .../builder/src/database/RecordView.svelte | 4 +- packages/builder/src/main.js | 1 + packages/builder/src/nav/NavItem.svelte | 9 +- .../ComponentSelectionList.svelte | 59 +++--- .../userInterface/ComponentsHierarchy.svelte | 24 +-- .../ComponentsHierarchyChildren.svelte | 6 +- .../ComponentsPaneSwitcher.svelte | 10 +- .../EventsEditor/EventEditorModal.svelte | 4 +- .../EventsEditor/StateBindingCascader.svelte | 2 +- .../src/userInterface/MasterLayout.svelte | 20 +- .../src/userInterface/NewScreen.svelte | 29 ++- .../PropertyCascader/PropertyCascader.svelte | 14 +- .../userInterface/PropertyCascader/index.js | 2 +- .../src/userInterface/PropsView.svelte | 32 ++-- .../userInterface/StateBindingControl.svelte | 2 +- .../pagesParsing/findDependencies.js | 2 +- .../pagesParsing/searchComponents.js | 2 +- .../src/userInterface/pagesParsing/types.js | 3 - .../pagesParsing/validatePages.js | 2 +- .../builder/tests/buildStateOrigins.spec.js | 56 +++--- packages/builder/tests/createProps.spec.js | 2 +- .../new/appPackageTemplate/plugins.js | 2 +- packages/cli/src/common.js | 2 +- packages/client/rollup.config.js | 1 - packages/client/scripts/publishDev.js | 2 - packages/client/src/index.js | 29 +-- packages/client/src/render/attachChildren.js | 2 +- packages/client/src/state/parseBinding.js | 13 +- .../client/src/state/stateManager/index.js | 81 ++++---- packages/core/src/indexing/allIds.js | 2 +- packages/core/src/indexing/sharding.js | 1 - packages/core/src/recordApi/load.js | 2 +- packages/core/src/recordApi/recordInfo.js | 2 +- packages/core/src/recordApi/uploadFile.js | 4 +- packages/core/src/templateApi/deleteNodes.js | 2 +- packages/core/test/apiWrapper.spec.js | 6 +- .../core/test/authApi.authenticate.spec.js | 2 +- packages/core/test/recordApi.files.spec.js | 8 +- packages/datastores/config.js | 1 - packages/datastores/config.template.js | 11 +- packages/datastores/datastores/azure-blob.js | 11 +- packages/datastores/index.js | 2 +- packages/datastores/tests/diagnosticPlugin.js | 6 - packages/datastores/tests/index.js | 1 - packages/datastores/tests/records.js | 31 +-- packages/datastores/tests/setup.js | 1 - .../rollup.config.js | 1 - .../rollup.testconfig.js | 2 +- .../src/Checkbox/CheckboxGroup.svelte | 66 +++---- .../src/Checkbox/index.js | 7 +- .../src/ClassBuilder.js | 44 ++--- .../src/Common/Formfield.svelte | 38 ++-- .../src/Common/FormfieldStore.js | 14 +- .../src/Common/Icon.svelte | 8 +- .../src/Common/Label.svelte | 8 +- .../src/Datatable/Datatable.svelte | 15 +- .../src/Datatable/DatatableBody.svelte | 13 +- .../src/Datatable/DatatableCell.svelte | 3 +- .../src/Datatable/DatatableHead.svelte | 12 +- .../src/Datatable/DatatableRow.svelte | 28 +-- .../src/Menu/Menu.svelte | 38 ++-- .../src/Menu/index.js | 4 +- .../src/Radiobutton/index.js | 6 +- .../src/Test/createApp.js | 2 +- .../src/Textfield/Textfield.svelte | 6 +- .../src/Textfield/index.js | 2 +- .../src/Typography/index.js | 26 +-- .../server/appPackages/testApp/plugins.js | 2 +- .../server/appPackages/testApp2/plugins.js | 2 +- .../server/initialise/createInstanceDb.js | 50 +++-- packages/server/initialise/createMasterDb.js | 40 ++-- .../initialise/initialiseRuntimePackages.js | 14 +- packages/server/middleware/routers.js | 6 +- packages/server/middleware/session.js | 6 +- packages/server/tests/createNewApp.js | 7 +- packages/server/tests/helpers.js | 6 +- packages/server/tests/multipleInstances.js | 7 +- packages/server/tests/testApp.js | 4 +- .../utilities/builder/componentLibraryInfo.js | 4 +- packages/server/utilities/builder/index.js | 8 +- .../server/utilities/builder/listScreens.js | 2 +- packages/server/utilities/createInstanceDb.js | 32 ---- .../utilities/injectedPlugins/createUser.js | 2 +- .../server/utilities/masterAppInternal.js | 10 +- packages/server/utilities/targzAppPackage.js | 6 +- .../standard-components/dist/generators.js | 33 ++-- .../standard-components/src/Container.svelte | 176 +++++++++++------- .../standard-components/src/Heading.svelte | 25 ++- packages/standard-components/src/Image.svelte | 22 +-- packages/standard-components/src/Link.svelte | 78 ++++---- packages/standard-components/src/Nav.svelte | 4 +- .../standard-components/src/Option.svelte | 1 - .../standard-components/src/Select.svelte | 10 +- .../standard-components/src/TableBody.svelte | 12 +- .../standard-components/src/TableHead.svelte | 12 +- .../src/Test/TestApp.svelte | 18 +- packages/standard-components/src/Text.svelte | 50 +++-- .../standard-components/src/button.svelte | 6 +- yarn.lock | 115 +++++++++++- 119 files changed, 911 insertions(+), 914 deletions(-) create mode 100644 .prettierignore delete mode 100644 packages/server/utilities/createInstanceDb.js diff --git a/.eslintrc.json b/.eslintrc.json index f93c56b437..2d9ab315a3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -5,11 +5,13 @@ "jest": true, "node": true }, + "parser": "babel-eslint", "parserOptions": { "ecmaVersion": 2019, - "sourceType": "module" + "sourceType": "module", + "allowImportExportEverywhere": true }, - "ignorePatterns": ["node_modules", "dist", "public"], + "ignorePatterns": ["node_modules", "dist", "public", "*.spec.js", "bundle.js"], "plugins": ["prettier", "svelte3"], "extends": ["eslint:recommended"], "overrides": [ diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000000..3f27c3f9da --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +packages/builder/src/userInterface/CurrentItemPreview.svelte +public +dist +packages/server/builder +**/*.spec.js \ No newline at end of file diff --git a/package.json b/package.json index b6aa0e8e1f..cd22a9972d 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "root", "private": true, "devDependencies": { + "babel-eslint": "^10.0.3", "eslint": "^6.8.0", "eslint-plugin-prettier": "^3.1.2", "eslint-plugin-svelte3": "^2.7.3", diff --git a/packages/builder/rollup.config.js b/packages/builder/rollup.config.js index 5035222d7f..10e6e866ea 100644 --- a/packages/builder/rollup.config.js +++ b/packages/builder/rollup.config.js @@ -16,23 +16,17 @@ const _builderProxy = proxy("/_builder", { pathRewrite: { "^/_builder": "" }, }) -const apiProxy = proxy( - [ - "/_builder/api/**", - "/_builder/**/componentlibrary" - ], - { - target, - logLevel: "debug", - changeOrigin: true, - cookieDomainRewrite: true, - onProxyReq(proxyReq) { - if (proxyReq.getHeader("origin")) { - proxyReq.setHeader("origin", target) - } - }, - } -) +const apiProxy = proxy(["/_builder/api/**", "/_builder/**/componentlibrary"], { + target, + logLevel: "debug", + changeOrigin: true, + cookieDomainRewrite: true, + onProxyReq(proxyReq) { + if (proxyReq.getHeader("origin")) { + proxyReq.setHeader("origin", target) + } + }, +}) const production = !process.env.ROLLUP_WATCH diff --git a/packages/builder/src/App.svelte b/packages/builder/src/App.svelte index 230aa17179..81e74e8543 100644 --- a/packages/builder/src/App.svelte +++ b/packages/builder/src/App.svelte @@ -61,5 +61,4 @@ align-items: center; justify-content: center; } - diff --git a/packages/builder/src/accessLevels/AccessLevelsRoot.svelte b/packages/builder/src/accessLevels/AccessLevelsRoot.svelte index 4168d36bfb..c71e712844 100644 --- a/packages/builder/src/accessLevels/AccessLevelsRoot.svelte +++ b/packages/builder/src/accessLevels/AccessLevelsRoot.svelte @@ -82,11 +82,10 @@ {:else}(no actions added){/if} - isEditing = false} + (isEditing = false)} bind:isOpen={isEditing} - title={isEditing ? "Edit Access Level" : "Create Access Level"} - > + title={isEditing ? 'Edit Access Level' : 'Create Access Level'}> {#if isEditing} ({ key: k, value: action.initialOptions[k] }))] - ) + let initialOptions = pipe(action.initialOptions, [ + keys, + map(k => ({ key: k, value: action.initialOptions[k] })), + ]) let errors = [] const addNewOption = () => { @@ -44,26 +44,17 @@ const removeOption = opt => { if (opt) { delete clonedAction.initialOptions[opt.key] - initialOptions = pipe( - initialOptions, - [filter(o => o.key !== opt.key)] - ) + initialOptions = pipe(initialOptions, [filter(o => o.key !== opt.key)]) } } const save = () => { const newActionsList = [ - ...pipe( - allActions, - [filter(a => a !== action)] - ), + ...pipe(allActions, [filter(a => a !== action)]), clonedAction, ] - errors = pipe( - newActionsList, - [validateActions, map(e => e.error)] - ) + errors = pipe(newActionsList, [validateActions, map(e => e.error)]) if (errors.length === 0) onFinished(clonedAction) } diff --git a/packages/builder/src/actionsAndTriggers/Actions.svelte b/packages/builder/src/actionsAndTriggers/Actions.svelte index 54a7b90766..309cdf44a2 100644 --- a/packages/builder/src/actionsAndTriggers/Actions.svelte +++ b/packages/builder/src/actionsAndTriggers/Actions.svelte @@ -19,26 +19,20 @@ let actionsArray = [] store.subscribe(s => { - actionsArray = pipe( - s.actions, - [keys, map(k => s.actions[k])] - ) + actionsArray = pipe(s.actions, [keys, map(k => s.actions[k])]) }) let getDefaultOptionsHtml = defaultOptions => - pipe( - defaultOptions, - [ - keys, - map( - k => - `${k}: ${JSON.stringify( - defaultOptions[k] - )}` - ), - join("
"), - ] - ) + pipe(defaultOptions, [ + keys, + map( + k => + `${k}: ${JSON.stringify( + defaultOptions[k] + )}` + ), + join("
"), + ]) let actionEditingFinished = action => { if (action) { diff --git a/packages/builder/src/actionsAndTriggers/TriggerView.svelte b/packages/builder/src/actionsAndTriggers/TriggerView.svelte index 68b5463938..fe9cf910cc 100644 --- a/packages/builder/src/actionsAndTriggers/TriggerView.svelte +++ b/packages/builder/src/actionsAndTriggers/TriggerView.svelte @@ -22,10 +22,7 @@ let cancel = () => onFinished() let save = () => { const newTriggersList = [ - ...pipe( - allTriggers, - [filter(t => t !== trigger)] - ), + ...pipe(allTriggers, [filter(t => t !== trigger)]), clonedTrigger, ] diff --git a/packages/builder/src/builderStore/buildStateOrigins.js b/packages/builder/src/builderStore/buildStateOrigins.js index e1c1efed9a..d368b3656e 100644 --- a/packages/builder/src/builderStore/buildStateOrigins.js +++ b/packages/builder/src/builderStore/buildStateOrigins.js @@ -1,27 +1,28 @@ - /** - * buildStateOrigins - * - * Builds an object that details all the bound state in the application, and what updates it. - * - * @param screenDefinition - the screen definition metadata. - * @returns {Object} an object with the client state values and how they are managed. - */ - export const buildStateOrigins = screenDefinition => { - const origins = {}; +/** + * buildStateOrigins + * + * Builds an object that details all the bound state in the application, and what updates it. + * + * @param screenDefinition - the screen definition metadata. + * @returns {Object} an object with the client state values and how they are managed. + */ +export const buildStateOrigins = screenDefinition => { + const origins = {} - function traverse(propValue) { - for (let key in propValue) { - if (!Array.isArray(propValue[key])) continue; + function traverse(propValue) { + for (let key in propValue) { + if (!Array.isArray(propValue[key])) continue - if (key === "_children") propValue[key].forEach(traverse); + if (key === "_children") propValue[key].forEach(traverse) - for (let element of propValue[key]) { - if (element["##eventHandlerType"] === "Set State") origins[element.parameters.path] = element; - } + for (let element of propValue[key]) { + if (element["##eventHandlerType"] === "Set State") + origins[element.parameters.path] = element } } + } - traverse(screenDefinition.props); + traverse(screenDefinition.props) - return origins; - }; \ No newline at end of file + return origins +} diff --git a/packages/builder/src/builderStore/index.js b/packages/builder/src/builderStore/index.js index 119fb60de0..dfc6d9fe59 100644 --- a/packages/builder/src/builderStore/index.js +++ b/packages/builder/src/builderStore/index.js @@ -1,10 +1,7 @@ -import { createPackage } from "./createPackage" import getStore from "./store" export const store = getStore() -export const createNewPackage = () => createPackage(packageInfo, store) - export const initialise = async () => { try { setupRouter(store) @@ -17,8 +14,7 @@ export const initialise = async () => { const setupRouter = writable => { const pushState = history.pushState history.pushState = () => { - pushState.apply(history, arguments) - //fireEvents('pushState', arguments); + pushState.apply(history, [writable]) writable.initialise() } window.addEventListener("hashchange", () => { diff --git a/packages/builder/src/builderStore/loadComponentLibraries.js b/packages/builder/src/builderStore/loadComponentLibraries.js index 1bd30a5582..e844ba77de 100644 --- a/packages/builder/src/builderStore/loadComponentLibraries.js +++ b/packages/builder/src/builderStore/loadComponentLibraries.js @@ -5,7 +5,6 @@ export const loadLibs = async (appName, appPackage) => { const allLibraries = {} for (let lib of libsFromPages(appPackage.pages)) { - const libModule = await import(makeLibraryUrl(appName, lib)) allLibraries[lib] = libModule } @@ -31,10 +30,5 @@ export const loadLib = async (appName, lib, allLibs) => { export const makeLibraryUrl = (appName, lib) => `/_builder/${appName}/componentlibrary?lib=${encodeURI(lib)}` -export const libsFromPages = pages => pipe(pages, [ - values, - map(p => p.componentLibraries), - flatten, - uniq -]) - +export const libsFromPages = pages => + pipe(pages, [values, map(p => p.componentLibraries), flatten, uniq]) diff --git a/packages/builder/src/builderStore/store.js b/packages/builder/src/builderStore/store.js index 4d34b7e355..2096f932f1 100644 --- a/packages/builder/src/builderStore/store.js +++ b/packages/builder/src/builderStore/store.js @@ -763,7 +763,7 @@ const addChildComponent = store => (componentToAdd, presetName) => { state.currentFrontEndType === "page" ? _savePage(state) : _saveScreenApi(state.currentPreviewItem, state) - + state.currentComponentInfo = newComponent.props return state diff --git a/packages/builder/src/common/Dropdown.svelte b/packages/builder/src/common/Dropdown.svelte index c0bf73c63a..76e0665692 100644 --- a/packages/builder/src/common/Dropdown.svelte +++ b/packages/builder/src/common/Dropdown.svelte @@ -1,6 +1,6 @@ -
{label}
+
+ {label} +
\ No newline at end of file + diff --git a/packages/builder/src/userInterface/ComponentSelectionList.svelte b/packages/builder/src/userInterface/ComponentSelectionList.svelte index 6c880fcee7..80e7ab501d 100644 --- a/packages/builder/src/userInterface/ComponentSelectionList.svelte +++ b/packages/builder/src/userInterface/ComponentSelectionList.svelte @@ -1,13 +1,26 @@
- (selectedLib = e.target.value)}> {#each componentLibraries as lib} - + {/each} @@ -136,9 +149,7 @@ {#if componentLibrary} {#each generate_components_list(componentLibrary.components) as component}
-
onComponentChosen(component)}> +
onComponentChosen(component)}>
{splitName(component.name).componentName}
{#if (component.presets || templatesByComponent[component.name]) && component.name === selectedComponent}
    @@ -152,7 +163,9 @@ {/each} {/if} {#if templatesByComponent[component.name]} - {splitName(component.name).componentName} Templates + + {splitName(component.name).componentName} Templates + {#each templatesByComponent[component.name] as template}
  • onTemplateChosen(template)}> @@ -180,18 +193,21 @@ {/if}
-
selectedComponent = null} + onCancel={() => (selectedComponent = null)} onOk={onTemplateInstanceChosen}> {#each templateInstances.map(i => i.name) as instance}
@@ -307,5 +323,4 @@ .template-instance-label { margin-left: 20px; } - diff --git a/packages/builder/src/userInterface/ComponentsHierarchy.svelte b/packages/builder/src/userInterface/ComponentsHierarchy.svelte index 403e4e22bc..15d89e6d80 100644 --- a/packages/builder/src/userInterface/ComponentsHierarchy.svelte +++ b/packages/builder/src/userInterface/ComponentsHierarchy.svelte @@ -15,15 +15,12 @@ const joinPath = join("/") const normalizedName = name => - pipe( - name, - [ - trimCharsStart("./"), - trimCharsStart("~/"), - trimCharsStart("../"), - trimChars(" "), - ] - ) + pipe(name, [ + trimCharsStart("./"), + trimCharsStart("~/"), + trimCharsStart("../"), + trimChars(" "), + ]) const lastPartOfName = c => { if (!c) return "" @@ -31,15 +28,14 @@ return last(name.split("/")) } - const isComponentSelected = (current, comp) => current === comp const isFolderSelected = (current, folder) => isInSubfolder(current, folder) - $: _screens = pipe( - screens, - [map(c => ({ component: c, title: lastPartOfName(c) })), sortBy("title")] - ) + $: _screens = pipe(screens, [ + map(c => ({ component: c, title: lastPartOfName(c) })), + sortBy("title"), + ]) const isScreenSelected = component => component.component && diff --git a/packages/builder/src/userInterface/ComponentsHierarchyChildren.svelte b/packages/builder/src/userInterface/ComponentsHierarchyChildren.svelte index 046387b9be..8a168ec11e 100644 --- a/packages/builder/src/userInterface/ComponentsHierarchyChildren.svelte +++ b/packages/builder/src/userInterface/ComponentsHierarchyChildren.svelte @@ -20,11 +20,7 @@ const capitalise = s => s.substring(0, 1).toUpperCase() + s.substring(1) const get_name = s => (!s ? "" : last(s.split("/"))) - const get_capitalised_name = name => - pipe( - name, - [get_name, capitalise] - ) + const get_capitalised_name = name => pipe(name, [get_name, capitalise]) const moveDownComponent = component => { const c = component diff --git a/packages/builder/src/userInterface/ComponentsPaneSwitcher.svelte b/packages/builder/src/userInterface/ComponentsPaneSwitcher.svelte index c77e7a0a5a..5d094ad94e 100644 --- a/packages/builder/src/userInterface/ComponentsPaneSwitcher.svelte +++ b/packages/builder/src/userInterface/ComponentsPaneSwitcher.svelte @@ -3,16 +3,18 @@ import ComponentPropertiesPanel from "./ComponentPropertiesPanel.svelte" import ComponentSelectionList from "./ComponentSelectionList.svelte" - const PROPERTIES_TAB = "properties"; - const COMPONENT_SELECTION_TAB = "components"; + const PROPERTIES_TAB = "properties" + const COMPONENT_SELECTION_TAB = "components" - let selected = PROPERTIES_TAB + let selected = PROPERTIES_TAB const isSelected = tab => selected === tab const selectTab = tab => (selected = tab) - const toggleTab = () => selected = selected === PROPERTIES_TAB ? COMPONENT_SELECTION_TAB : PROPERTIES_TAB; + const toggleTab = () => + (selected = + selected === PROPERTIES_TAB ? COMPONENT_SELECTION_TAB : PROPERTIES_TAB)
diff --git a/packages/builder/src/userInterface/EventsEditor/EventEditorModal.svelte b/packages/builder/src/userInterface/EventsEditor/EventEditorModal.svelte index 56370d7a89..de5f0dd883 100644 --- a/packages/builder/src/userInterface/EventsEditor/EventEditorModal.svelte +++ b/packages/builder/src/userInterface/EventsEditor/EventEditorModal.svelte @@ -20,8 +20,8 @@ let draftEventHandler = { parameters: [] } $: eventData = event || { handlers: [] } - $: if (!eventOptions.includes(eventType) && eventOptions.length > 0) - eventType = eventOptions[0].name + $: if (!eventOptions.includes(eventType) && eventOptions.length > 0) + eventType = eventOptions[0].name const closeModal = () => { onClose() diff --git a/packages/builder/src/userInterface/EventsEditor/StateBindingCascader.svelte b/packages/builder/src/userInterface/EventsEditor/StateBindingCascader.svelte index 15539f7b21..87a4cba96f 100644 --- a/packages/builder/src/userInterface/EventsEditor/StateBindingCascader.svelte +++ b/packages/builder/src/userInterface/EventsEditor/StateBindingCascader.svelte @@ -61,7 +61,7 @@ display: flex; flex-direction: column; } - + .handler-input { position: relative; display: flex; diff --git a/packages/builder/src/userInterface/MasterLayout.svelte b/packages/builder/src/userInterface/MasterLayout.svelte index e87b11429a..bf691069c0 100644 --- a/packages/builder/src/userInterface/MasterLayout.svelte +++ b/packages/builder/src/userInterface/MasterLayout.svelte @@ -16,15 +16,12 @@ const joinPath = join("/") const normalizedName = name => - pipe( - name, - [ - trimCharsStart("./"), - trimCharsStart("~/"), - trimCharsStart("../"), - trimChars(" "), - ] - ) + pipe(name, [ + trimCharsStart("./"), + trimCharsStart("~/"), + trimCharsStart("../"), + trimChars(" "), + ]) const lastPartOfName = c => c && last(c.name ? c.name.split("/") : c._component.split("/")) @@ -33,10 +30,7 @@ const isFolderSelected = (current, folder) => isInSubfolder(current, folder) - $: _layout = pipe( - layout, - [c => ({ component: c, title: lastPartOfName(c) })] - ) + $: _layout = pipe(layout, [c => ({ component: c, title: lastPartOfName(c) })]) const isScreenSelected = component => component.component && diff --git a/packages/builder/src/userInterface/NewScreen.svelte b/packages/builder/src/userInterface/NewScreen.svelte index 3d46632630..3fb7fb0fbb 100644 --- a/packages/builder/src/userInterface/NewScreen.svelte +++ b/packages/builder/src/userInterface/NewScreen.svelte @@ -21,20 +21,17 @@ let layoutComponent let screens let name = "" - + let saveAttempted = false - $: layoutComponents = pipe( - $store.components, - [ - filter(c => c.container), - map(c => ({ name: c.name, ...splitName(c.name) })), - ] - ) + $: layoutComponents = pipe($store.components, [ + filter(c => c.container), + map(c => ({ name: c.name, ...splitName(c.name) })), + ]) $: layoutComponent = layoutComponent - ? find(c => c.name === layoutComponent.name)(layoutComponents) - : layoutComponents[0] + ? find(c => c.name === layoutComponent.name)(layoutComponents) + : layoutComponents[0] $: screens = $store.screens $: route = !route && screens.length === 0 ? "*" : route @@ -43,9 +40,11 @@ saveAttempted = true const isValid = - name.length > 0 && !screenNameExists(name) - && route.length > 0 && !routeNameExists(route) - && layoutComponent + name.length > 0 && + !screenNameExists(name) && + route.length > 0 && + !routeNameExists(route) && + layoutComponent if (!isValid) return @@ -101,8 +100,8 @@ + bind:value={route} + on:change={routeChanged} />
diff --git a/packages/builder/src/userInterface/PropertyCascader/PropertyCascader.svelte b/packages/builder/src/userInterface/PropertyCascader/PropertyCascader.svelte index f0b08d98d9..27f76b9356 100644 --- a/packages/builder/src/userInterface/PropertyCascader/PropertyCascader.svelte +++ b/packages/builder/src/userInterface/PropertyCascader/PropertyCascader.svelte @@ -3,7 +3,7 @@ import { store } from "../../builderStore" import { buildStateOrigins } from "../../builderStore/buildStateOrigins" import { isBinding, getBinding, setBinding } from "../../common/binding" - import StateBindingOptions from "./StateBindingOptions.svelte"; + import StateBindingOptions from "./StateBindingOptions.svelte" export let onChanged = () => {} export let value = "" @@ -28,7 +28,8 @@ const setBindingPath = value => bindValueToSource(value, bindingFallbackValue, bindingSource) - const setBindingFallback = value => bindValueToSource(bindingPath, value, bindingSource) + const setBindingFallback = value => + bindValueToSource(bindingPath, value, bindingSource) const setBindingSource = source => bindValueToSource(bindingPath, bindingFallbackValue, source) @@ -69,10 +70,11 @@
{#if isOpen} - { - onChanged(option); - isOpen = false; - }} /> + { + onChanged(option) + isOpen = false + }} /> {/if} diff --git a/packages/builder/src/userInterface/PropertyCascader/index.js b/packages/builder/src/userInterface/PropertyCascader/index.js index 14b79c4e0c..2a2573830a 100644 --- a/packages/builder/src/userInterface/PropertyCascader/index.js +++ b/packages/builder/src/userInterface/PropertyCascader/index.js @@ -1 +1 @@ -export { default } from "./PropertyCascader.svelte" \ No newline at end of file +export { default } from "./PropertyCascader.svelte" diff --git a/packages/builder/src/userInterface/PropsView.svelte b/packages/builder/src/userInterface/PropsView.svelte index 90423d4dc5..bbb657ed6b 100644 --- a/packages/builder/src/userInterface/PropsView.svelte +++ b/packages/builder/src/userInterface/PropsView.svelte @@ -11,36 +11,34 @@ let errors = [] const props_to_ignore = ["_component", "_children", "_styles", "_code", "_id"] - - $: componentDef = - component && components && - components.find(({ name }) => name === component._component) - + $: componentDef = + component && + components && + components.find(({ name }) => name === component._component) let setProp = (name, value) => { onPropChanged(name, value) } -
{#if componentDef} - {#each Object.entries(componentDef.props) as [prop_name, prop_def], index} -
+ {#each Object.entries(componentDef.props) as [prop_name, prop_def], index} +
- + -
- {/each} +
+ {/each} {/if}
diff --git a/packages/builder/src/userInterface/StateBindingControl.svelte b/packages/builder/src/userInterface/StateBindingControl.svelte index f96ae7fd08..6de53082e2 100644 --- a/packages/builder/src/userInterface/StateBindingControl.svelte +++ b/packages/builder/src/userInterface/StateBindingControl.svelte @@ -23,7 +23,7 @@ class="uk-select uk-form-small" {value} on:change={ev => onChanged(ev.target.value)}> - {#each (options || []) as option} + {#each options || [] as option} {/each} diff --git a/packages/builder/src/userInterface/pagesParsing/findDependencies.js b/packages/builder/src/userInterface/pagesParsing/findDependencies.js index a01de928f1..37a195eb91 100644 --- a/packages/builder/src/userInterface/pagesParsing/findDependencies.js +++ b/packages/builder/src/userInterface/pagesParsing/findDependencies.js @@ -5,7 +5,7 @@ import { isRootComponent } from "./searchComponents" export const libraryDependencies = (components, lib) => { const componentDependsOnLibrary = comp => { if (isRootComponent(comp)) { - const { libName } = splitName(component.name) + const { libName } = splitName(comp.name) return libName === lib } return componentDependsOnLibrary( diff --git a/packages/builder/src/userInterface/pagesParsing/searchComponents.js b/packages/builder/src/userInterface/pagesParsing/searchComponents.js index edccd3a2aa..608b50dfa0 100644 --- a/packages/builder/src/userInterface/pagesParsing/searchComponents.js +++ b/packages/builder/src/userInterface/pagesParsing/searchComponents.js @@ -1,6 +1,6 @@ import { pipe } from "../../common/core" -import { find, isUndefined, filter, some, includes, has } from "lodash/fp" +import { find, isUndefined, filter, some, includes } from "lodash/fp" const normalString = s => (s || "").trim().toLowerCase() diff --git a/packages/builder/src/userInterface/pagesParsing/types.js b/packages/builder/src/userInterface/pagesParsing/types.js index ecc23dc6d0..05d95e1956 100644 --- a/packages/builder/src/userInterface/pagesParsing/types.js +++ b/packages/builder/src/userInterface/pagesParsing/types.js @@ -3,10 +3,8 @@ import { isBoolean, isNumber, isArray, - isObjectLike, isPlainObject, every, - isUndefined, } from "lodash/fp" import { EVENT_TYPE_MEMBER_NAME } from "../../common/eventHandlers" @@ -61,7 +59,6 @@ export const expandComponentDefinition = componentDefinition => { return expandedComponent } -const isComponent = isObjectLike const isEvent = e => isPlainObject(e) && isString(e[EVENT_TYPE_MEMBER_NAME]) && diff --git a/packages/builder/src/userInterface/pagesParsing/validatePages.js b/packages/builder/src/userInterface/pagesParsing/validatePages.js index 9d8a992b8f..3eeec4b84a 100644 --- a/packages/builder/src/userInterface/pagesParsing/validatePages.js +++ b/packages/builder/src/userInterface/pagesParsing/validatePages.js @@ -2,7 +2,7 @@ import { isString, keys, flatten, isArray, map, filter } from "lodash/fp" import { common } from "../../../../core/src" const pipe = common.$ -export const validatePage = (page, getComponent) => { +export const validatePage = page => { const errors = [] const error = message => errors.push(message) diff --git a/packages/builder/tests/buildStateOrigins.spec.js b/packages/builder/tests/buildStateOrigins.spec.js index c67bb103d3..29d8907873 100644 --- a/packages/builder/tests/buildStateOrigins.spec.js +++ b/packages/builder/tests/buildStateOrigins.spec.js @@ -1,30 +1,32 @@ -import { buildStateOrigins } from "../src/builderStore/buildStateOrigins"; +import { buildStateOrigins } from "../src/builderStore/buildStateOrigins" it("builds the correct stateOrigins object from a screen definition with handlers", () => { - expect(buildStateOrigins({ - "name": "screen1", - "description": "", - "props": { - "_component": "@budibase/standard-components/container", - "className": "", - "type": "div", - "onClick": [ - { - "##eventHandlerType": "Set State", - "parameters": { - "path": "testKey", - "value": "value" - } - } - ] - } - })).toEqual({ - "testKey": { + expect( + buildStateOrigins({ + name: "screen1", + description: "", + props: { + _component: "@budibase/standard-components/container", + className: "", + type: "div", + onClick: [ + { + "##eventHandlerType": "Set State", + parameters: { + path: "testKey", + value: "value", + }, + }, + ], + }, + }) + ).toEqual({ + testKey: { "##eventHandlerType": "Set State", - "parameters": { - "path": "testKey", - "value": "value" - } - } - }); -}); \ No newline at end of file + parameters: { + path: "testKey", + value: "value", + }, + }, + }) +}) diff --git a/packages/builder/tests/createProps.spec.js b/packages/builder/tests/createProps.spec.js index a26f626f40..7acfa38b48 100644 --- a/packages/builder/tests/createProps.spec.js +++ b/packages/builder/tests/createProps.spec.js @@ -206,7 +206,7 @@ describe("createDefaultProps", () => { expect(props.fieldName).toBe("surname") expect(props.fieldLength).toBe(500) }) - + it("should create standard props", () => { const comp = getcomponent() comp.props.fieldName = { type: "string", default: 1 } diff --git a/packages/cli/src/commands/new/appPackageTemplate/plugins.js b/packages/cli/src/commands/new/appPackageTemplate/plugins.js index e28e02b54d..44368bf6ec 100644 --- a/packages/cli/src/commands/new/appPackageTemplate/plugins.js +++ b/packages/cli/src/commands/new/appPackageTemplate/plugins.js @@ -1 +1 @@ -module.exports = config => ({}) +module.exports = () => ({}) diff --git a/packages/cli/src/common.js b/packages/cli/src/common.js index 8ac440e335..924f446909 100644 --- a/packages/cli/src/common.js +++ b/packages/cli/src/common.js @@ -1,4 +1,4 @@ -const { resolve, join } = require("path") +const { resolve } = require("path") const { cwd } = require("process") const buildAppContext = require("@budibase/server/initialise/buildAppContext") diff --git a/packages/client/rollup.config.js b/packages/client/rollup.config.js index 3abdba76f9..d32c01ff85 100644 --- a/packages/client/rollup.config.js +++ b/packages/client/rollup.config.js @@ -2,7 +2,6 @@ import resolve from "rollup-plugin-node-resolve" import commonjs from "rollup-plugin-commonjs" import builtins from "rollup-plugin-node-builtins" import nodeglobals from "rollup-plugin-node-globals" -import { terser } from "rollup-plugin-terser" const lodash_fp_exports = [ "find", diff --git a/packages/client/scripts/publishDev.js b/packages/client/scripts/publishDev.js index f15fd789c4..2e21bdfef3 100644 --- a/packages/client/scripts/publishDev.js +++ b/packages/client/scripts/publishDev.js @@ -19,8 +19,6 @@ const appPackages = join( const publicMain = appName => join(appPackages, appName, "public", "main") const publicUnauth = appName => join(appPackages, appName, "public", "unauthenticated") -const nodeModules = appName => - join(appPackages, appName, "node_modules", "@budibase", "client", "dist") ;(async () => { const apps = await readdir(appPackages) diff --git a/packages/client/src/index.js b/packages/client/src/index.js index 98ee7488c0..98c936b3e8 100644 --- a/packages/client/src/index.js +++ b/packages/client/src/index.js @@ -6,16 +6,15 @@ import { builtins, builtinLibName } from "./render/builtinComponents" * create a web application from static budibase definition files. * @param {object} opts - configuration options for budibase client libary */ -export const loadBudibase = async (opts) => { - +export const loadBudibase = async opts => { let componentLibraries = opts && opts.componentLibraries const _window = (opts && opts.window) || window - const _localStorage = (opts && opts.localStorage) || localStorage + const _localStorage = (opts && opts.localStorage) || localStorage const backendDefinition = _window["##BUDIBASE_BACKEND_DEFINITION##"] const frontendDefinition = _window["##BUDIBASE_FRONTEND_DEFINITION##"] const uiFunctions = _window["##BUDIBASE_FRONTEND_FUNCTIONS##"] - + const userFromStorage = _localStorage.getItem("budibase:user") const user = userFromStorage @@ -33,8 +32,8 @@ export const loadBudibase = async (opts) => { : "/" + trimSlash(frontendDefinition.appRootPath) if (!componentLibraries) { - - const componentLibraryUrl = lib => frontendDefinition.appRootPath + "/" + trimSlash(lib) + const componentLibraryUrl = lib => + frontendDefinition.appRootPath + "/" + trimSlash(lib) componentLibraries = {} for (let lib of frontendDefinition.componentLibraries) { @@ -46,25 +45,29 @@ export const loadBudibase = async (opts) => { componentLibraries[builtinLibName] = builtins(_window) - const { initialisePage, screenStore, pageStore, routeTo, rootNode } = createApp( + const { initialisePage, screenStore, pageStore, routeTo } = createApp( componentLibraries, frontendDefinition, backendDefinition, user, uiFunctions || {}, - _window + _window, + rootNode ) - const route = _window.location - ? _window.location.pathname.replace(frontendDefinition.appRootPath, "") - : ""; + const route = _window.location + ? _window.location.pathname.replace(frontendDefinition.appRootPath, "") + : "" return { - rootNode: initialisePage(frontendDefinition.page, _window.document.body, route), + rootNode: initialisePage( + frontendDefinition.page, + _window.document.body, + route + ), screenStore, pageStore, routeTo, - rootNode } } diff --git a/packages/client/src/render/attachChildren.js b/packages/client/src/render/attachChildren.js index ef46271028..803bc30895 100644 --- a/packages/client/src/render/attachChildren.js +++ b/packages/client/src/render/attachChildren.js @@ -47,7 +47,7 @@ export const attachChildren = initialiseOpts => (htmlElement, options) => { uiFunctions, htmlElement, anchor, - getCurrentState + getCurrentState, }) for (let childNode of childNodesThisIteration) { diff --git a/packages/client/src/state/parseBinding.js b/packages/client/src/state/parseBinding.js index c91fced285..76ab786dc9 100644 --- a/packages/client/src/state/parseBinding.js +++ b/packages/client/src/state/parseBinding.js @@ -5,9 +5,9 @@ export const BB_STATE_FALLBACK = "##bbstatefallback" export const isBound = prop => !!parseBinding(prop) /** - * + * * @param {object|string|number} prop - component property to parse for a dynamic state binding - * @returns {object|boolean} + * @returns {object|boolean} */ export const parseBinding = prop => { if (!prop) return false @@ -34,7 +34,8 @@ export const parseBinding = prop => { } export const isStoreBinding = binding => binding && binding.source === "store" -export const isContextBinding = binding => binding && binding.source === "context" +export const isContextBinding = binding => + binding && binding.source === "context" export const isEventBinding = binding => binding && binding.source === "event" const hasBindingObject = prop => @@ -50,8 +51,8 @@ const isBindingExpression = prop => prop.startsWith("route.")) const parseBindingExpression = prop => { - let [source, ...rest] = prop.split("."); - let path = rest.join(".") + let [source, ...rest] = prop.split(".") + let path = rest.join(".") if (source === "route") { source = "state" @@ -59,7 +60,7 @@ const parseBindingExpression = prop => { } return { - fallback: "", // TODO: provide fallback support + fallback: "", // TODO: provide fallback support source, path, } diff --git a/packages/client/src/state/stateManager/index.js b/packages/client/src/state/stateManager/index.js index 09c80384c6..a4bf858ba8 100644 --- a/packages/client/src/state/stateManager/index.js +++ b/packages/client/src/state/stateManager/index.js @@ -160,41 +160,46 @@ const setNodeState = (storeState, node) => { * Bind a components event handler parameters to state, context or the event itself. * @param {Array} eventHandlerProp - event handler array from component definition */ -function bindComponentEventHandlers(eventHandlerProp) { - const boundEventHandlers = [] - for (let event of eventHandlerProp) { - const boundEventHandler = { - handlerType: event[EVENT_TYPE_MEMBER_NAME], - parameters: event.parameters, +function bindComponentEventHandlers( + eventHandlerProp, + context, + getCurrentState +) { + const boundEventHandlers = [] + for (let event of eventHandlerProp) { + const boundEventHandler = { + handlerType: event[EVENT_TYPE_MEMBER_NAME], + parameters: event.parameters, + } + + const boundParameters = {} + for (let paramName in boundEventHandler.parameters) { + const paramValue = boundEventHandler.parameters[paramName] + const paramBinding = parseBinding(paramValue) + if (!paramBinding) { + boundParameters[paramName] = () => paramValue + continue } - const boundParameters = {} - for (let paramName in boundEventHandler.parameters) { - const paramValue = boundEventHandler.parameters[paramName] - const paramBinding = parseBinding(paramValue) - if (!paramBinding) { - boundParameters[paramName] = () => paramValue - continue - } + let paramValueSource - let paramValueSource; + if (paramBinding.source === "context") paramValueSource = context + if (paramBinding.source === "state") paramValueSource = getCurrentState() - if (paramBinding.source === "context") paramValueSource = context; - if (paramBinding.source === "state") paramValueSource = getCurrentState(); - - // The new dynamic event parameter bound to the relevant source - boundParameters[paramName] = eventContext => getState( + // The new dynamic event parameter bound to the relevant source + boundParameters[paramName] = eventContext => + getState( paramBinding.source === "event" ? eventContext : paramValueSource, paramBinding.path, paramBinding.fallback - ); - } - - boundEventHandler.parameters = boundParameters - boundEventHandlers.push(boundEventHandlers) - - return boundEventHandlers; + ) } + + boundEventHandler.parameters = boundParameters + boundEventHandlers.push(boundEventHandlers) + + return boundEventHandlers + } } const _setup = ( @@ -230,22 +235,26 @@ const _setup = ( binding.fallback, binding.source ) - } - + } + if (isBound && binding.source === "context") { initialProps[propName] = !context ? propValue : getState(context, binding.path, binding.fallback, binding.source) - } - - if (isEventType(propValue)) { - const boundEventHandlers = bindComponentEventHandlers(propValue); + } - if (boundEventHandlers.length === 0) { + if (isEventType(propValue)) { + const boundEventHandlers = bindComponentEventHandlers( + propValue, + context, + getCurrentState + ) + + if (boundEventHandlers.length === 0) { initialProps[propName] = doNothing } else { initialProps[propName] = async context => { - for (let handlerInfo of handlersInfos) { + for (let handlerInfo of boundEventHandlers) { const handler = makeHandler(handlerTypes, handlerInfo) await handler(context) } @@ -271,4 +280,4 @@ const makeHandler = (handlerTypes, handlerInfo) => { } handlerType.execute(parameters) } -} \ No newline at end of file +} diff --git a/packages/core/src/indexing/allIds.js b/packages/core/src/indexing/allIds.js index f9ae05c3e0..1951ba3086 100644 --- a/packages/core/src/indexing/allIds.js +++ b/packages/core/src/indexing/allIds.js @@ -1,5 +1,5 @@ import { flatten, orderBy, filter, isUndefined } from "lodash/fp" -import hierarchy, { +import { getFlattenedHierarchy, getCollectionNodeByKeyOrNodeKey, isCollectionRecord, diff --git a/packages/core/src/indexing/sharding.js b/packages/core/src/indexing/sharding.js index deb19082a0..a9b5ded1d7 100644 --- a/packages/core/src/indexing/sharding.js +++ b/packages/core/src/indexing/sharding.js @@ -5,7 +5,6 @@ import { isGlobalIndex, getParentKey, isShardedIndex, - getExactNodeForKey, } from "../templateApi/hierarchy" import { joinKey, isNonEmptyString, splitKey, $ } from "../common" diff --git a/packages/core/src/recordApi/load.js b/packages/core/src/recordApi/load.js index 045fee7138..cca43eaa4c 100644 --- a/packages/core/src/recordApi/load.js +++ b/packages/core/src/recordApi/load.js @@ -1,5 +1,5 @@ import { keyBy, mapValues, filter, map, includes, last } from "lodash/fp" -import { getExactNodeForKey, getNode } from "../templateApi/hierarchy" +import { getNode } from "../templateApi/hierarchy" import { safeParseField } from "../types" import { $, diff --git a/packages/core/src/recordApi/recordInfo.js b/packages/core/src/recordApi/recordInfo.js index 3847aa7978..b308d78a95 100644 --- a/packages/core/src/recordApi/recordInfo.js +++ b/packages/core/src/recordApi/recordInfo.js @@ -5,7 +5,7 @@ import { isSingleRecord, getNodeForCollectionPath, } from "../templateApi/hierarchy" -import { reduce, find, filter, take } from "lodash/fp" +import { reduce, find, filter } from "lodash/fp" import { $, getFileFromKey, joinKey, safeKey, keySep } from "../common" import { folderStructureArray, allIdChars } from "../indexing/allIds" diff --git a/packages/core/src/recordApi/uploadFile.js b/packages/core/src/recordApi/uploadFile.js index 381da4e0c9..613eb35c94 100644 --- a/packages/core/src/recordApi/uploadFile.js +++ b/packages/core/src/recordApi/uploadFile.js @@ -73,9 +73,7 @@ const _uploadFile = async ( ) if (!isExpectedFileSize) { throw new BadRequestError( - `Fields for ${relativeFilePath} do not have expected size: ${join( - "," - )(incorrectFields)}` + `Fields for ${relativeFilePath} do not have expected size.` ) } }) diff --git a/packages/core/src/templateApi/deleteNodes.js b/packages/core/src/templateApi/deleteNodes.js index e485bce496..967a544d58 100644 --- a/packages/core/src/templateApi/deleteNodes.js +++ b/packages/core/src/templateApi/deleteNodes.js @@ -1,6 +1,6 @@ import {} from "../templateApi/heirarchy" -export const canDelete = (app, node) => { +export const canDelete = () => { /* it must not exist on any index.allowedRecordNodeIds it must not exist on and reference type fields diff --git a/packages/core/test/apiWrapper.spec.js b/packages/core/test/apiWrapper.spec.js index 720f4e175c..9b0a575871 100644 --- a/packages/core/test/apiWrapper.spec.js +++ b/packages/core/test/apiWrapper.spec.js @@ -1,6 +1,6 @@ import { apiWrapper, apiWrapperSync } from "../src/common/apiWrapper" import { filter } from "lodash/fp" -import { event, onComplete, onBegin, onError, events } from "../src/common" +import { events } from "../src/common" const getApp = () => { var events = [] @@ -26,7 +26,7 @@ describe("apiWrapper", () => { const getErrorEvents = app => app.getEvents(testNamespace.onError) const runThrowEx = (arg1, arg2) => { - const throwEx = (x, y) => { + const throwEx = () => { throw new Error("test error") } const app = getApp() @@ -47,7 +47,7 @@ describe("apiWrapper", () => { } const runThrowExAsync = async (arg1, arg2) => { - const throwEx = async (x, y) => { + const throwEx = async () => { throw new Error("test error") } const app = getApp() diff --git a/packages/core/test/authApi.authenticate.spec.js b/packages/core/test/authApi.authenticate.spec.js index ae5b87fc87..363c6d0e77 100644 --- a/packages/core/test/authApi.authenticate.spec.js +++ b/packages/core/test/authApi.authenticate.spec.js @@ -33,7 +33,7 @@ describe("authApi > authenticate", () => { }) it("should return null when non existing user", async () => { - const { authApi, app } = await setupApphierarchy( + const { authApi } = await setupApphierarchy( basicAppHierarchyCreator_WithFields ) const result = await authApi.authenticate("nobody", "password") diff --git a/packages/core/test/recordApi.files.spec.js b/packages/core/test/recordApi.files.spec.js index 5a1b0346d1..184ddc1baf 100644 --- a/packages/core/test/recordApi.files.spec.js +++ b/packages/core/test/recordApi.files.spec.js @@ -31,7 +31,7 @@ describe("recordApi > files", () => { const { recordApi } = await setupApphierarchy( basicAppHierarchyCreator_WithFields ) - const { file, stream, content } = getFile() + const { file, stream } = getFile() file.size = file.size - 1 const record = recordApi.getNew("/customers", "customer") record.surname = "Ledog" @@ -46,7 +46,7 @@ describe("recordApi > files", () => { const { recordApi } = await setupApphierarchy( basicAppHierarchyCreator_WithFields ) - const { file, stream, content } = getFile() + const { file, stream } = getFile() const record = recordApi.getNew("/customers", "customer") record.surname = "Ledog" record.profilepic = file @@ -80,7 +80,7 @@ describe("recordApi > files", () => { const { recordApi } = await setupApphierarchy( basicAppHierarchyCreator_WithFields ) - const { file, stream, content } = getFile() + const { file, stream } = getFile() const record = recordApi.getNew("/customers", "customer") record.surname = "Ledog" record.profilepic = file @@ -98,7 +98,7 @@ describe("recordApi > files", () => { const { recordApi } = await setupApphierarchy( basicAppHierarchyCreator_WithFields ) - const { file, stream, content } = getFile() + const { file, stream } = getFile() const record = recordApi.getNew("/customers", "customer") record.surname = "Ledog" record.profilepic = file diff --git a/packages/datastores/config.js b/packages/datastores/config.js index cf49b57b6e..c741c305b4 100644 --- a/packages/datastores/config.js +++ b/packages/datastores/config.js @@ -4,7 +4,6 @@ import { promisify } from "es6-promisify" import _rimraf from "rimraf" const mkdir = promisify(fs.mkdir) -const rmdir = promisify(fs.rmdir) const rimraf = promisify(_rimraf) const getConfig = async () => { diff --git a/packages/datastores/config.template.js b/packages/datastores/config.template.js index 1b81c75a78..0f0642402c 100644 --- a/packages/datastores/config.template.js +++ b/packages/datastores/config.template.js @@ -1,9 +1,8 @@ -import fs from "fs" import { mkdir } from "fs" import { join } from "path" import { promisify } from "es6-promisify" -mkdirp = promisify(mkdir) +const mkdirp = promisify(mkdir) const getConfig = async () => { const config = { @@ -13,15 +12,13 @@ const getConfig = async () => { memory: {}, } - try { - await mkdir("./output") - } catch (e) {} + await mkdirp("./output") for (let type in config) { - await mkdir(join("output", type)) + await mkdirp(join("output", type)) } - await mkdir("./output/local/files") + await mkdirp("./output/local/files") return config } diff --git a/packages/datastores/datastores/azure-blob.js b/packages/datastores/datastores/azure-blob.js index 1760d3a88b..7d2762c4bb 100644 --- a/packages/datastores/datastores/azure-blob.js +++ b/packages/datastores/datastores/azure-blob.js @@ -9,7 +9,7 @@ import { } from "@azure/storage-blob" export const createFile = ({ containerUrl }) => async (key, content) => { - const blobURL = BlobURL.fromContainerURL(containerURL, key) + const blobURL = BlobURL.fromContainerURL(containerUrl, key) const blockBlobURL = BlockBlobURL.fromBlobURL(blobURL) await blockBlobURL.upload(Aborter.none, content, content.length) } @@ -17,7 +17,7 @@ export const createFile = ({ containerUrl }) => async (key, content) => { export const updateFile = opts => async (path, content) => createFile(opts)(path, content) -export const loadFile = ({ containerUrl }) => async key => { +export const loadFile = ({ containerUrl }) => async (key, content) => { const blobURL = BlobURL.fromContainerURL(containerUrl, key) const downloadBlockBlobResponse = await blobURL.download(Aborter.none, 0) @@ -27,8 +27,8 @@ export const loadFile = ({ containerUrl }) => async key => { .toString() } -export const exists = ({ containerURL }) => async key => { - const blobURL = BlobURL.fromContainerURL(containerURL, key) +export const exists = ({ containerUrl }) => async key => { + const blobURL = BlobURL.fromContainerURL(containerUrl, key) const getPropsResponse = await blobURL.getProperties() return getPropsResponse._response.StatusCode === 200 } @@ -53,7 +53,7 @@ const initialise = opts => { const pipeline = StorageURL.newPipeline(sharedKeyCredential) const serviceURL = new ServiceURL( - `https://${account}.blob.core.windows.net`, + `https://${opts.account}.blob.core.windows.net`, pipeline ) @@ -77,6 +77,5 @@ export default opts => { datastoreType: "azure-blob-storage", datastoreDescription: "", - data, } } diff --git a/packages/datastores/index.js b/packages/datastores/index.js index 15336606b8..dc0e81d734 100644 --- a/packages/datastores/index.js +++ b/packages/datastores/index.js @@ -24,5 +24,5 @@ initialise() .then(init => { return tests(init.datastore, init.config) }) - .then(_ => console.log("done")) + .then(() => console.log("done")) .catch(e => console.log(e)) diff --git a/packages/datastores/tests/diagnosticPlugin.js b/packages/datastores/tests/diagnosticPlugin.js index c0685ab032..8d40116cf0 100644 --- a/packages/datastores/tests/diagnosticPlugin.js +++ b/packages/datastores/tests/diagnosticPlugin.js @@ -1,14 +1,8 @@ import { eventsList } from "@budibase/core" import { filter, union, has, map } from "lodash/fp" -import records from "./records" const allEventsOfType = type => filter(e => e.endsWith(`:${type}`))(eventsList) -const getEventNamespace = ev => { - const parts = ev.split(":") - return `${parts[0]}:${parts[1]}` -} - const hasRecord = has("record") export const register = (app, logTimeElapsed, eventNamespaces = []) => { diff --git a/packages/datastores/tests/index.js b/packages/datastores/tests/index.js index b4ef19a7f5..d46c8811d8 100644 --- a/packages/datastores/tests/index.js +++ b/packages/datastores/tests/index.js @@ -16,7 +16,6 @@ const iterateActions = async (apis, getIterator) => { limit(() => result.action.run(i)) ) - let n = 1 await Promise.all(runPromises) result = iterator() } catch (e) { diff --git a/packages/datastores/tests/records.js b/packages/datastores/tests/records.js index a5b60e3b05..db9595da8a 100644 --- a/packages/datastores/tests/records.js +++ b/packages/datastores/tests/records.js @@ -1,5 +1,5 @@ -import { action, iterateActionTimes, iterateCollection } from "./helpers" -import { isUndefined, union, takeRight } from "lodash" +import { action, iterateActionTimes } from "./helpers" +import { isUndefined, union } from "lodash" const createClient = (apis, getState) => async i => { const client = apis.recordApi.getNew("/clients", "client") @@ -20,16 +20,6 @@ const createClient = (apis, getState) => async i => { return client.key() } -const getClient = (apis, getState) => async k => { - const state = getState() - if (isUndefined(state.clients)) state.clients = [] - - const client = await apis.recordApi.load(k) - state.clients.push(client) - - return `key: ${k} , add1: ${client.Address1} , count: ${state.clients.length}` -} - const listClients = (apis, getState) => async () => { const clients = await apis.viewApi.listItems("/clients/default") const state = getState() @@ -43,12 +33,6 @@ const listClients = (apis, getState) => async () => { } } -const deleteClient = (apis, getState) => async k => { - await apis.recordApi.delete(k) - const state = getState() - state.clientKeys = state.clientKeys.filter(key => key !== k) -} - export default apis => { const state = {} const getState = () => state @@ -64,9 +48,6 @@ export default apis => { iterateActionTimes(recordsPerIteration) ), - /*action("Get client", getClient(apis, getState), - iterateCollection(() => takeRight(getState().clientKeys, recordsPerIteration))),*/ - action("List Clients", listClients(apis, getState)), ] @@ -75,14 +56,6 @@ export default apis => { actions = union(actions, actionsInOneIteration()) } - /* - for (let index = 0; index < noOfIterations; index++) { - actions.push( - action("Delete Clients", deleteClient(apis, getState), - iterateCollection(() => takeRight(getState().clientKeys, recordsPerIteration))), - action("List Clients", listClients(apis, getState)) - ); - }*/ let actionIndex = 0 return () => { diff --git a/packages/datastores/tests/setup.js b/packages/datastores/tests/setup.js index d8f4f6240b..f88cd330d5 100644 --- a/packages/datastores/tests/setup.js +++ b/packages/datastores/tests/setup.js @@ -1,5 +1,4 @@ import { getAppApis, getTemplateApi, setupDatastore } from "@budibase/core" -import { action } from "./helpers" const addField = templateApi => type => (record, name) => { const field = templateApi.getNewField(type) diff --git a/packages/materialdesign-components/rollup.config.js b/packages/materialdesign-components/rollup.config.js index 1005680972..ce1db3f707 100644 --- a/packages/materialdesign-components/rollup.config.js +++ b/packages/materialdesign-components/rollup.config.js @@ -1,7 +1,6 @@ import svelte from "rollup-plugin-svelte" import postcss from "rollup-plugin-postcss" import resolve from "rollup-plugin-node-resolve" -import path from "path" const postcssOptions = () => ({ extensions: [".scss", ".sass"], diff --git a/packages/materialdesign-components/rollup.testconfig.js b/packages/materialdesign-components/rollup.testconfig.js index c2b173a8b4..8358d3ac7a 100644 --- a/packages/materialdesign-components/rollup.testconfig.js +++ b/packages/materialdesign-components/rollup.testconfig.js @@ -5,7 +5,7 @@ import livereload from "rollup-plugin-livereload" import { terser } from "rollup-plugin-terser" import json from "rollup-plugin-json" import alias from "rollup-plugin-alias" -import postcss from "rollup-plugin-postcss"; +import postcss from "rollup-plugin-postcss" import path from "path" const aliases = { diff --git a/packages/materialdesign-components/src/Checkbox/CheckboxGroup.svelte b/packages/materialdesign-components/src/Checkbox/CheckboxGroup.svelte index 79d0b23ed8..b2c1460402 100644 --- a/packages/materialdesign-components/src/Checkbox/CheckboxGroup.svelte +++ b/packages/materialdesign-components/src/Checkbox/CheckboxGroup.svelte @@ -1,28 +1,48 @@ +
+
+
+
+ {#each items as item, i} +
+ handleonChange(item)} /> +
+ {/each} +
+
+ - -
-
-
-
- {#each items as item, i} -
- handleonChange(item)} /> -
- {/each} -
-
diff --git a/packages/materialdesign-components/src/Checkbox/index.js b/packages/materialdesign-components/src/Checkbox/index.js index b97bcc912f..f03873ba09 100644 --- a/packages/materialdesign-components/src/Checkbox/index.js +++ b/packages/materialdesign-components/src/Checkbox/index.js @@ -1,4 +1,3 @@ -import "./_style.scss"; -export { default as Checkbox } from "./Checkbox.svelte"; -export { default as Checkboxgroup } from "./CheckboxGroup.svelte"; - +import "./_style.scss" +export { default as Checkbox } from "./Checkbox.svelte" +export { default as Checkboxgroup } from "./CheckboxGroup.svelte" diff --git a/packages/materialdesign-components/src/ClassBuilder.js b/packages/materialdesign-components/src/ClassBuilder.js index cebed61f4f..a3aaef49a9 100644 --- a/packages/materialdesign-components/src/ClassBuilder.js +++ b/packages/materialdesign-components/src/ClassBuilder.js @@ -1,7 +1,7 @@ export default class ClassBuilder { constructor(block, defaultIgnoreList) { - this.block = `mdc-${block}`; - this.defaultIgnoreList = defaultIgnoreList; //will be ignored when building custom classes + this.block = `mdc-${block}` + this.defaultIgnoreList = defaultIgnoreList //will be ignored when building custom classes } /* @@ -10,32 +10,32 @@ export default class ClassBuilder { All are optional */ build(params) { - if (!params) return this.block; //return block if nothing passed - const { props, elementName } = params; - let base = !!elementName ? `${this.block}__${elementName}` : this.block; - if (!props) return base; - return this._handleProps(base, props); + if (!params) return this.block //return block if nothing passed + const { props, elementName } = params + let base = elementName ? `${this.block}__${elementName}` : this.block + if (!props) return base + return this._handleProps(base, props) } //Easily grab a simple element class elem(elementName) { - return this.build({ elementName }); + return this.build({ elementName }) } //use if a different base is needed than whats defined by this.block debase(base, elementProps) { - if (!elementProps) return base; - return this._handleProps(base, elementProps); + if (!elementProps) return base + return this._handleProps(base, elementProps) } //proxies bindProps and checks for which elementProps exist before binding _handleProps(base, elementProps) { - let cls = base; - const { modifiers, customs, extras } = elementProps; - if (!!modifiers) cls += this._bindProps(modifiers, base); - if (!!customs) cls += this._bindProps(customs, base, true); - if (!!extras) cls += ` ${extras.join(" ")}`; - return cls.trim(); + let cls = base + const { modifiers, customs, extras } = elementProps + if (modifiers) cls += this._bindProps(modifiers, base) + if (customs) cls += this._bindProps(customs, base, true) + if (extras) cls += ` ${extras.join(" ")}` + return cls.trim() } /* @@ -53,22 +53,22 @@ export default class ClassBuilder { !!value && (!this.defaultIgnoreList || !this.defaultIgnoreList.includes(value)) ) { - let classBase = isCustom ? `bbmd-${base}` : `${base}`; - let valueType = typeof value; + let classBase = isCustom ? `bbmd-${base}` : `${base}` + let valueType = typeof value if (valueType == "string" || valueType == "number") { return isCustom ? ` ${classBase}--${this._convertCamel(property)}-${value}` - : ` ${classBase}--${value}`; + : ` ${classBase}--${value}` } else if (valueType == "boolean") { - return ` ${classBase}--${this._convertCamel(property)}`; + return ` ${classBase}--${this._convertCamel(property)}` } } }) - .join(""); + .join("") } _convertCamel(str) { - return str.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`); + return str.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`) } } diff --git a/packages/materialdesign-components/src/Common/Formfield.svelte b/packages/materialdesign-components/src/Common/Formfield.svelte index ec71ff2380..3559f721df 100644 --- a/packages/materialdesign-components/src/Common/Formfield.svelte +++ b/packages/materialdesign-components/src/Common/Formfield.svelte @@ -1,32 +1,32 @@
diff --git a/packages/materialdesign-components/src/Common/FormfieldStore.js b/packages/materialdesign-components/src/Common/FormfieldStore.js index 082b120ff5..658f61b6b6 100644 --- a/packages/materialdesign-components/src/Common/FormfieldStore.js +++ b/packages/materialdesign-components/src/Common/FormfieldStore.js @@ -1,19 +1,19 @@ -import { writable } from "svelte/store"; +import { writable } from "svelte/store" function store() { - const { set, update, subscribe } = writable({}); + const { set, update, subscribe } = writable({}) function setInput(inp) { update(n => { - n.input = inp; - }); + n.input = inp + }) } return { subscribe, set, - setInput - }; + setInput, + } } -export const fieldStore = store(); +export const fieldStore = store() diff --git a/packages/materialdesign-components/src/Common/Icon.svelte b/packages/materialdesign-components/src/Common/Icon.svelte index a8d7054c4f..e2c309f73e 100644 --- a/packages/materialdesign-components/src/Common/Icon.svelte +++ b/packages/materialdesign-components/src/Common/Icon.svelte @@ -1,12 +1,12 @@ {icon} diff --git a/packages/materialdesign-components/src/Common/Label.svelte b/packages/materialdesign-components/src/Common/Label.svelte index 4767bdc8c4..e6ad51e3b7 100644 --- a/packages/materialdesign-components/src/Common/Label.svelte +++ b/packages/materialdesign-components/src/Common/Label.svelte @@ -1,12 +1,12 @@ +{text} + - -{text} diff --git a/packages/materialdesign-components/src/Datatable/Datatable.svelte b/packages/materialdesign-components/src/Datatable/Datatable.svelte index 07d455adab..61239a97cf 100644 --- a/packages/materialdesign-components/src/Datatable/Datatable.svelte +++ b/packages/materialdesign-components/src/Datatable/Datatable.svelte @@ -17,12 +17,10 @@ let tableElement let initialied = false - - $: { - if(tableElement && datatable && !initialied) { + if (tableElement && datatable && !initialied) { const children = _bb.attachChildren(tableElement) - if(children.length > 0) { + if (children.length > 0) { instance = new MDCDataTable(datatable) initialied = true } @@ -34,7 +32,7 @@ return () => { try { !!instance && instance.destroy() - } catch(e) { + } catch (e) { console.log(e) } instance = null @@ -43,7 +41,8 @@
- - -
+ diff --git a/packages/materialdesign-components/src/Datatable/DatatableBody.svelte b/packages/materialdesign-components/src/Datatable/DatatableBody.svelte index 6e6e2d2c54..a98d277e61 100644 --- a/packages/materialdesign-components/src/Datatable/DatatableBody.svelte +++ b/packages/materialdesign-components/src/Datatable/DatatableBody.svelte @@ -1,14 +1,13 @@ - \ No newline at end of file + diff --git a/packages/materialdesign-components/src/Datatable/DatatableCell.svelte b/packages/materialdesign-components/src/Datatable/DatatableCell.svelte index 9b14cacb4c..2ced576a65 100644 --- a/packages/materialdesign-components/src/Datatable/DatatableCell.svelte +++ b/packages/materialdesign-components/src/Datatable/DatatableCell.svelte @@ -5,7 +5,7 @@ export let numeric = false export let _bb - const cb = _bb.getContext("BBMD:data-table:cb") + const cb = _bb.getContext("BBMD:data-table:cb") let elementName = isHeader ? "header-cell" : "cell" let modifiers = { numeric } @@ -14,7 +14,6 @@ let element $: element && _bb.attachChildren(element) - {#if isHeader} diff --git a/packages/materialdesign-components/src/Datatable/DatatableHead.svelte b/packages/materialdesign-components/src/Datatable/DatatableHead.svelte index 3f9950920d..1c05921c2e 100644 --- a/packages/materialdesign-components/src/Datatable/DatatableHead.svelte +++ b/packages/materialdesign-components/src/Datatable/DatatableHead.svelte @@ -1,13 +1,11 @@ - \ No newline at end of file + diff --git a/packages/materialdesign-components/src/Datatable/DatatableRow.svelte b/packages/materialdesign-components/src/Datatable/DatatableRow.svelte index 9325e6bc43..f0f424b857 100644 --- a/packages/materialdesign-components/src/Datatable/DatatableRow.svelte +++ b/packages/materialdesign-components/src/Datatable/DatatableRow.svelte @@ -1,27 +1,27 @@ diff --git a/packages/materialdesign-components/src/Menu/Menu.svelte b/packages/materialdesign-components/src/Menu/Menu.svelte index 0b8b4c627e..89c2404f4c 100644 --- a/packages/materialdesign-components/src/Menu/Menu.svelte +++ b/packages/materialdesign-components/src/Menu/Menu.svelte @@ -1,32 +1,32 @@ {#if useFixedPosition || useAbsolutePosition} diff --git a/packages/materialdesign-components/src/Menu/index.js b/packages/materialdesign-components/src/Menu/index.js index 662027b75e..88c83c8f8d 100644 --- a/packages/materialdesign-components/src/Menu/index.js +++ b/packages/materialdesign-components/src/Menu/index.js @@ -1,2 +1,2 @@ -import "./_styles.scss"; -export { default as Menu } from "./Menu.svelte"; +import "./_styles.scss" +export { default as Menu } from "./Menu.svelte" diff --git a/packages/materialdesign-components/src/Radiobutton/index.js b/packages/materialdesign-components/src/Radiobutton/index.js index 9f4514c22e..3832c412df 100644 --- a/packages/materialdesign-components/src/Radiobutton/index.js +++ b/packages/materialdesign-components/src/Radiobutton/index.js @@ -1,3 +1,3 @@ -import "./_style.scss"; -export { default as Radiobutton } from "./Radiobutton.svelte"; -export { default as Radiobuttongroup } from "./RadiobuttonGroup.svelte"; +import "./_style.scss" +export { default as Radiobutton } from "./Radiobutton.svelte" +export { default as Radiobuttongroup } from "./RadiobuttonGroup.svelte" diff --git a/packages/materialdesign-components/src/Test/createApp.js b/packages/materialdesign-components/src/Test/createApp.js index 8cea5c1268..96106635b7 100644 --- a/packages/materialdesign-components/src/Test/createApp.js +++ b/packages/materialdesign-components/src/Test/createApp.js @@ -4,7 +4,7 @@ import packageJson from "../../package.json" import { rootComponent } from "./rootComponent" import * as standardcomponents from "@budibase/standard-components/src/index" -export default async props => { +export default async () => { delete components._lib const componentLibraries = {} componentLibraries[packageJson.name] = components diff --git a/packages/materialdesign-components/src/Textfield/Textfield.svelte b/packages/materialdesign-components/src/Textfield/Textfield.svelte index bd6cf9a0c2..a5d5517df0 100644 --- a/packages/materialdesign-components/src/Textfield/Textfield.svelte +++ b/packages/materialdesign-components/src/Textfield/Textfield.svelte @@ -68,7 +68,7 @@ } let useLabel = !!label && (!fullwidth || (fullwidth && textarea)) - let useIcon = !!icon && (!textarea && !fullwidth) + let useIcon = !!icon && !textarea && !fullwidth if (useIcon) { setContext("BBMD:icon:context", "text-field") @@ -120,7 +120,7 @@ TODO:Needs error handling - this will depend on how Budibase handles errors {placeholder} {minLength} maxLength={safeMaxLength} - value={value} + {value} on:change={changed} /> {:else} {#if renderLeadingIcon} @@ -135,7 +135,7 @@ TODO:Needs error handling - this will depend on how Budibase handles errors placeholder={!!label && fullwidth ? label : placeholder} {minLength} maxLength={safeMaxLength} - value={value} + {value} aria-label={`Textfield ${variant}`} on:focus={focus} on:input={changed} /> diff --git a/packages/materialdesign-components/src/Textfield/index.js b/packages/materialdesign-components/src/Textfield/index.js index 43e9d46af0..825bfe3cbd 100644 --- a/packages/materialdesign-components/src/Textfield/index.js +++ b/packages/materialdesign-components/src/Textfield/index.js @@ -1,2 +1,2 @@ import "./_index.scss" -export { default as Textfield } from "./Textfield.svelte" \ No newline at end of file +export { default as Textfield } from "./Textfield.svelte" diff --git a/packages/materialdesign-components/src/Typography/index.js b/packages/materialdesign-components/src/Typography/index.js index 374022db69..7dc49559e3 100644 --- a/packages/materialdesign-components/src/Typography/index.js +++ b/packages/materialdesign-components/src/Typography/index.js @@ -1,13 +1,13 @@ -import "./_style.scss"; -export { default as Body1 } from "./Body1.svelte"; -export { default as Body2 } from "./Body2.svelte"; -export { default as Caption } from "./Caption.svelte"; -export { default as H1 } from "./H1.svelte"; -export { default as H2 } from "./H2.svelte"; -export { default as H3 } from "./H3.svelte"; -export { default as H4 } from "./H4.svelte"; -export { default as H5 } from "./H5.svelte"; -export { default as H6 } from "./H6.svelte"; -export { default as Overline } from "./Overline.svelte"; -export { default as Sub1 } from "./Sub1.svelte"; -export { default as Sub2 } from "./Sub2.svelte"; +import "./_style.scss" +export { default as Body1 } from "./Body1.svelte" +export { default as Body2 } from "./Body2.svelte" +export { default as Caption } from "./Caption.svelte" +export { default as H1 } from "./H1.svelte" +export { default as H2 } from "./H2.svelte" +export { default as H3 } from "./H3.svelte" +export { default as H4 } from "./H4.svelte" +export { default as H5 } from "./H5.svelte" +export { default as H6 } from "./H6.svelte" +export { default as Overline } from "./Overline.svelte" +export { default as Sub1 } from "./Sub1.svelte" +export { default as Sub2 } from "./Sub2.svelte" diff --git a/packages/server/appPackages/testApp/plugins.js b/packages/server/appPackages/testApp/plugins.js index 611ed43fd8..a3ae420a46 100644 --- a/packages/server/appPackages/testApp/plugins.js +++ b/packages/server/appPackages/testApp/plugins.js @@ -1,6 +1,6 @@ const fs = require("fs") -module.exports = config => ({ +module.exports = () => ({ main: { outputToFile: async ({ filename, content }) => { await new Promise((resolve, reject) => { diff --git a/packages/server/appPackages/testApp2/plugins.js b/packages/server/appPackages/testApp2/plugins.js index e28e02b54d..44368bf6ec 100644 --- a/packages/server/appPackages/testApp2/plugins.js +++ b/packages/server/appPackages/testApp2/plugins.js @@ -1 +1 @@ -module.exports = config => ({}) +module.exports = () => ({}) diff --git a/packages/server/initialise/createInstanceDb.js b/packages/server/initialise/createInstanceDb.js index 78b389a0ee..68143776fd 100644 --- a/packages/server/initialise/createInstanceDb.js +++ b/packages/server/initialise/createInstanceDb.js @@ -4,38 +4,34 @@ const { applictionVersionPackage } = require("../utilities/createAppPackage") const { determineVersionId } = require("../utilities/runtimePackages") module.exports = async (context, datastoreModule, app, instance) => { - try { - const databaseManager = getDatabaseManager( - datastoreModule, - context.config.datastoreConfig - ) + const databaseManager = getDatabaseManager( + datastoreModule, + context.config.datastoreConfig + ) - await databaseManager.createEmptyInstanceDb(app.id, instance.id) + await databaseManager.createEmptyInstanceDb(app.id, instance.id) - const dbConfig = databaseManager.getInstanceDatastoreConfig( - app.id, - instance.id - ) + const dbConfig = databaseManager.getInstanceDatastoreConfig( + app.id, + instance.id + ) - const datastore = setupDatastore(datastoreModule.getDatastore(dbConfig)) + const datastore = setupDatastore(datastoreModule.getDatastore(dbConfig)) - const versionId = determineVersionId(instance.version) + const versionId = determineVersionId(instance.version) - const appPackage = await applictionVersionPackage( - context, - app.name, - versionId, - instance.key - ) + const appPackage = await applictionVersionPackage( + context, + app.name, + versionId, + instance.key + ) - await initialiseData( - datastore, - appPackage.appDefinition, - appPackage.accessLevels - ) + await initialiseData( + datastore, + appPackage.appDefinition, + appPackage.accessLevels + ) - return dbConfig - } catch (e) { - throw e - } + return dbConfig } diff --git a/packages/server/initialise/createMasterDb.js b/packages/server/initialise/createMasterDb.js index 64b95e9cc6..2aa9de5eb7 100644 --- a/packages/server/initialise/createMasterDb.js +++ b/packages/server/initialise/createMasterDb.js @@ -10,31 +10,25 @@ const masterDbAccessLevels = require("../appPackages/_master/access_levels.json" const { masterAppPackage } = require("../utilities/createAppPackage") module.exports = async (context, datastoreModule, username, password) => { - try { - const { config } = context - const databaseManager = getDatabaseManager( - datastoreModule, - config.datastoreConfig - ) + const { config } = context + const databaseManager = getDatabaseManager( + datastoreModule, + config.datastoreConfig + ) - await databaseManager.createEmptyMasterDb() - const masterDbConfig = databaseManager.masterDatastoreConfig - const datastore = setupDatastore( - datastoreModule.getDatastore(masterDbConfig) - ) + await databaseManager.createEmptyMasterDb() + const masterDbConfig = databaseManager.masterDatastoreConfig + const datastore = setupDatastore(datastoreModule.getDatastore(masterDbConfig)) - await initialiseData(datastore, constructHierarchy(masterDbAppDefinition)) + await initialiseData(datastore, constructHierarchy(masterDbAppDefinition)) - const masterPackage = masterAppPackage(context) - const bbMaster = await getApisWithFullAccess(datastore, masterPackage) - await bbMaster.authApi.saveAccessLevels(masterDbAccessLevels) - const user = bbMaster.authApi.getNewUser() - user.name = username - user.accessLevels = ["owner"] - await bbMaster.authApi.createUser(user, password) + const masterPackage = masterAppPackage(context) + const bbMaster = await getApisWithFullAccess(datastore, masterPackage) + await bbMaster.authApi.saveAccessLevels(masterDbAccessLevels) + const user = bbMaster.authApi.getNewUser() + user.name = username + user.accessLevels = ["owner"] + await bbMaster.authApi.createUser(user, password) - return await getApisForUser(datastore, masterPackage, username, password) - } catch (e) { - throw e - } + return await getApisForUser(datastore, masterPackage, username, password) } diff --git a/packages/server/initialise/initialiseRuntimePackages.js b/packages/server/initialise/initialiseRuntimePackages.js index 2307b2338f..089f6037a6 100644 --- a/packages/server/initialise/initialiseRuntimePackages.js +++ b/packages/server/initialise/initialiseRuntimePackages.js @@ -13,7 +13,9 @@ const copyfolder = (source, destination) => }) }) -module.exports = async (context, bbMaster, latestAppsFolder) => { +exports.copyfolder = copyfolder + +module.exports = async context => { // create runtime folder // copy master into /master/latest if (await pathExists(runtimePackagesDirectory)) { @@ -26,16 +28,6 @@ module.exports = async (context, bbMaster, latestAppsFolder) => { await mkdir(runtimePackagesDirectory) - /* - const allApps = await bbMaster - .indexApi - .listItems("/all_applications"); - - for(let app of allApps) { - app. - } - */ - const apps = { _master: masterAppPackage(context), } diff --git a/packages/server/middleware/routers.js b/packages/server/middleware/routers.js index 299f10d655..b7cd5c53a2 100644 --- a/packages/server/middleware/routers.js +++ b/packages/server/middleware/routers.js @@ -141,7 +141,11 @@ module.exports = (config, app) => { }) .get("/_builder/api/:appname/components", async ctx => { try { - ctx.body = getComponentDefinitions(config, ctx.params.appname, ctx.query.lib) + ctx.body = getComponentDefinitions( + config, + ctx.params.appname, + ctx.query.lib + ) ctx.response.status = StatusCodes.OK } catch (e) { if (e.status) { diff --git a/packages/server/middleware/session.js b/packages/server/middleware/session.js index 8a2d61497b..f16077cd9b 100644 --- a/packages/server/middleware/session.js +++ b/packages/server/middleware/session.js @@ -14,9 +14,9 @@ module.exports = (config, app) => { rolling: false /** (boolean) Force a session identifier cookie to be set on every response. The expiration is reset to the original maxAge, resetting the expiration countdown. (default is false) */, renew: false /** (boolean) renew session when session is nearly expired, so we can always keep user logged in. (default is false)*/, store: { - get: async (key, maxAge, { rolling }) => ({ key }), - set: async (key, sess, maxAge, { rolling, changed }) => ({ key }), - destroy: async key => ({}), + get: async key => ({ key }), + set: async key => ({ key }), + destroy: async () => ({}), }, } diff --git a/packages/server/tests/createNewApp.js b/packages/server/tests/createNewApp.js index 7bed8b46cb..539e8f4326 100644 --- a/packages/server/tests/createNewApp.js +++ b/packages/server/tests/createNewApp.js @@ -1,14 +1,9 @@ const statusCodes = require("../utilities/statusCodes") const constructHierarchy = require("../utilities/constructHierarchy") const { readFile } = require("fs-extra") -const { hierarchy } = require("@budibase/core") -const { take } = require("lodash/fp") -const masterAppDefinition = constructHierarchy( - require("../appPackages/_master/appDefinition.json") -) +constructHierarchy(require("../appPackages/_master/appDefinition.json")) const { getApisWithFullAccess } = require("../utilities/budibaseApi") const { createTarGzPackage } = require("../utilities/targzAppPackage") -const { timeout } = require("./helpers") module.exports = app => { let _master diff --git a/packages/server/tests/helpers.js b/packages/server/tests/helpers.js index 218c16f314..f2f5367df9 100644 --- a/packages/server/tests/helpers.js +++ b/packages/server/tests/helpers.js @@ -1,6 +1,8 @@ -module.exports.timeout = ms => new Promise(resolve => setTimeout(resolve, ms)) +const timeout = ms => new Promise(resolve => setTimeout(resolve, ms)) -module.exports.sleep = async (ms, fn) => { +exports.timeout = timeout + +module.exports.sleep = async (ms, fn, ...args) => { await timeout(ms) return await fn(...args) } diff --git a/packages/server/tests/multipleInstances.js b/packages/server/tests/multipleInstances.js index b1bd47576e..6684a1e85b 100644 --- a/packages/server/tests/multipleInstances.js +++ b/packages/server/tests/multipleInstances.js @@ -1,13 +1,8 @@ const statusCodes = require("../utilities/statusCodes") const constructHierarchy = require("../utilities/constructHierarchy") const { readFile } = require("fs-extra") -const { getRecordApi, getAuthApi } = require("@budibase/core") -const masterAppDefinition = constructHierarchy( - require("../appPackages/_master/appDefinition.json") -) +constructHierarchy(require("../appPackages/_master/appDefinition.json")) const { getApisWithFullAccess } = require("../utilities/budibaseApi") -const { createTarGzPackage } = require("../utilities/targzAppPackage") -const { timeout } = require("./helpers") module.exports = app => { let _master diff --git a/packages/server/tests/testApp.js b/packages/server/tests/testApp.js index b17c9111c9..527959cd9d 100644 --- a/packages/server/tests/testApp.js +++ b/packages/server/tests/testApp.js @@ -141,9 +141,7 @@ const getRequest = (server, url) => .set("Accept", "application/json") const reInitialize = async () => { - try { - await remove(config.datastoreConfig.rootPath) - } catch (_) {} + await remove(config.datastoreConfig.rootPath) await mkdir(config.datastoreConfig.rootPath) diff --git a/packages/server/utilities/builder/componentLibraryInfo.js b/packages/server/utilities/builder/componentLibraryInfo.js index c18ec30c17..1b32568b22 100644 --- a/packages/server/utilities/builder/componentLibraryInfo.js +++ b/packages/server/utilities/builder/componentLibraryInfo.js @@ -4,7 +4,7 @@ const { resolve, join, dirname } = require("path") /** * @param {string} appPath - budibase application name * @param {string} libname - component library name - * @returns {string} directory name of component definitions for a specific budibase application. + * @returns {string} directory name of component definitions for a specific budibase application. */ const getLibDir = (appPath, libname) => { try { @@ -25,7 +25,7 @@ module.exports.componentsFilepath = (appPath, libname) => /** * @param {string} appPath - the path to a budibase application * @param {string} libname - the name of the component libary to use for namespacing - * @returns {object} tree of components namespaced by their component library name. + * @returns {object} tree of components namespaced by their component library name. */ module.exports.componentLibraryInfo = async (appPath, libname) => { const libDir = getLibDir(appPath, libname) diff --git a/packages/server/utilities/builder/index.js b/packages/server/utilities/builder/index.js index b6c40a4bc8..24215083bd 100644 --- a/packages/server/utilities/builder/index.js +++ b/packages/server/utilities/builder/index.js @@ -112,14 +112,18 @@ module.exports.savePage = async (config, appname, pagename, page) => { await buildPage(config, appname, appDefinition, pagename, page) } -module.exports.componentLibraryInfo = async (config, appname, componentLibrary) => { +module.exports.componentLibraryInfo = async ( + config, + appname, + componentLibrary +) => { const appPath = appPackageFolder(config, appname) return await componentLibraryInfo(appPath, componentLibrary) } /** * @param {string} appPath - path to a budibase application - * @param {Array} pages - a list of budibase application pages + * @param {Array} pages - a list of budibase application pages * @param {string} componentLibrary - component library to fetch components for * @returns {object} - an object containing component definitions namespaced by their component library */ diff --git a/packages/server/utilities/builder/listScreens.js b/packages/server/utilities/builder/listScreens.js index a2e86bc6f8..9d881ba4ae 100644 --- a/packages/server/utilities/builder/listScreens.js +++ b/packages/server/utilities/builder/listScreens.js @@ -45,4 +45,4 @@ const fetchscreens = async (appPath, pagename, relativePath = "") => { } return screens -} \ No newline at end of file +} diff --git a/packages/server/utilities/createInstanceDb.js b/packages/server/utilities/createInstanceDb.js deleted file mode 100644 index 99828ac29e..0000000000 --- a/packages/server/utilities/createInstanceDb.js +++ /dev/null @@ -1,32 +0,0 @@ -const { common, getAppApis } = require("@budibase/core") -const { getDatabaseManager } = require("./databaseManager") - -module.exports = async (productSetId, productId, versionId) => { - const databaseManager = getDatabaseManager(datastoreModule) - const masterDatastore = datastoreModule.getDatastore( - databaseManager.masterDatastoreConfig - ) - - const master = await getAppApis(masterDatastore) - - const productSet = await master.recordApi.load( - common.joinKey("ProductSets", productSetId) - ) - - const prodcutSetDatastore = datastoreModule.getDatastore( - productSet.datastoreConfig - ) - - const productSetApis = await getAppApis(prodcutSetDatastore) - const product = await productSetApis.recordApi.load( - common.joinKey("Products", productId) - ) - - const version = await productSetApis.recordApi.load( - common.joinKey("Products", productId, "Versions", versionId) - ) - - const instance = await productSetApis.recordApi.getNew( - common.joinKey(product.key, "Versions") - ) -} diff --git a/packages/server/utilities/injectedPlugins/createUser.js b/packages/server/utilities/injectedPlugins/createUser.js index c63ec20411..380ea53296 100644 --- a/packages/server/utilities/injectedPlugins/createUser.js +++ b/packages/server/utilities/injectedPlugins/createUser.js @@ -16,4 +16,4 @@ module.exports = ({ masterAppInternal, instanceKey, app }) => async ({ await bbMaster.recordApi.save(masterUser) } -const timeout = ms => new Promise(resolve => setTimeout(resolve, ms)) +exports.timeout = ms => new Promise(resolve => setTimeout(resolve, ms)) diff --git a/packages/server/utilities/masterAppInternal.js b/packages/server/utilities/masterAppInternal.js index 3e291718e8..8da8da609f 100644 --- a/packages/server/utilities/masterAppInternal.js +++ b/packages/server/utilities/masterAppInternal.js @@ -5,7 +5,7 @@ const { } = require("./budibaseApi") const getDatastore = require("./datastore") const getDatabaseManager = require("./databaseManager") -const { $, splitKey } = require("@budibase/core").common +const { $ } = require("@budibase/core").common const { keyBy, values } = require("lodash/fp") const { masterAppPackage, @@ -108,13 +108,7 @@ module.exports = async context => { await bbInstance.authApi.createUser(user, password) } - const authenticate = async ( - sessionId, - appname, - username, - password, - instanceName = "default" - ) => { + const authenticate = async (sessionId, appname, username, password) => { if (isMaster(appname)) { const authUser = await bb.authApi.authenticate(username, password) if (!authUser) { diff --git a/packages/server/utilities/targzAppPackage.js b/packages/server/utilities/targzAppPackage.js index 69a1c3727c..4db8eff4db 100644 --- a/packages/server/utilities/targzAppPackage.js +++ b/packages/server/utilities/targzAppPackage.js @@ -5,7 +5,7 @@ const fs = require("fs") const tar = require("tar-fs") const zlib = require("zlib") const { join, dirname, sep } = require("path") -const { exists, mkdir, unlink, stat } = require("fs-extra") +const { exists, mkdir, unlink, remove, stat } = require("fs-extra") const { getRuntimePackageDirectory, getRuntimeAppsDirectory, @@ -58,7 +58,7 @@ module.exports.unzipTarGzPackageToRuntime = async ( const compress = (src, dest) => new Promise((resolve, reject) => { // ensure opts - opts = { src, dest } + let opts = { src, dest } opts.tar = { ignore: name => dirname(name) @@ -96,7 +96,7 @@ const compress = (src, dest) => const decompress = (src, dest) => new Promise((resolve, reject) => { // ensure opts - opts = { src, dest } + let opts = { src, dest } opts.tar = opts.tar || {} opts.gz = opts.gz || {} diff --git a/packages/standard-components/dist/generators.js b/packages/standard-components/dist/generators.js index e193155ad0..5d3a51fe7d 100644 --- a/packages/standard-components/dist/generators.js +++ b/packages/standard-components/dist/generators.js @@ -31,12 +31,9 @@ const headers = () => [ font: "10pt bold", }, }, -]; +] -const forms = ({ records, indexes }) => [ - ...headers(), - ...records.map(root), -]; +const forms = ({ records, indexes }) => [...headers(), ...records.map(root)] const root = record => ({ name: `${record.name} Form`, @@ -55,7 +52,7 @@ const root = record => ({ saveCancelButtons(record), ], }, -}); +}) const form = record => ({ control: { @@ -71,7 +68,7 @@ const form = record => ({ }, })), }, -}); +}) const saveCancelButtons = record => ({ control: { @@ -104,7 +101,7 @@ const saveCancelButtons = record => ({ }), ], }, -}); +}) const paddedPanelForButton = button => ({ control: { @@ -112,12 +109,12 @@ const paddedPanelForButton = button => ({ padding: "20px", component: button, }, -}); +}) const indexTables = ({ indexes, helpers }) => indexes .filter(i => i.parent().type === "root") - .map(i => indexTable(i, helpers)); + .map(i => indexTable(i, helpers)) const indexTableProps = (index, helpers) => ({ data: { @@ -125,13 +122,13 @@ const indexTableProps = (index, helpers) => ({ "##bbsource": "store", }, columns: helpers.indexSchema(index).map(column), -}); +}) const indexTable = (index, helpers) => ({ name: `tables/${index.name} Table`, inherits: "@budibase/standard-components/table", props: indexTableProps(index, helpers), -}); +}) const column = col => ({ title: col.name, @@ -139,7 +136,7 @@ const column = col => ({ "##bbstate": col.name, "##bbsource": "context", }, -}); +}) const nav = ({ records, indexes, helpers }) => [ { @@ -155,18 +152,18 @@ const nav = ({ records, indexes, helpers }) => [ }, }, ...indexTables({ records, indexes, helpers }), -]; +] const navItem = index => ({ title: index.name, component: { _component: `tables/${index.name} Table`, }, -}); +}) const app = params => { return [...nav(params), ...forms(params)] -}; +} const buttons = () => [ { @@ -195,7 +192,7 @@ const buttons = () => [ hoverBackground: "#cccccc", }, }, -]; +] -export { app, buttons, forms, headers, indexTables, nav }; +export { app, buttons, forms, headers, indexTables, nav } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRvcnMvaGVhZGVyc0dlbmVyYXRvci5qcyIsIi4uL3NyYy9nZW5lcmF0b3JzL2Zvcm1zR2VuZXJhdG9yLmpzIiwiLi4vc3JjL2dlbmVyYXRvcnMvaW5kZXhUYWJsZXNHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9uYXZHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9hcHBHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9idXR0b25zR2VuZXJhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBoZWFkZXJzID0gKCkgPT4gW1xuICB7XG4gICAgbmFtZTogXCJjb21tb24vSDFcIixcbiAgICBkZXNjcmlwdGlvbjogXCJIZWFkZXIgMVwiLFxuICAgIGluaGVyaXRzOiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RleHRcIixcbiAgICBwcm9wczoge1xuICAgICAgZm9udDogXCIyMHB0XCIsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiY29tbW9uL0gyXCIsXG4gICAgZGVzY3JpcHRpb246IFwiSGVhZGVyIDJcIixcbiAgICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy90ZXh0XCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIGZvbnQ6IFwiMTVwdFwiLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImNvbW1vbi9IM1wiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkhlYWRlciAzXCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxuICAgIHByb3BzOiB7XG4gICAgICBmb250OiBcIjEycHQgYm9sZFwiLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImNvbW1vbi9INFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkhlYWRlciA0XCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxuICAgIHByb3BzOiB7XG4gICAgICBmb250OiBcIjEwcHQgYm9sZFwiLFxuICAgIH0sXG4gIH0sXG5dXG4iLCJpbXBvcnQgeyBoZWFkZXJzIH0gZnJvbSBcIi4vaGVhZGVyc0dlbmVyYXRvclwiXG5cbmV4cG9ydCBjb25zdCBmb3JtcyA9ICh7IHJlY29yZHMsIGluZGV4ZXMgfSkgPT4gW1xuICAuLi5oZWFkZXJzKHsgcmVjb3JkcywgaW5kZXhlcyB9KSxcbiAgLi4ucmVjb3Jkcy5tYXAocm9vdCksXG5dXG5cbmNvbnN0IHJvb3QgPSByZWNvcmQgPT4gKHtcbiAgbmFtZTogYCR7cmVjb3JkLm5hbWV9IEZvcm1gLFxuICBkZXNjcmlwdGlvbjogYEFsbCBmaWVsZHMgb24gcmVjb3JkICcke3JlY29yZC5ub2RlS2V5KCl9JyBgLFxuICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy9zdGFja3BhbmVsXCIsXG4gIHByb3BzOiB7XG4gICAgZGlyZWN0aW9uOiBcInZlcnRpY2FsXCIsXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgY29udHJvbDoge1xuICAgICAgICAgIF9jb21wb25lbnQ6IFwiY29tbW9uL0gxXCIsXG4gICAgICAgICAgdmFsdWU6IGBFZGl0ICR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBmb3JtKHJlY29yZCksXG4gICAgICBzYXZlQ2FuY2VsQnV0dG9ucyhyZWNvcmQpLFxuICAgIF0sXG4gIH0sXG59KVxuXG5jb25zdCBmb3JtID0gcmVjb3JkID0+ICh7XG4gIGNvbnRyb2w6IHtcbiAgICBfY29tcG9uZW50OiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL2Zvcm1cIixcbiAgICBmb3JtQ29udHJvbHM6IHJlY29yZC5maWVsZHMubWFwKGYgPT4gKHtcbiAgICAgIGxhYmVsOiBmLmxhYmVsLFxuICAgICAgY29udHJvbDoge1xuICAgICAgICBfY29tcG9uZW50OiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RleHRib3hcIixcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBcIiMjYmJzdGF0ZVwiOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9LiR7Zi5uYW1lfWAsXG4gICAgICAgICAgXCIjI2Jic291cmNlXCI6IFwic3RvcmVcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSkpLFxuICB9LFxufSlcblxuY29uc3Qgc2F2ZUNhbmNlbEJ1dHRvbnMgPSByZWNvcmQgPT4gKHtcbiAgY29udHJvbDoge1xuICAgIF9jb21wb25lbnQ6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvc3RhY2twYW5lbFwiLFxuICAgIGRpcmVjdGlvbjogXCJob3Jpem9udGFsXCIsXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHBhZGRlZFBhbmVsRm9yQnV0dG9uKHtcbiAgICAgICAgX2NvbXBvbmVudDogXCJjb21tb24vUHJpbWFyeSBCdXR0b25cIixcbiAgICAgICAgY29udGVudFRleHQ6IGBTYXZlICR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgb25DbGljazogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiIyNldmVudEhhbmRsZXJUeXBlXCI6IFwiU2F2ZSBSZWNvcmRcIixcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgc3RhdGVQYXRoOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICAgcGFkZGVkUGFuZWxGb3JCdXR0b24oe1xuICAgICAgICBfY29tcG9uZW50OiBcImNvbW1vbi9TZWNvbmRhcnkgQnV0dG9uXCIsXG4gICAgICAgIGNvbnRlbnRUZXh0OiBgQ2FuY2VsYCxcbiAgICAgICAgb25DbGljazogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiIyNldmVudEhhbmRsZXJUeXBlXCI6IFwiU2F2ZSBSZWNvcmRcIixcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgc3RhdGVQYXRoOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIF0sXG4gIH0sXG59KVxuXG5jb25zdCBwYWRkZWRQYW5lbEZvckJ1dHRvbiA9IGJ1dHRvbiA9PiAoe1xuICBjb250cm9sOiB7XG4gICAgX2NvbXBvbmVudDogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy9wYW5lbFwiLFxuICAgIHBhZGRpbmc6IFwiMjBweFwiLFxuICAgIGNvbXBvbmVudDogYnV0dG9uLFxuICB9LFxufSlcbiIsImV4cG9ydCBjb25zdCBpbmRleFRhYmxlcyA9ICh7IGluZGV4ZXMsIGhlbHBlcnMgfSkgPT5cbiAgaW5kZXhlc1xuICAgIC5maWx0ZXIoaSA9PiBpLnBhcmVudCgpLnR5cGUgPT09IFwicm9vdFwiKVxuICAgIC5tYXAoaSA9PiBpbmRleFRhYmxlKGksIGhlbHBlcnMpKVxuXG5leHBvcnQgY29uc3QgaW5kZXhUYWJsZVByb3BzID0gKGluZGV4LCBoZWxwZXJzKSA9PiAoe1xuICBkYXRhOiB7XG4gICAgXCIjI2Jic3RhdGVcIjogaW5kZXgubm9kZUtleSgpLFxuICAgIFwiIyNiYnNvdXJjZVwiOiBcInN0b3JlXCIsXG4gIH0sXG4gIGNvbHVtbnM6IGhlbHBlcnMuaW5kZXhTY2hlbWEoaW5kZXgpLm1hcChjb2x1bW4pLFxufSlcblxuY29uc3QgaW5kZXhUYWJsZSA9IChpbmRleCwgaGVscGVycykgPT4gKHtcbiAgbmFtZTogYHRhYmxlcy8ke2luZGV4Lm5hbWV9IFRhYmxlYCxcbiAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGFibGVcIixcbiAgcHJvcHM6IGluZGV4VGFibGVQcm9wcyhpbmRleCwgaGVscGVycyksXG59KVxuXG5jb25zdCBjb2x1bW4gPSBjb2wgPT4gKHtcbiAgdGl0bGU6IGNvbC5uYW1lLFxuICB2YWx1ZToge1xuICAgIFwiIyNiYnN0YXRlXCI6IGNvbC5uYW1lLFxuICAgIFwiIyNiYnNvdXJjZVwiOiBcImNvbnRleHRcIixcbiAgfSxcbn0pXG4iLCJpbXBvcnQgeyBpbmRleFRhYmxlcyB9IGZyb20gXCIuL2luZGV4VGFibGVzR2VuZXJhdG9yXCJcblxuZXhwb3J0IGNvbnN0IG5hdiA9ICh7IHJlY29yZHMsIGluZGV4ZXMsIGhlbHBlcnMgfSkgPT4gW1xuICB7XG4gICAgbmFtZTogXCJBcHBsaWNhdGlvbiBSb290XCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvbmF2XCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIGl0ZW1zOiBpbmRleGVzLmZpbHRlcihpID0+IGkucGFyZW50KCkudHlwZSA9PT0gXCJyb290XCIpLm1hcChuYXZJdGVtKSxcbiAgICAgIHNlbGVjdGVkSXRlbToge1xuICAgICAgICBcIiMjYmJzdGF0ZVwiOiBcInNlbGVjdGVkTmF2XCIsXG4gICAgICAgIFwiIyNiYnN0YXRlZmFsbGJhY2tcIjogcmVjb3Jkc1swXS5jb2xsZWN0aW9uTmFtZSxcbiAgICAgICAgXCIjI2Jic291cmNlXCI6IFwic3RvcmVcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgLi4uaW5kZXhUYWJsZXMoeyByZWNvcmRzLCBpbmRleGVzLCBoZWxwZXJzIH0pLFxuXVxuXG5leHBvcnQgY29uc3QgbmF2SXRlbSA9IGluZGV4ID0+ICh7XG4gIHRpdGxlOiBpbmRleC5uYW1lLFxuICBjb21wb25lbnQ6IHtcbiAgICBfY29tcG9uZW50OiBgdGFibGVzLyR7aW5kZXgubmFtZX0gVGFibGVgLFxuICB9LFxufSlcbiIsImltcG9ydCB7IGZvcm1zIH0gZnJvbSBcIi4vZm9ybXNHZW5lcmF0b3JcIlxuaW1wb3J0IHsgbmF2IH0gZnJvbSBcIi4vbmF2R2VuZXJhdG9yXCJcblxuZXhwb3J0IGNvbnN0IGFwcCA9IHBhcmFtcyA9PiB7XG4gIHJldHVybiBbLi4ubmF2KHBhcmFtcyksIC4uLmZvcm1zKHBhcmFtcyldXG59XG4iLCJleHBvcnQgY29uc3QgYnV0dG9ucyA9ICgpID0+IFtcbiAge1xuICAgIG5hbWU6IFwiY29tbW9uL1ByaW1hcnkgQnV0dG9uXCIsXG4gICAgZGVzY3JpcHRpb246IFwiYSBzdHlsZWQgYnV0dG9uXCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvYnV0dG9uXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIHBhZGRpbmc6IFwiNXB4IDdweFwiLFxuICAgICAgYm9yZGVyOiBcIjFweCBzb2xpZCAjRUVFXCIsXG4gICAgICBjb2xvcjogXCIjNUY2MzY4XCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcIiMjZjJmMmYyXCIsXG4gICAgICBob3ZlckNvbG9yOiBcImJsYWNrXCIsXG4gICAgICBob3ZlckJhY2tncm91bmQ6IFwiI2NjY2NjY1wiLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImNvbW1vbi9TZWNvbmRhcnkgQnV0dG9uXCIsXG4gICAgZGVzY3JpcHRpb246IFwiYSBzdHlsZWQgYnV0dG9uXCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvYnV0dG9uXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIHBhZGRpbmc6IFwiNXB4IDdweFwiLFxuICAgICAgYm9yZGVyOiBcIjFweCBzb2xpZCAjRUVFXCIsXG4gICAgICBjb2xvcjogXCIjNUY2MzY4XCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcIiMjZjJmMmYyXCIsXG4gICAgICBob3ZlckNvbG9yOiBcImJsYWNrXCIsXG4gICAgICBob3ZlckJhY2tncm91bmQ6IFwiI2NjY2NjY1wiLFxuICAgIH0sXG4gIH0sXG5dXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVksTUFBQyxPQUFPLEdBQUcsTUFBTTtBQUM3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 diff --git a/packages/standard-components/src/Container.svelte b/packages/standard-components/src/Container.svelte index 9b9d47d3c0..3b969dd8b3 100644 --- a/packages/standard-components/src/Container.svelte +++ b/packages/standard-components/src/Container.svelte @@ -1,88 +1,122 @@ -{#if type === "div"} -
-{:else if type === "header"} -
-{:else if type === "main"} -
-{:else if type === "footer"} -
-{:else if type === "aside"} -
\ No newline at end of file + diff --git a/packages/standard-components/src/TableHead.svelte b/packages/standard-components/src/TableHead.svelte index b958bd2c85..ae739aa306 100644 --- a/packages/standard-components/src/TableHead.svelte +++ b/packages/standard-components/src/TableHead.svelte @@ -1,12 +1,10 @@ - \ No newline at end of file + diff --git a/packages/standard-components/src/Test/TestApp.svelte b/packages/standard-components/src/Test/TestApp.svelte index 6d85b98132..13504e1e15 100644 --- a/packages/standard-components/src/Test/TestApp.svelte +++ b/packages/standard-components/src/Test/TestApp.svelte @@ -5,17 +5,17 @@ let currentComponent let _appPromise -const autoAssignIds = (props, count = 0) => { - if (!props._id) { - props._id = `auto_id_${count}` - } - if (props._children) { - for (let child of props._children) { - count += 1 - autoAssignIds(child, count) + const autoAssignIds = (props, count = 0) => { + if (!props._id) { + props._id = `auto_id_${count}` + } + if (props._children) { + for (let child of props._children) { + count += 1 + autoAssignIds(child, count) + } } } -} $: { if (currentComponent) { diff --git a/packages/standard-components/src/Text.svelte b/packages/standard-components/src/Text.svelte index c8d8a245bf..8b846e1014 100644 --- a/packages/standard-components/src/Text.svelte +++ b/packages/standard-components/src/Text.svelte @@ -28,30 +28,26 @@ } -{#if isTag("none")} -{text} -{:else if isTag("")} -{text} -{:else if isTag("")} -{text} -{:else if isTag("")} -{text} -{:else if isTag("")} -{text} -{:else if isTag("")} -{text} -{:else if isTag("")} -{text} -{:else if isTag("")} -{text} -{:else if isTag("")} -{text} -{:else if isTag("")} -{text} -{:else if isTag("")} -{text} -{:else} -{text} -{/if} - - +{#if isTag('none')} + {text} +{:else if isTag('')} + {text} +{:else if isTag('')} + {text} +{:else if isTag('')} + {text} +{:else if isTag('')} + {text} +{:else if isTag('')} + {text} +{:else if isTag('')} + {text} +{:else if isTag('')} + {text} +{:else if isTag('')} + {text} +{:else if isTag('')} + {text} +{:else if isTag('')} + {text} +{:else}{text}{/if} diff --git a/packages/standard-components/src/button.svelte b/packages/standard-components/src/button.svelte index 2a23f82f0c..d4bcd7b354 100644 --- a/packages/standard-components/src/button.svelte +++ b/packages/standard-components/src/button.svelte @@ -24,7 +24,7 @@ let customClasses = "" - $: if(_bb.props._children && _bb.props._children.length > 0) + $: if (_bb.props._children && _bb.props._children.length > 0) theButton && _bb.attachChildren(theButton) $: { @@ -64,7 +64,9 @@ disabled={disabled || false} on:click={clickHandler} style={buttonStyles}> - {#if !_bb.props._children || _bb.props._children.length === 0}{contentText}{/if} + {#if !_bb.props._children || _bb.props._children.length === 0} + {contentText} + {/if} + - + + + + - - - - - - - - - - - - - + +