1 | const { data, string, parameterized } = require("@algebraic/type");
|
2 | const { Cause, field, event } = require("@cause/cause");
|
3 |
|
4 | const Request = data `Request` (
|
5 | input => string );
|
6 |
|
7 | const presets = [
|
8 | [require.resolve("@isomorphic/babel-preset"), { browser:true, react:true }]
|
9 | ];
|
10 | const plugins = [
|
11 | [require.resolve("@isomorphic/compile-javascript/plugins/babel-plugin-transform-inline-global-expressions"),
|
12 | {
|
13 | process:
|
14 | {
|
15 | browser: true,
|
16 | env: { NODE_ENV: "development" }
|
17 | }
|
18 | }],
|
19 | [require.resolve("@isomorphic/reduce-javascript/babel-plugin")]
|
20 | ];
|
21 |
|
22 | const Plugin = Cause(`Plugin`,
|
23 | {
|
24 | [field `path`]: -1,
|
25 | [field `cache`]: -1,
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 | [event._on (Request)]: (plugin, { input }) =>
|
33 | {
|
34 | try {
|
35 | const options = { presets, plugins };
|
36 | const x = [plugin, [require("@isomorphic/compile-javascript")({ input, cache:plugin.cache, options })]];
|
37 |
|
38 | return x;
|
39 | }
|
40 | catch (e)
|
41 | {
|
42 | console.log(e);
|
43 | } }
|
44 | });
|
45 |
|
46 | Plugin.Request = Request;
|
47 |
|
48 | module.exports = Plugin;
|