1
0
Fork 0
mirror of synced 2024-07-02 13:01:09 +12:00
budibase/packages/builder/src/builderStore/loadComponentLibraries.js

57 lines
1.5 KiB
JavaScript
Raw Normal View History

import { flatten, values, uniq, map } from "lodash/fp"
import { pipe } from "components/common/core"
export const loadLibs = async (appId, appPackage) => {
const allLibraries = {}
for (let lib of libsFromPages(appPackage.pages)) {
console.log(libModule);
const libModule = await import(makeLibraryUrl(appId, lib))
allLibraries[lib] = libModule
}
2019-08-20 08:18:23 +12:00
return allLibraries
2019-08-20 08:18:23 +12:00
}
2019-08-27 18:32:56 +12:00
export const loadLibUrls = (appId, appPackage) => {
const allLibraries = []
for (let lib of libsFromPages(appPackage.pages)) {
const libUrl = makeLibraryUrl(appId, lib)
allLibraries.push({ libName: lib, importPath: libUrl })
}
2019-09-22 16:02:33 +12:00
return allLibraries
2019-09-22 16:02:33 +12:00
}
export const loadLib = async (appId, lib, allLibs) => {
allLibs[lib] = await import(makeLibraryUrl(appId, lib))
return allLibs
2019-08-27 18:32:56 +12:00
}
export const makeLibraryUrl = (appId, lib) =>
`/_builder/${appId}/componentlibrary?lib=${encodeURI(lib)}`
2020-02-26 04:21:23 +13:00
export const libsFromPages = pages =>
pipe(pages, [values, map(p => p.componentLibraries), flatten, uniq])
export const libUrlsForPreview = (appPackage, pageName) => {
const resolve = path => {
let file = appPackage.components.libraryPaths[path]
if (file.startsWith("./")) file = file.substring(2)
if (file.startsWith("/")) file = file.substring(1)
let newPath = path
if (!newPath.startsWith("./") && !newPath.startsWith("/")) {
newPath = `/node_modules/${path}`
}
return {
importPath: `/lib${newPath}/${file}`,
libName: path,
}
}
return pipe([appPackage.pages[pageName]], [libsFromPages, map(resolve)])
}