Skip to content

Commit df8f9b4

Browse files
committed
feat: use v2 scaffold
1 parent 2ef1591 commit df8f9b4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+7209
-679
lines changed

.babelrc.js

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
module.exports = {
2+
presets: [
3+
'@babel/preset-env',
4+
'@babel/preset-typescript',
5+
'@babel/preset-react',
6+
],
7+
plugins: [
8+
[
9+
'@babel/plugin-transform-react-jsx',
10+
{
11+
throwIfNamespace: false, // defaults to true
12+
runtime: 'automatic', // defaults to classic
13+
importSource: '@state-less/react-server/dist/jsxRenderer', // defaults to react
14+
},
15+
],
16+
[
17+
'@babel/plugin-transform-runtime',
18+
{
19+
regenerator: true,
20+
},
21+
],
22+
],
23+
ignore: ['**/node_modules/**'],
24+
};

babel.config.json

-34
This file was deleted.

dist/config.d.ts

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
declare const LOG_LEVEL: string, PORT: string;
2+
export { LOG_LEVEL, PORT };

dist/config.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"use strict";
2+
3+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4+
Object.defineProperty(exports, "__esModule", {
5+
value: true
6+
});
7+
exports.PORT = exports.LOG_LEVEL = void 0;
8+
var _dotenv = _interopRequireDefault(require("dotenv"));
9+
_dotenv["default"].config();
10+
var _process$env = process.env,
11+
LOG_LEVEL = _process$env.LOG_LEVEL,
12+
PORT = _process$env.PORT;
13+
exports.PORT = PORT;
14+
exports.LOG_LEVEL = LOG_LEVEL;

dist/index.d.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"use strict";

dist/index.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export declare const reactServer: any;

dist/index.js

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
"use strict";
2+
3+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4+
Object.defineProperty(exports, "__esModule", {
5+
value: true
6+
});
7+
exports.reactServer = void 0;
8+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10+
var _apolloServerExpress = require("apollo-server-express");
11+
var _graphqlTools = require("graphql-tools");
12+
var _graphql = require("graphql");
13+
var _http = require("http");
14+
var _express = _interopRequireDefault(require("express"));
15+
var _subscriptionsTransportWs = require("subscriptions-transport-ws");
16+
var _reactServer = require("@state-less/react-server");
17+
var _instances = require("./instances");
18+
var _resolvers = require("./resolvers");
19+
var _schema = require("./schema");
20+
var _jsxRuntime = require("@state-less/react-server/dist/jsxRenderer/jsx-runtime");
21+
_reactServer.Dispatcher.getCurrent().setStore(_instances.store);
22+
var app = (0, _express["default"])();
23+
var PORT = 4000;
24+
var schema = (0, _graphqlTools.makeExecutableSchema)({
25+
typeDefs: _schema.typeDefs,
26+
resolvers: _resolvers.resolvers
27+
});
28+
var apolloServer = new _apolloServerExpress.ApolloServer({
29+
schema: schema
30+
});
31+
32+
// Create a HTTP server
33+
var httpServer = (0, _http.createServer)(app);
34+
35+
// Create a WebSocket server for subscriptions
36+
_subscriptionsTransportWs.SubscriptionServer.create({
37+
schema: schema,
38+
execute: _graphql.execute,
39+
subscribe: _graphql.subscribe,
40+
onConnect: function onConnect() {
41+
console.log('Client connected');
42+
},
43+
onDisconnect: function onDisconnect() {
44+
console.log('Client disconnected');
45+
}
46+
}, {
47+
server: httpServer,
48+
path: apolloServer.graphqlPath
49+
});
50+
var context = (0, _reactServer.createContext)();
51+
var reactServer = (0, _jsxRuntime.jsx)(_reactServer.Server, {
52+
children: (0, _jsxRuntime.jsx)(_reactServer.TestComponent, {}, "test")
53+
}, "server");
54+
exports.reactServer = reactServer;
55+
var node = (0, _reactServer.render)(reactServer, null, null);
56+
console.log('NODE', node);
57+
(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
58+
return _regenerator["default"].wrap(function _callee$(_context) {
59+
while (1) switch (_context.prev = _context.next) {
60+
case 0:
61+
_context.next = 2;
62+
return apolloServer.start();
63+
case 2:
64+
apolloServer.applyMiddleware({
65+
app: app
66+
});
67+
httpServer.listen(PORT, function () {
68+
console.log("Server listening on port ".concat(PORT, "."));
69+
});
70+
case 4:
71+
case "end":
72+
return _context.stop();
73+
}
74+
}, _callee);
75+
}))();

dist/instances.d.ts

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { PubSub } from 'graphql-subscriptions';
2+
export declare const pubsub: PubSub;
3+
export declare const store: any;

dist/instances.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
exports.store = exports.pubsub = void 0;
7+
var _graphqlSubscriptions = require("graphql-subscriptions");
8+
var _reactServer = require("@state-less/react-server");
9+
var pubsub = new _graphqlSubscriptions.PubSub();
10+
exports.pubsub = pubsub;
11+
var store = new _reactServer.Store({
12+
scope: 'root'
13+
});
14+
exports.store = store;

dist/lib/format.d.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
declare const isResponseTime: (obj: any) => any;
2+
declare const formatResponseTime: (obj: any) => string;
3+
declare const hasLogCfg: (obj: any) => any;
4+
declare const formatLogCfg: (obj: any) => string;
5+
export { isResponseTime, formatResponseTime, hasLogCfg, formatLogCfg };

