@embeddable.com/sdk-react 1.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.cjs.js +157 -205
- package/lib/index.cjs.js.map +1 -0
- package/lib/index.esm.js +154 -202
- package/lib/index.esm.js.map +1 -0
- package/lib/plugin/build.d.ts +2 -0
- package/lib/plugin/cleanup.d.ts +2 -0
- package/lib/plugin/createContext.d.ts +2 -0
- package/lib/plugin/generate.d.ts +2 -0
- package/lib/plugin/index.d.ts +7 -0
- package/package.json +7 -16
- package/templates/embeddable-entry-point.jsx.template +9 -3
- package/bin/embeddable-react +0 -10
- package/lib/EmbeddableStateContext.d.ts +0 -3
- package/lib/embedComponent.d.ts +0 -21
- package/lib/embedControl.d.ts +0 -13
- package/lib/index.d.ts +0 -3
- package/lib/index.umd.js +0 -280
- package/scripts/build.js +0 -79
- package/scripts/buildTypesProcess.js +0 -12
- package/scripts/cleanup.js +0 -8
- package/scripts/createContext.js +0 -24
- package/scripts/generate.js +0 -70
- package/scripts/generateProcess.js +0 -14
- package/scripts/prepare.js +0 -12
package/lib/index.cjs.js
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var path = require('node:path');
|
|
4
|
+
var fs$1 = require('fs/promises');
|
|
5
|
+
var path$1 = require('path');
|
|
6
|
+
var vite = require('vite');
|
|
7
|
+
var viteReactPlugin = require('@vitejs/plugin-react');
|
|
8
|
+
var fs = require('node:fs/promises');
|
|
9
|
+
var parser = require('@babel/parser');
|
|
10
|
+
var generator = require('@babel/generator');
|
|
11
|
+
var traverse = require('@babel/traverse');
|
|
12
|
+
require('node:child_process');
|
|
5
13
|
|
|
6
14
|
function _interopNamespaceDefault(e) {
|
|
7
15
|
var n = Object.create(null);
|
|
@@ -20,218 +28,162 @@ function _interopNamespaceDefault(e) {
|
|
|
20
28
|
return Object.freeze(n);
|
|
21
29
|
}
|
|
22
30
|
|
|
23
|
-
var
|
|
31
|
+
var path__namespace$1 = /*#__PURE__*/_interopNamespaceDefault(path);
|
|
32
|
+
var fs__namespace$1 = /*#__PURE__*/_interopNamespaceDefault(fs$1);
|
|
33
|
+
var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path$1);
|
|
34
|
+
var vite__namespace = /*#__PURE__*/_interopNamespaceDefault(vite);
|
|
35
|
+
var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
|
|
24
36
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
36
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
37
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
38
|
-
***************************************************************************** */
|
|
39
|
-
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
var __assign = function() {
|
|
43
|
-
__assign = Object.assign || function __assign(t) {
|
|
44
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
45
|
-
s = arguments[i];
|
|
46
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
47
|
-
}
|
|
48
|
-
return t;
|
|
49
|
-
};
|
|
50
|
-
return __assign.apply(this, arguments);
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
function __rest(s, e) {
|
|
54
|
-
var t = {};
|
|
55
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
56
|
-
t[p] = s[p];
|
|
57
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
58
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
59
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
60
|
-
t[p[i]] = s[p[i]];
|
|
61
|
-
}
|
|
62
|
-
return t;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
66
|
-
var e = new Error(message);
|
|
67
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
37
|
+
var createContext = (pluginRoot, coreCtx) => {
|
|
38
|
+
coreCtx["sdk-react"] = {
|
|
39
|
+
rootDir: pluginRoot,
|
|
40
|
+
templatesDir: path.resolve(pluginRoot, "templates"),
|
|
41
|
+
outputOptions: {
|
|
42
|
+
fileName: "embeddable-prepared",
|
|
43
|
+
buildName: "embeddable-prepared-build",
|
|
44
|
+
componentsEntryPointFilename: "embeddable-entry-point.jsx",
|
|
45
|
+
},
|
|
46
|
+
};
|
|
68
47
|
};
|
|
69
48
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
49
|
+
// @ts-ignore
|
|
50
|
+
const babelTraverse = traverse.default;
|
|
51
|
+
// @ts-ignore
|
|
52
|
+
const babelGenerate = generator.default;
|
|
53
|
+
var index$1 = ({ globalKey, outputDir, fileName, componentFileRegex, typeFileRegex, searchEntry = "", }) => {
|
|
54
|
+
const configs = [];
|
|
55
|
+
return {
|
|
56
|
+
name: "extract-components-config",
|
|
57
|
+
moduleParsed: async (moduleInfo) => {
|
|
58
|
+
var _a;
|
|
59
|
+
if (componentFileRegex.test(moduleInfo.id) &&
|
|
60
|
+
((_a = moduleInfo.code) === null || _a === void 0 ? void 0 : _a.includes(searchEntry))) {
|
|
61
|
+
const ast = parser.parse(moduleInfo.code, {
|
|
62
|
+
sourceType: "module",
|
|
63
|
+
});
|
|
64
|
+
babelTraverse(ast, {
|
|
65
|
+
ImportDeclaration: (path) => {
|
|
66
|
+
if (!typeFileRegex.test(path.node.source.value)) {
|
|
67
|
+
path.remove();
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
ExportDefaultDeclaration: (path) => {
|
|
71
|
+
path.remove();
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
const tempFilePath = moduleInfo.id
|
|
75
|
+
.replace(".emb.", ".emb-temp.")
|
|
76
|
+
.replace(/\.ts$/, ".js");
|
|
77
|
+
await fs__namespace.writeFile(tempFilePath, babelGenerate(ast).code);
|
|
78
|
+
const module = await import(tempFilePath);
|
|
79
|
+
const configJSON = JSON.stringify(module.meta, (_key, value) => typeof value === "object" && "typeConfig" in value
|
|
80
|
+
? value.toString()
|
|
81
|
+
: value);
|
|
82
|
+
await fs__namespace.rm(tempFilePath);
|
|
83
|
+
configs.push(configJSON);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
buildEnd: async () => {
|
|
87
|
+
const template = `
|
|
88
|
+
globalThis.__EMBEDDABLE__ = globalThis.__EMBEDDABLE__ || {};
|
|
89
|
+
globalThis.__EMBEDDABLE__.${globalKey} = globalThis.__EMBEDDABLE__.${globalKey} || [
|
|
90
|
+
__PLACEHOLDER__
|
|
91
|
+
];
|
|
92
|
+
`;
|
|
93
|
+
await fs__namespace.writeFile(`${outputDir}/${fileName}`, template.replace("__PLACEHOLDER__", configs.filter(Boolean).join(",\n")));
|
|
94
|
+
},
|
|
95
|
+
};
|
|
78
96
|
};
|
|
79
97
|
|
|
80
|
-
var
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
var _a, _b, _c;
|
|
90
|
-
switch (action.type) {
|
|
91
|
-
case ReducerActionTypes.loading: {
|
|
92
|
-
return __assign(__assign({}, state), (_a = {}, _a[action.inputName] = {
|
|
93
|
-
data: state[action.inputName].data,
|
|
94
|
-
isLoading: true,
|
|
95
|
-
}, _a));
|
|
96
|
-
}
|
|
97
|
-
case ReducerActionTypes.data: {
|
|
98
|
-
return __assign(__assign({}, state), (_b = {}, _b[action.inputName] = { isLoading: false, data: action.payload }, _b));
|
|
99
|
-
}
|
|
100
|
-
case ReducerActionTypes.error: {
|
|
101
|
-
return __assign(__assign({}, state), (_c = {}, _c[action.inputName] = {
|
|
102
|
-
isLoading: false,
|
|
103
|
-
error: action.payload.message || action.payload,
|
|
104
|
-
}, _c));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return state;
|
|
108
|
-
};
|
|
109
|
-
var createInitialLoadersState = function (dataLoaders) {
|
|
110
|
-
return Object.keys(dataLoaders).reduce(function (loaderState, loaderKey) {
|
|
111
|
-
var _a;
|
|
112
|
-
return (__assign(__assign({}, loaderState), (_a = {}, _a[loaderKey] = { isLoading: false }, _a)));
|
|
113
|
-
}, {});
|
|
114
|
-
};
|
|
115
|
-
function embedComponent(InnerComponent, config) {
|
|
116
|
-
var _a;
|
|
117
|
-
if (config === void 0) { config = {}; }
|
|
118
|
-
function EmbeddableWrapper(_a) {
|
|
119
|
-
var propsUpdateListener = _a.propsUpdateListener, props = __rest(_a, ["propsUpdateListener"]);
|
|
120
|
-
var _b = React__namespace.useState(props), propsProxy = _b[0], setProps = _b[1];
|
|
121
|
-
var embeddableState = React__namespace.useState();
|
|
122
|
-
var componentId = props.componentId;
|
|
123
|
-
var loadDataResultEventName = "".concat(LOAD_DATA_RESULT_EVENT_NAME, ":").concat(componentId);
|
|
124
|
-
var propsUpdateEventHandler = function (_a) {
|
|
125
|
-
var detail = _a.detail;
|
|
126
|
-
return setProps(detail);
|
|
127
|
-
};
|
|
128
|
-
React__namespace.useEffect(function () {
|
|
129
|
-
propsUpdateListener.addEventListener(UPDATE_PROPS_EVENT_NAME, propsUpdateEventHandler);
|
|
130
|
-
return function () {
|
|
131
|
-
return propsUpdateListener.removeEventListener(UPDATE_PROPS_EVENT_NAME, propsUpdateEventHandler);
|
|
132
|
-
};
|
|
133
|
-
}, []);
|
|
134
|
-
var _c = React__namespace.useMemo(function () {
|
|
135
|
-
var _a, _b;
|
|
136
|
-
return Object.entries((_b = (_a = config === null || config === void 0 ? void 0 : config.props) === null || _a === void 0 ? void 0 : _a.call(config, propsProxy, embeddableState)) !== null && _b !== void 0 ? _b : {}).reduce(function (acc, _a) {
|
|
137
|
-
var key = _a[0], value = _a[1];
|
|
138
|
-
if (sdkCore.isLoadDataParams(value)) {
|
|
139
|
-
acc.dataLoaders[key] = value;
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
acc.extendedProps[key] = value;
|
|
143
|
-
}
|
|
144
|
-
return acc;
|
|
145
|
-
}, { extendedProps: {}, dataLoaders: {} });
|
|
146
|
-
}, [propsProxy, config === null || config === void 0 ? void 0 : config.props, embeddableState[0]]), extendedProps = _c.extendedProps, dataLoaders = _c.dataLoaders;
|
|
147
|
-
var _d = React__namespace.useReducer(reducer, dataLoaders, createInitialLoadersState), loadersState = _d[0], dispatch = _d[1];
|
|
148
|
-
var handleDataLoaded = function (inputName, data) {
|
|
149
|
-
return dispatch({ type: ReducerActionTypes.data, inputName: inputName, payload: data });
|
|
150
|
-
};
|
|
151
|
-
var handleError = function (inputName, error) {
|
|
152
|
-
return dispatch({ type: ReducerActionTypes.error, inputName: inputName, payload: error });
|
|
153
|
-
};
|
|
154
|
-
var reloadDataset = function (inputName, params) {
|
|
155
|
-
dispatch({ type: ReducerActionTypes.loading, inputName: inputName });
|
|
156
|
-
var error = params.dataLoader(params.requestParams, componentId, inputName);
|
|
157
|
-
if (error)
|
|
158
|
-
handleError(inputName, error);
|
|
159
|
-
};
|
|
160
|
-
var handleLoadDataResult = function (ev) {
|
|
161
|
-
if (ev.detail.isSuccess) {
|
|
162
|
-
handleDataLoaded(ev.detail.propertyName, ev.detail.data);
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
handleError(ev.detail.propertyName, ev.detail.error);
|
|
98
|
+
var findFiles = async (initialSrcDir, regex) => {
|
|
99
|
+
const filesList = [];
|
|
100
|
+
async function findFilesRec(srcDir) {
|
|
101
|
+
const allFiles = await fs.readdir(srcDir);
|
|
102
|
+
for (const file of allFiles) {
|
|
103
|
+
const filePath = path.join(srcDir, file);
|
|
104
|
+
const status = await fs.lstat(filePath);
|
|
105
|
+
if (status.isDirectory()) {
|
|
106
|
+
await findFilesRec(filePath);
|
|
166
107
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
Object.entries(dataLoaders)
|
|
171
|
-
.filter(function (_a) {
|
|
172
|
-
_a[0]; var params = _a[1];
|
|
173
|
-
return params.requestParams.from.datasetId === detail.datasetId;
|
|
174
|
-
})
|
|
175
|
-
.forEach(function (_a) {
|
|
176
|
-
var inputName = _a[0], params = _a[1];
|
|
177
|
-
return reloadDataset(inputName, params);
|
|
178
|
-
});
|
|
179
|
-
};
|
|
180
|
-
React__namespace.useEffect(function () {
|
|
181
|
-
Object.entries(dataLoaders).forEach(function (_a) {
|
|
182
|
-
var inputName = _a[0], params = _a[1];
|
|
183
|
-
return reloadDataset(inputName, params);
|
|
184
|
-
});
|
|
185
|
-
window.addEventListener(RELOAD_DATASET_EVENT_NAME, variableChangedEventHandler);
|
|
186
|
-
window.addEventListener(loadDataResultEventName, handleLoadDataResult);
|
|
187
|
-
return function () {
|
|
188
|
-
window.removeEventListener(RELOAD_DATASET_EVENT_NAME, variableChangedEventHandler);
|
|
189
|
-
window.removeEventListener(loadDataResultEventName, handleLoadDataResult);
|
|
190
|
-
};
|
|
191
|
-
}, [
|
|
192
|
-
JSON.stringify(Object.values(dataLoaders).map(function (loader) { return loader.requestParams; })),
|
|
193
|
-
]);
|
|
194
|
-
var createEvent = function (value, eventName) {
|
|
195
|
-
return sdkCore.setValue(value, componentId, eventName);
|
|
196
|
-
};
|
|
197
|
-
var events = config === null || config === void 0 ? void 0 : config.events;
|
|
198
|
-
var eventProps = {};
|
|
199
|
-
if (events) {
|
|
200
|
-
var _loop_1 = function (event_1) {
|
|
201
|
-
if (events.hasOwnProperty(event_1)) {
|
|
202
|
-
var eventFunction_1 = events[event_1];
|
|
203
|
-
eventProps[event_1] = function (value) {
|
|
204
|
-
return createEvent(eventFunction_1(value), event_1);
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
};
|
|
208
|
-
for (var event_1 in events) {
|
|
209
|
-
_loop_1(event_1);
|
|
108
|
+
const fileName = file.match(regex);
|
|
109
|
+
if (fileName) {
|
|
110
|
+
filesList.push([fileName[1], filePath]);
|
|
210
111
|
}
|
|
211
112
|
}
|
|
212
|
-
return (React__namespace.createElement(EmbeddableStateContext.Provider, { value: embeddableState },
|
|
213
|
-
React__namespace.createElement(InnerComponent, __assign({}, extendedProps, eventProps, loadersState))));
|
|
214
113
|
}
|
|
215
|
-
|
|
216
|
-
return
|
|
217
|
-
}
|
|
114
|
+
await findFilesRec(initialSrcDir);
|
|
115
|
+
return filesList;
|
|
116
|
+
};
|
|
218
117
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
118
|
+
const oraP = import('ora');
|
|
119
|
+
const EMB_FILE_REGEX = /^(.*)(?<!\.type|\.options)\.emb\.[jt]s$/;
|
|
120
|
+
const EMB_TYPE_FILE_REGEX = /^(.*)\.type\.emb\.[jt]s$/;
|
|
121
|
+
var generate = async (ctx) => {
|
|
122
|
+
const ora = (await oraP).default;
|
|
123
|
+
const progress = ora("React: building components...").start();
|
|
124
|
+
const filesList = await findFiles(ctx.client.srcDir, EMB_FILE_REGEX);
|
|
125
|
+
await injectImports(ctx, filesList);
|
|
126
|
+
await runViteBuild(ctx);
|
|
127
|
+
progress.succeed("React: components built completed");
|
|
128
|
+
};
|
|
129
|
+
async function runViteBuild(ctx) {
|
|
130
|
+
process.chdir(ctx.client.rootDir);
|
|
131
|
+
await vite__namespace.build({
|
|
132
|
+
logLevel: "error",
|
|
133
|
+
plugins: [
|
|
134
|
+
viteReactPlugin(),
|
|
135
|
+
index$1({
|
|
136
|
+
globalKey: "componentsMeta",
|
|
137
|
+
fileName: "embeddable-components-meta.js",
|
|
138
|
+
outputDir: ".embeddable-build",
|
|
139
|
+
componentFileRegex: EMB_FILE_REGEX,
|
|
140
|
+
typeFileRegex: EMB_TYPE_FILE_REGEX,
|
|
141
|
+
searchEntry: "embedComponent",
|
|
142
|
+
}),
|
|
143
|
+
index$1({
|
|
144
|
+
globalKey: "editorsMeta",
|
|
145
|
+
fileName: "embeddable-editors-meta.js",
|
|
146
|
+
outputDir: ".embeddable-build",
|
|
147
|
+
componentFileRegex: EMB_FILE_REGEX,
|
|
148
|
+
typeFileRegex: EMB_TYPE_FILE_REGEX,
|
|
149
|
+
searchEntry: "embedControl",
|
|
150
|
+
}),
|
|
151
|
+
],
|
|
152
|
+
build: {
|
|
153
|
+
lib: {
|
|
154
|
+
entry: `./${ctx["sdk-react"].outputOptions.componentsEntryPointFilename}`,
|
|
155
|
+
formats: ["es"],
|
|
156
|
+
fileName: ctx["sdk-react"].outputOptions.fileName,
|
|
157
|
+
},
|
|
158
|
+
outDir: `.embeddable-build/${ctx["sdk-react"].outputOptions.buildName}`,
|
|
159
|
+
},
|
|
160
|
+
define: { "process.env.NODE_ENV": '"production"' },
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
const REPLACE_TOKEN = "{{LAZY_IMPORTS}}";
|
|
164
|
+
async function injectImports(ctx, filesList) {
|
|
165
|
+
const imports = filesList
|
|
166
|
+
.map(([fileName, filePath]) => `\t${fileName}: React.lazy(() => import('./${path__namespace.relative(ctx.client.rootDir, filePath)}'))`)
|
|
167
|
+
.join(",\n");
|
|
168
|
+
const content = await fs__namespace$1.readFile(path__namespace.resolve(ctx["sdk-react"].templatesDir, `${ctx["sdk-react"].outputOptions.componentsEntryPointFilename}.template`), "utf8");
|
|
169
|
+
await fs__namespace$1.writeFile(path__namespace.resolve(ctx.client.rootDir, ctx["sdk-react"].outputOptions.componentsEntryPointFilename), content.replace(REPLACE_TOKEN, imports));
|
|
233
170
|
}
|
|
234
171
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
172
|
+
var build = async (ctx) => {
|
|
173
|
+
createContext(path__namespace$1.resolve(__dirname, ".."), ctx);
|
|
174
|
+
await generate(ctx);
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
var cleanup = async (ctx) => await fs.rm(path.resolve(ctx.client.rootDir, ctx["sdk-react"].outputOptions.componentsEntryPointFilename));
|
|
178
|
+
|
|
179
|
+
var index = (coreCtx) => {
|
|
180
|
+
return {
|
|
181
|
+
pluginName: "sdk-react",
|
|
182
|
+
validate: async () => { },
|
|
183
|
+
build,
|
|
184
|
+
cleanup,
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
module.exports = index;
|
|
189
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../src/createContext.ts","../../extract-components-config/lib/index.esm.js","../../utils/lib/index.esm.js","../../src/generate.ts","../../src/build.ts","../../src/cleanup.ts","../../src/index.ts"],"sourcesContent":[null,"import * as fs from 'node:fs/promises';\nimport { parse } from '@babel/parser';\nimport generator from '@babel/generator';\nimport traverse from '@babel/traverse';\n\n// @ts-ignore\nconst babelTraverse = traverse.default;\n// @ts-ignore\nconst babelGenerate = generator.default;\nvar index = ({ globalKey, outputDir, fileName, componentFileRegex, typeFileRegex, searchEntry = \"\", }) => {\n const configs = [];\n return {\n name: \"extract-components-config\",\n moduleParsed: async (moduleInfo) => {\n var _a;\n if (componentFileRegex.test(moduleInfo.id) &&\n ((_a = moduleInfo.code) === null || _a === void 0 ? void 0 : _a.includes(searchEntry))) {\n const ast = parse(moduleInfo.code, {\n sourceType: \"module\",\n });\n babelTraverse(ast, {\n ImportDeclaration: (path) => {\n if (!typeFileRegex.test(path.node.source.value)) {\n path.remove();\n }\n },\n ExportDefaultDeclaration: (path) => {\n path.remove();\n },\n });\n const tempFilePath = moduleInfo.id\n .replace(\".emb.\", \".emb-temp.\")\n .replace(/\\.ts$/, \".js\");\n await fs.writeFile(tempFilePath, babelGenerate(ast).code);\n const module = await import(tempFilePath);\n const configJSON = JSON.stringify(module.meta, (_key, value) => typeof value === \"object\" && \"typeConfig\" in value\n ? value.toString()\n : value);\n await fs.rm(tempFilePath);\n configs.push(configJSON);\n }\n },\n buildEnd: async () => {\n const template = `\nglobalThis.__EMBEDDABLE__ = globalThis.__EMBEDDABLE__ || {};\nglobalThis.__EMBEDDABLE__.${globalKey} = globalThis.__EMBEDDABLE__.${globalKey} || [\n __PLACEHOLDER__\n];\n `;\n await fs.writeFile(`${outputDir}/${fileName}`, template.replace(\"__PLACEHOLDER__\", configs.filter(Boolean).join(\",\\n\")));\n },\n };\n};\n\nexport { index as default };\n//# sourceMappingURL=index.esm.js.map\n","import { readdir, lstat } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { fork } from 'node:child_process';\n\nvar findFiles = async (initialSrcDir, regex) => {\n const filesList = [];\n async function findFilesRec(srcDir) {\n const allFiles = await readdir(srcDir);\n for (const file of allFiles) {\n const filePath = join(srcDir, file);\n const status = await lstat(filePath);\n if (status.isDirectory()) {\n await findFilesRec(filePath);\n }\n const fileName = file.match(regex);\n if (fileName) {\n filesList.push([fileName[1], filePath]);\n }\n }\n }\n await findFilesRec(initialSrcDir);\n return filesList;\n};\n\nvar runProcess = async ({ processFile, ctx, initMessage, successMessage, failMessage, }) => {\n const ora = (await import('ora')).default;\n const spinner = ora(initMessage).start();\n try {\n await promisifyForkedProcess(processFile, ctx);\n spinner.succeed(successMessage);\n }\n catch (error) {\n spinner.fail(failMessage);\n console.error(error);\n // await core.globalCleanup(ctx);\n process.exit(1);\n }\n};\nfunction promisifyForkedProcess(filePath, ctx) {\n const forkedProcess = fork(filePath, [], process.env.NODE_ENV === \"dev\" ? undefined : { silent: true });\n forkedProcess.send({ ctx });\n return new Promise((resolve, reject) => {\n forkedProcess.on(\"exit\", (code) => {\n if (code === 0)\n resolve();\n });\n // @ts-ignore\n forkedProcess.on(\"message\", ({ error }) => {\n if (!error)\n return;\n reject(error);\n });\n });\n}\n\nexport { findFiles, runProcess };\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null],"names":["resolve","index","parse","fs","readdir","join","lstat","vite","extractComponentsConfigPlugin","path","rm"],"mappings":"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"}
|