Skip to content

Commit

Permalink
refactor!: Flatten exports (#677)
Browse files Browse the repository at this point in the history
  • Loading branch information
taion committed Apr 1, 2020
1 parent 54f4e91 commit 42b4944
Show file tree
Hide file tree
Showing 58 changed files with 1,468 additions and 290 deletions.
13 changes: 0 additions & 13 deletions .babelrc

This file was deleted.

14 changes: 14 additions & 0 deletions .babelrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module.exports = (api) => ({
presets: [
[
'@4c',
{
runtime: true,
corejs: 3,
targets: {},
modules: api.env() === 'esm' ? false : 'commonjs',
},
],
],
plugins: [api.env() !== 'esm' && 'add-module-exports'].filter(Boolean),
});
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
!.babelrc.js
!.eslintrc.js

**/coverage/
**/lib/
**/node_modules/
14 changes: 0 additions & 14 deletions .eslintrc

This file was deleted.

12 changes: 12 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module.exports = {
extends: [
'4catalyzer-react',
'4catalyzer-jest',
'prettier',
'prettier/react',
],
plugins: ['prettier'],
rules: {
'prettier/prettier': 'error',
},
};
4 changes: 3 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ language: node_js
node_js:
- stable

cache: yarn
cache:
yarn: true
npm: true

after_script:
- node_modules/.bin/codecov
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -897,12 +897,12 @@ You can also manually replace the route configuration and rerun the match by cal
### Server-side rendering
Found supports server-side rendering for universal applications. Functionality specific to server-side rendering is available in `found/lib/server`.
Found supports server-side rendering for universal applications. Functionality specific to server-side rendering is available in `found/server`.
To render your application on the server, use `getFarceResult`.
```js
import { getFarceResult } from 'found/lib/server';
import { getFarceResult } from 'found/server';

/* ... */

Expand Down Expand Up @@ -975,7 +975,7 @@ Found exposes lower-level functionality for doing server-side rendering for use
```js
import { getStoreRenderArgs } from 'found';
import { RouterProvider } from 'found/lib/server';
import { RouterProvider } from 'found/server';

/* ... */

Expand Down Expand Up @@ -1043,13 +1043,13 @@ import { getStoreRenderArgs } from 'found';
### Minimizing bundle size
The top-level `found` package exports everything available in this library. It is unlikely that any single application will use all the features available. As such, for real applications, you should import the modules that you need from `found/lib` directly, to pull in only the code that you use.
The top-level `found` package exports everything available in this library. It is unlikely that any single application will use all the features available. As such, for real applications, you should import the modules you need directly, to pull in only the code that you use.
```js
import createBrowserRouter from 'found/lib/createBrowserRouter';
import makeRouteConfig from 'found/lib/makeRouteConfig';
import { routerShape } from 'found/lib/PropTypes';
import Route from 'found/lib/Route';
import createBrowserRouter from 'found/createBrowserRouter';
import makeRouteConfig from 'found/makeRouteConfig';
import { routerShape } from 'found/PropTypes';
import Route from 'found/Route';

// Instead of:
// import {
Expand Down
10 changes: 0 additions & 10 deletions examples/.eslintrc

This file was deleted.

10 changes: 10 additions & 0 deletions examples/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module.exports = {
env: {
browser: true,
},
rules: {
// Don't fail linting if example dependencies aren't installed.
'import/extensions': 'off',
'import/no-unresolved': 'off',
},
};
13 changes: 0 additions & 13 deletions examples/hot-reloading/.babelrc

This file was deleted.

14 changes: 14 additions & 0 deletions examples/hot-reloading/.babelrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module.exports = {
presets: [
[
'@babel/env',
{
loose: true,
useBuiltIns: 'usage',
corejs: 3,
},
],
'@babel/react',
],
plugins: ['react-hot-loader/babel'],
};
10 changes: 0 additions & 10 deletions examples/universal-redux/.babelrc

This file was deleted.

13 changes: 13 additions & 0 deletions examples/universal-redux/.babelrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module.exports = {
presets: [
[
'@babel/env',
{
loose: true,
useBuiltIns: 'usage',
corejs: 3,
},
],
'@babel/react',
],
};
10 changes: 0 additions & 10 deletions examples/universal/.babelrc

This file was deleted.

13 changes: 13 additions & 0 deletions examples/universal/.babelrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module.exports = {
presets: [
[
'@babel/env',
{
loose: true,
useBuiltIns: 'usage',
corejs: 3,
},
],
'@babel/react',
],
};
20 changes: 14 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,20 @@
"files": [
"lib"
],
"main": "lib/index.js",
"main": "lib/cjs/index.js",
"module": "lib/esm/index.js",
"types": "lib/index.d.ts",
"scripts": {
"build": "babel src -d lib --delete-dir-on-start && cpy types/*.d.ts lib && cpy types/server/*.d.ts lib/server",
"build": "rimraf lib && npm run build:cjs && npm run build:esm && npm run build:pick && npm run build:types",
"build:cjs": "babel -d lib/cjs src",
"build:esm": "babel --env-name esm -d lib/esm src",
"build:pick": "cherry-pick --cjs-dir cjs --esm-dir esm --cwd lib ../src",
"build:types": "cpy types/*.d.ts lib",
"format": "eslint --fix . && npm run prettier -- --write",
"lint": "eslint . && npm run prettier -- -l",
"prepublish": "npm run build",
"prettier": "prettier --ignore-path .eslintignore '**/*.{md,ts,tsx}'",
"release": "rollout",
"tdd": "jest --watch",
"test": "npm run lint && npm run test:ts && npm run testonly -- --coverage",
"test:ts": "dtslint types",
Expand Down Expand Up @@ -66,6 +72,7 @@
"dependencies": {
"@babel/runtime-corejs3": "^7.6.2",
"@restart/context": "^2.1.4",
"@types/react": "^16.9.31",
"farce": "^0.4.1",
"invariant": "^2.2.4",
"is-promise": "^2.1.0",
Expand All @@ -82,17 +89,18 @@
},
"devDependencies": {
"@4c/babel-preset": "^7.3.4",
"@4c/rollout": "^2.1.5",
"@babel/cli": "^7.8.4",
"@babel/core": "^7.9.0",
"@types/react": "^16.9.27",
"@types/react-dom": "^16.9.5",
"@types/react-dom": "^16.9.6",
"babel-jest": "^25.2.4",
"babel-plugin-add-module-exports": "^1.0.2",
"cherry-pick": "^0.5.0",
"codecov": "^3.6.5",
"cpy-cli": "^3.1.0",
"delay": "^4.3.0",
"doctoc": "^1.4.0",
"dtslint": "^3.4.0",
"dtslint": "^3.4.1",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.2",
"eslint": "^6.8.0",
Expand All @@ -107,7 +115,7 @@
"eslint-plugin-react-hooks": "^3.0.0",
"husky": "^4.2.3",
"jest": "^25.2.4",
"lint-staged": "^10.1.0",
"lint-staged": "^10.1.1",
"p-defer": "^3.0.0",
"prettier": "^2.0.2",
"react": "^16.13.1",
Expand Down
4 changes: 2 additions & 2 deletions src/createBaseRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import warning from 'warning';

import RouterContext from './RouterContext';
import createRender from './createRender';
import createStoreRouterObject from './utils/createStoreRouterObject';
import resolveRenderArgs from './utils/resolveRenderArgs';
import createStoreRouterObject from './createStoreRouterObject';
import resolveRenderArgs from './resolveRenderArgs';

export default function createBaseRouter({
renderPending,
Expand Down
2 changes: 1 addition & 1 deletion src/createFarceRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import React from 'react';
import { Provider } from 'react-redux';

import createConnectedRouter from './createConnectedRouter';
import createFarceStore from './utils/createFarceStore';
import createFarceStore from './createFarceStore';

export default function createFarceRouter({
store,
Expand Down
6 changes: 3 additions & 3 deletions src/utils/createFarceStore.js → src/createFarceStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import createHistoryEnhancer from 'farce/createHistoryEnhancer';
import queryMiddleware from 'farce/queryMiddleware';
import { combineReducers, compose, createStore } from 'redux';

import Matcher from '../Matcher';
import createMatchEnhancer from '../createMatchEnhancer';
import foundReducer from '../foundReducer';
import Matcher from './Matcher';
import createMatchEnhancer from './createMatchEnhancer';
import foundReducer from './foundReducer';

export default function createFarceStore({
historyProtocol,
Expand Down
2 changes: 1 addition & 1 deletion src/createInitialFarceRouter.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import createFarceRouter from './createFarceRouter';
import createFarceStore from './createFarceStore';
import getStoreRenderArgs from './getStoreRenderArgs';
import createFarceStore from './utils/createFarceStore';

export default async function createInitialFarceRouter({
historyProtocol,
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/getRenderArgs.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import resolveRenderArgs from './utils/resolveRenderArgs';
import resolveRenderArgs from './resolveRenderArgs';

export default async function getRenderArgs(router, props) {
let elements;
Expand Down
2 changes: 1 addition & 1 deletion src/getStoreRenderArgs.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import createStoreRouterObject from './createStoreRouterObject';
import getRenderArgs from './getRenderArgs';
import createStoreRouterObject from './utils/createStoreRouterObject';

// This function returns a promise. It doesn't need to be an async function
// because it doesn't use the promise's value.
Expand Down
3 changes: 3 additions & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ export createBrowserRouter from './createBrowserRouter';
export createConnectedRouter from './createConnectedRouter';
export createElements from './createElements';
export createFarceRouter from './createFarceRouter';
export createFarceStore from './createFarceStore';
export createInitialBrowserRouter from './createInitialBrowserRouter';
export createInitialFarceRouter from './createInitialFarceRouter';
export createMatchEnhancer from './createMatchEnhancer';
export createRender from './createRender';
export createStoreRouterObject from './createStoreRouterObject';
export ElementsRenderer from './ElementsRenderer';
export foundReducer from './foundReducer';
export getRenderArgs from './getRenderArgs';
Expand All @@ -22,6 +24,7 @@ export { matcherShape, matchShape, routerShape } from './PropTypes';
export Redirect from './Redirect';
export RedirectException from './RedirectException';
export resolver from './resolver';
export resolveRenderArgs from './resolveRenderArgs';
export * as ResolverUtils from './ResolverUtils';
export Route from './Route';
export RouterContext from './RouterContext';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import HttpError from '../HttpError';
import HttpError from './HttpError';

function foldElements(elementsRaw, routeIndices) {
const elements = [];
Expand Down

0 comments on commit 42b4944

Please sign in to comment.