1
0
Fork 0
mirror of synced 2024-07-04 14:01:27 +12:00
budibase/packages/builder/src/builderStore/loadComponentLibraries.js

41 lines
1,005 B
JavaScript
Raw Normal View History

import { flatten, values, uniq, map } from "lodash/fp"
import { pipe } from "../common/core"
2019-08-20 08:18:23 +12:00
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
}
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
2019-09-22 16:02:33 +12:00
export const loadLibUrls = (appName, appPackage) => {
const allLibraries = []
for (let lib of libsFromPages(appPackage.pages)) {
const libUrl = makeLibraryUrl(appName, 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
}
2019-08-27 18:32:56 +12:00
export const loadLib = async (appName, lib, allLibs) => {
allLibs[lib] = await import(makeLibraryUrl(appName, lib))
return allLibs
2019-08-27 18:32:56 +12:00
}
export const makeLibraryUrl = (appName, lib) =>
`/_builder/${appName}/componentlibrary?lib=${encodeURI(lib)}`
export const libsFromPages = pages => pipe(pages, [
values,
map(p => p.componentLibraries),
flatten,
uniq
])