dist/lib/format.js

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
"use strict";
2+
3+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4+
Object.defineProperty(exports, "__esModule", {
5+
value: true
6+
});
7+
exports.isResponseTime = exports.hasLogCfg = exports.formatResponseTime = exports.formatLogCfg = void 0;
8+
var _chalk = _interopRequireDefault(require("chalk"));
9+
var statusColors = {
10+
200: 'green',
11+
300: 'blue',
12+
400: 'orange',
13+
500: 'red'
14+
};
15+
var timingColors = {
16+
0: 'green',
17+
200: 'yellow',
18+
500: 'orange',
19+
1000: 'red'
20+
};
21+
var isResponseTime = function isResponseTime(obj) {
22+
return obj && obj.req && obj.res && obj.time;
23+
};
24+
exports.isResponseTime = isResponseTime;
25+
var getRangeValue = function getRangeValue(obj) {
26+
return function (value, def) {
27+
var key = Object.keys(obj).reduce(function (acc, cur) {
28+
return value > cur ? cur : acc;
29+
});
30+
return obj[key] || def;
31+
};
32+
};
33+
var getStatusColor = getRangeValue(statusColors);
34+
var getTimingColor = getRangeValue(timingColors);
35+
var formatResponseTime = function formatResponseTime(obj) {
36+
var req = obj.req,
37+
res = obj.res,
38+
time = obj.time;
39+
var method = req.method,
40+
url = req.url;
41+
var statusCode = res.statusCode;
42+
var statusColor = getStatusColor(statusCode);
43+
if (statusColor) {
44+
statusCode = _chalk["default"][statusColor](statusCode);
45+
}
46+
var timingColor = getTimingColor(time);
47+
if (timingColor) {
48+
time = _chalk["default"][timingColor](time.toFixed(2));
49+
}
50+
return "".concat(statusCode, " ").concat(method, " ").concat(url, " - ").concat(time, "ms");
51+
};
52+
exports.formatResponseTime = formatResponseTime;
53+
var hasLogCfg = function hasLogCfg(obj) {
54+
return obj && obj.LOG_LEVEL || obj.LOG_SCOPE || obj.LOG_FILTER;
55+
};
56+
exports.hasLogCfg = hasLogCfg;
57+
var formatLogCfg = function formatLogCfg(obj) {
58+
return "LogConfig[".concat(JSON.stringify(obj), "]");
59+
};
60+
exports.formatLogCfg = formatLogCfg;

dist/lib/internals.d.ts

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { ClientRequest, Maybe, ReactServerNode } from './types';
2+
export declare const Lifecycle: <T>(Component: (props: any, options: {
3+
request: Maybe<ClientRequest>;
4+
}) => ReactServerNode<T>, props: Record<string, any>, { key, request }: {
5+
key: string;
6+
request: Maybe<ClientRequest>;
7+
}) => ReactServerNode<T>;
8+
export declare const render: <T>(tree: ReactServerComponent<T>, request?: Maybe<ClientRequest>, parent?: ReactServerNode<unknown> | null) => ReactServerNode<T>;

dist/lib/internals.js

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
exports.render = exports.Lifecycle = void 0;
7+
var _reactServer = require("@state-less/react-server");
8+
var _types = require("./types");
9+
const Lifecycle = (Component, props, {
10+
key,
11+
request
12+
}) => {
13+
_reactServer.Dispatcher.getCurrent().addCurrentComponent({
14+
Component,
15+
props,
16+
key
17+
});
18+
_reactServer.Dispatcher.getCurrent().setClientContext(request);
19+
const rendered = Component({
20+
...props
21+
}, {
22+
request
23+
});
24+
_reactServer.Dispatcher.getCurrent().popCurrentComponent();
25+
return {
26+
__typename: Component.name,
27+
key,
28+
...rendered
29+
};
30+
};
31+
exports.Lifecycle = Lifecycle;
32+
const render = (tree, request = null, parent = null) => {
33+
const {
34+
Component,
35+
key,
36+
props
37+
} = tree;
38+
console.log('Render', Component, props);
39+
const processedChildren = [];
40+
let node = Lifecycle(Component, props, {
41+
key,
42+
request
43+
});
44+
if ((0, _types.isReactServerComponent)(node)) {
45+
node = render(node, request, node);
46+
}
47+
const children = Array.isArray(props.children) ? props.children : [props.children].filter(Boolean);
48+
console.log('Render children', children);
49+
for (const child of children) {
50+
console.log('Render child', child, children);
51+
if (!(0, _types.isReactServerComponent)(child)) continue;
52+
let childResult = null;
53+
do {
54+
_reactServer.Dispatcher.getCurrent().setParentNode((childResult || child).key, node);
55+
childResult = render(childResult || child, request, node);
56+
console.log('Render parent', Component, childResult.key, node);
57+
} while ((0, _types.isReactServerComponent)(childResult));
58+
processedChildren.push(childResult);
59+
}
60+
node.children = processedChildren;
61+
if (parent === null) {
62+
_reactServer.Dispatcher.getCurrent().setRootComponent(node);
63+
}
64+
return {
65+
key,
66+
...node
67+
};
68+
};
69+
exports.render = render;

dist/lib/logger.d.ts

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/** Create the base logger instance. With a default LOG_LEVEL of 'debug' if no environment variable is present */
2+
declare const logger: any;
3+
/** Export default logger instance */
4+
export default logger;

0 commit comments

Comments
 (0)