shinkansen-gears 1.2.16 → 1.3.0

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/eslint.config.mjs CHANGED
@@ -139,10 +139,7 @@ export default [
139
139
  ...reactRules
140
140
  },
141
141
  settings: {
142
- ...reactSettings,
143
- 'import/resolver': {
144
- 'babel-module': {}
145
- }
142
+ ...reactSettings
146
143
  }
147
144
  }),
148
145
  standard({
@@ -169,10 +166,7 @@ export default [
169
166
  ...reactRules
170
167
  },
171
168
  settings: {
172
- ...reactSettings,
173
- 'import/resolver': {
174
- 'babel-module': {}
175
- }
169
+ ...reactSettings
176
170
  }
177
171
  }),
178
172
  /**
@@ -184,7 +178,6 @@ export default [
184
178
  ],
185
179
  ignores: [
186
180
  'src',
187
- 'stories',
188
181
  'test'
189
182
  ],
190
183
  languageOptions: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shinkansen-gears",
3
- "version": "1.2.16",
3
+ "version": "1.3.0",
4
4
  "description": "Shinkansen Gears",
5
5
  "keywords": [
6
6
  "Shinkansen",
@@ -40,7 +40,9 @@
40
40
  "prestorybook": "npm run build && npm run transform",
41
41
  "pretest": "npm run nvm",
42
42
  "storybook": "storybook dev -p 6008",
43
- "test": "cross-env NODE_ENV=test jest",
43
+ "test": "npm run test:mocha && npm run test:jest",
44
+ "test:jest": "cross-env NODE_ENV=test jest",
45
+ "test:mocha": "cross-env NODE_ENV=test mocha test --recursive",
44
46
  "transform": "cross-env DEBUG=shinkansen-gears* ./transform.sh"
45
47
  },
46
48
  "dependencies": {
@@ -62,24 +64,27 @@
62
64
  "@storybook/react": "7.6.20",
63
65
  "@storybook/react-webpack5": "7.6.20",
64
66
  "@types/babel__register": "^7.17.3",
67
+ "@types/chai": "^5.0.1",
65
68
  "@types/debug": "^4.1.12",
66
69
  "@types/jest": "^29.5.14",
70
+ "@types/mocha": "^10.0.10",
67
71
  "@types/react": "18.3.13",
68
72
  "@types/react-test-renderer": "^19.0.0",
69
73
  "@typescript-eslint/eslint-plugin": "^8.26.0",
70
74
  "@typescript-eslint/parser": "^8.26.0",
71
75
  "autoprefixer": "^10.4.20",
76
+ "chai": "^5.2.0",
72
77
  "clean-webpack-plugin": "^4.0.0",
73
78
  "core-js": "^3.41.0",
74
79
  "cross-env": "^7.0.3",
75
80
  "eslint": "^9.21.0",
76
- "eslint-import-resolver-babel-module": "^5.3.2",
77
81
  "eslint-plugin-react": "^7.37.4",
78
82
  "eslint-plugin-storybook": "^0.11.4",
79
83
  "globals": "^16.0.0",
80
84
  "husky": "^9.1.7",
81
85
  "jest": "^29.7.0",
82
86
  "mini-css-extract-plugin": "^2.9.2",
87
+ "mocha": "^11.1.0",
83
88
  "perfectionist": "^2.4.0",
84
89
  "postcss": "^8.5.3",
85
90
  "postcss-discard-comments": "^7.0.3",
@@ -95,13 +100,13 @@
95
100
  "remove-files-webpack-plugin": "^1.5.0",
96
101
  "sass": "^1.85.1",
97
102
  "sass-loader": "^16.0.5",
98
- "shinkansen-rails": "1.0.299",
103
+ "shinkansen-rails": "1.1.0",
99
104
  "storybook": "7.6.20",
100
105
  "webpack": "^5.98.0",
101
106
  "webpack-cli": "^6.0.1"
102
107
  },
103
108
  "peerDependencies": {
104
- "shinkansen-rails": "1.0.x"
109
+ "shinkansen-rails": "1.1.x"
105
110
  },
106
111
  "imports": {
107
112
  "#build/paths": "./build/paths.mjs",
@@ -112,7 +117,13 @@
112
117
  "#gears/gears": "./src/gears/index.cjs",
113
118
  "#gears/gears/*": "./src/gears/*/index.cjs",
114
119
  "#gears/gears/forward": "./src/gears/forward/index.cjs",
115
- "#gears/gears/reverse": "./src/gears/reverse/index.cjs"
120
+ "#gears/gears/reverse": "./src/gears/reverse/index.cjs",
121
+ "#gears/render": {
122
+ "require": "./src/render/index.cjs",
123
+ "import": "./src/render/index.mjs"
124
+ },
125
+ "#gears/render/forward": "./src/render/forward/index.cjs",
126
+ "#gears/render/reverse": "./src/render/reverse/index.cjs"
116
127
  },
117
128
  "exports": {
118
129
  ".": {
@@ -120,7 +131,14 @@
120
131
  "import": "./src/index.mjs"
121
132
  },
122
133
  "./gears": "./src/gears/index.cjs",
134
+ "./gears/*": "./src/gears/*/index.cjs",
123
135
  "./gears/forward": "./src/gears/forward/index.cjs",
124
- "./gears/reverse": "./src/gears/reverse/index.cjs"
136
+ "./gears/reverse": "./src/gears/reverse/index.cjs",
137
+ "./render": {
138
+ "require": "./src/render/index.cjs",
139
+ "import": "./src/render/index.mjs"
140
+ },
141
+ "./render/forward": "./src/render/forward/index.cjs",
142
+ "./render/reverse": "./src/render/reverse/index.cjs"
125
143
  }
126
144
  }
@@ -11,7 +11,10 @@ const log = debug('shinkansen-gears/gears/forward')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component // @ts-ignore
14
+ default: Forward // @ts-expect-error
15
15
  } = require('./index.jsx')
16
16
 
17
- module.exports = component
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Forward
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @typedef {GearsTypes.Forward.ForwardProps} ForwardProps
2
+ * @typedef {GearsTypes.Forward.ForwardProps} ForwardProps
3
3
  */
4
4
 
5
5
  import React from 'react'
@@ -10,8 +10,8 @@ import {
10
10
  } from 'react-router'
11
11
 
12
12
  /**
13
- * @param {ForwardProps} props
14
- * @returns {React.JSX.Element}
13
+ * @param {ForwardProps} props
14
+ * @returns {React.JSX.Element}
15
15
  */
16
16
  function Forward ({ pathname }) {
17
17
  const key = pathname.concat('-forward')
@@ -10,4 +10,11 @@ const log = debug('shinkansen-gears/gears')
10
10
 
11
11
  log('`shinkansen` is awake')
12
12
 
13
- module.exports = require('./index.jsx')
13
+ const {
14
+ default: Gears // @ts-expect-error
15
+ } = require('./index.jsx')
16
+
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Gears
@@ -1,18 +1,13 @@
1
1
  declare module '#gears/gears' {
2
2
  import React from 'react'
3
3
 
4
- type GearsProps = GearsTypes.GearsProps
5
- type GearsState = GearsTypes.GearsState
4
+ export type GearsProps = GearsTypes.GearsProps
5
+ export type GearsState = GearsTypes.GearsState
6
6
 
7
- export function renderReverse (reverse?: Record<string, unknown>, pattern?: string): React.JSX.Element | null
8
- export function renderForward (forward?: Record<string, unknown>, pattern?: string): React.JSX.Element | null
9
7
  export default class Gears extends React.Component<GearsProps, GearsState> {}
10
8
  }
11
9
 
12
10
  declare module 'shinkansen-gears/gears' {
13
- export type GearsProps = GearsTypes.GearsProps
14
- export type GearsState = GearsTypes.GearsState
15
-
16
11
  export { default } from '#gears/gears'
17
12
  export * from '#gears/gears'
18
13
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @typedef {GearsTypes.GearsProps} GearsProps
3
- * @typedef {GearsTypes.GearsState} GearsState
2
+ * @typedef {GearsTypes.GearsProps} GearsProps
3
+ * @typedef {GearsTypes.GearsState} GearsState
4
4
  */
5
5
 
6
6
  import React, { Component } from 'react'
@@ -11,42 +11,9 @@ import {
11
11
  Rails
12
12
  } from 'shinkansen-rails'
13
13
 
14
- import Reverse from './reverse/index.jsx'
15
- import Forward from './forward/index.jsx'
14
+ import renderReverse from '#gears/render/reverse'
16
15
 
17
- /**
18
- * @type {(reverse?: Record<string, unknown>, pattern?: string) => React.JSX.Element | null}
19
- */
20
- export function renderReverse (reverse, pattern) {
21
- if (Rails.go(reverse, pattern)) {
22
- const pathname = Rails.to(reverse, pattern)
23
-
24
- return (
25
- <Reverse
26
- pathname={pathname}
27
- />
28
- )
29
- }
30
-
31
- return null
32
- }
33
-
34
- /**
35
- * @type {(forward?: Record<string, unknown>, pattern?: string) => React.JSX.Element | null}
36
- */
37
- export function renderForward (forward, pattern) {
38
- if (Rails.go(forward, pattern)) {
39
- const pathname = Rails.to(forward, pattern)
40
-
41
- return (
42
- <Forward
43
- pathname={pathname}
44
- />
45
- )
46
- }
47
-
48
- return null
49
- }
16
+ import renderForward from '#gears/render/forward'
50
17
 
51
18
  export default class Gears extends Component {
52
19
  /**
@@ -57,9 +24,9 @@ export default class Gears extends Component {
57
24
  /**
58
25
  * Store latest 'props' in 'state'
59
26
  *
60
- * @param {GearsProps} props Latest props
61
- * @param {GearsState} state Current state
62
- * @returns {GearsState} Derived state
27
+ * @param {GearsProps} props Latest props
28
+ * @param {GearsState} state Current state
29
+ * @returns {GearsState} Derived state
63
30
  */
64
31
  static getDerivedStateFromProps ({ reverse, forward }, { reverse: R, forward: F }) {
65
32
  return {
@@ -71,9 +38,9 @@ export default class Gears extends Component {
71
38
  /**
72
39
  * Compare latest 'props' and 'state' for changes to 'pattern', 'reverse' or 'forward'
73
40
  *
74
- * @param {GearsProps} props Latest props
75
- * @param {GearsState} state Current state
76
- * @returns {boolean}
41
+ * @param {GearsProps} props Latest props
42
+ * @param {GearsState} state Current state
43
+ * @returns {boolean}
77
44
  */
78
45
  shouldComponentUpdate ({ pattern }, state) {
79
46
  const {
@@ -11,7 +11,10 @@ const log = debug('shinkansen-gears/gears/reverse')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component // @ts-ignore
14
+ default: Reverse // @ts-expect-error
15
15
  } = require('./index.jsx')
16
16
 
17
- module.exports = component
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Reverse
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @typedef {GearsTypes.Reverse.ReverseProps} ReverseProps
2
+ * @typedef {GearsTypes.Reverse.ReverseProps} ReverseProps
3
3
  */
4
4
 
5
5
  import React from 'react'
@@ -10,8 +10,8 @@ import {
10
10
  } from 'react-router'
11
11
 
12
12
  /**
13
- * @param {ReverseProps} props
14
- * @returns {React.JSX.Element}
13
+ * @param {ReverseProps} props
14
+ * @returns {React.JSX.Element}
15
15
  */
16
16
  function Reverse ({ pathname }) {
17
17
  const key = pathname.concat('-reverse')
package/src/index.cjs CHANGED
@@ -10,12 +10,14 @@ const log = debug('shinkansen-gears')
10
10
 
11
11
  log('`shinkansen` is awake')
12
12
 
13
- const {
14
- default: Gears,
15
- renderReverse,
16
- renderForward
17
- } = require('./gears/index.cjs')
13
+ const Gears = require('./gears/index.cjs')
14
+ const Reverse = require('./gears/reverse/index.cjs')
15
+ const Forward = require('./gears/forward/index.cjs')
16
+ const renderReverse = require('./render/reverse/index.cjs')
17
+ const renderForward = require('./render/forward/index.cjs')
18
18
 
19
19
  module.exports.Gears = Gears
20
+ module.exports.Reverse = Reverse
21
+ module.exports.Forward = Forward
20
22
  module.exports.renderReverse = renderReverse
21
23
  module.exports.renderForward = renderForward
package/src/index.d.cts CHANGED
@@ -1,5 +1,19 @@
1
1
  export {
2
- default as Gears,
3
- renderReverse,
4
- renderForward
2
+ default as Gears
5
3
  } from '#gears/gears'
4
+
5
+ export {
6
+ default as Reverse
7
+ } from '#gears/gears/reverse'
8
+
9
+ export {
10
+ default as Forward
11
+ } from '#gears/gears/forward'
12
+
13
+ export {
14
+ default as renderReverse
15
+ } from '#gears/render/reverse'
16
+
17
+ export {
18
+ default as renderForward
19
+ } from '#gears/render/forward'
package/src/index.d.mts CHANGED
@@ -1,5 +1,19 @@
1
1
  export {
2
- default as Gears,
3
- renderReverse,
4
- renderForward
2
+ default as Gears
5
3
  } from '#gears/gears'
4
+
5
+ export {
6
+ default as Reverse
7
+ } from '#gears/gears/reverse'
8
+
9
+ export {
10
+ default as Forward
11
+ } from '#gears/gears/forward'
12
+
13
+ export {
14
+ default as renderReverse
15
+ } from '#gears/render/reverse'
16
+
17
+ export {
18
+ default as renderForward
19
+ } from '#gears/render/forward'
package/src/index.mjs CHANGED
@@ -1,11 +1,19 @@
1
1
  import debug from 'debug'
2
2
 
3
+ import Gears from './gears/index.cjs'
4
+ import Reverse from './gears/reverse/index.cjs'
5
+ import Forward from './gears/forward/index.cjs'
6
+ import renderReverse from './render/reverse/index.cjs'
7
+ import renderForward from './render/forward/index.cjs'
8
+
3
9
  const log = debug('shinkansen-gears')
4
10
 
5
11
  log('`shinkansen` is awake')
6
12
 
7
13
  export {
8
14
  Gears,
15
+ Reverse,
16
+ Forward,
9
17
  renderReverse,
10
18
  renderForward
11
- } from './index.cjs'
19
+ }
@@ -0,0 +1,20 @@
1
+ require('@babel/register')({
2
+ ignore: [
3
+ /node_modules\/(?!shinkansen|@modernpoacher)/
4
+ ]
5
+ })
6
+
7
+ const debug = require('debug')
8
+
9
+ const log = debug('shinkansen-gears/render/forward')
10
+
11
+ log('`shinkansen` is awake')
12
+
13
+ const {
14
+ default: renderForward // @ts-expect-error
15
+ } = require('./index.jsx')
16
+
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = renderForward
@@ -0,0 +1 @@
1
+ export { default } from '#gears/render/forward'
@@ -0,0 +1,9 @@
1
+ declare module '#gears/render/forward' {
2
+ import type React from 'react'
3
+
4
+ export default function renderForward (forward?: Record<string, unknown>, pattern?: string): React.JSX.Element | null
5
+ }
6
+
7
+ declare module 'shinkansen-gears/render/forward' {
8
+ export { default } from '#gears/render/forward'
9
+ }
@@ -0,0 +1,24 @@
1
+ import React from 'react'
2
+
3
+ import {
4
+ Rails
5
+ } from 'shinkansen-rails'
6
+
7
+ import Forward from '#gears/gears/forward'
8
+
9
+ /**
10
+ * @type {(forward?: Record<string, unknown>, pattern?: string) => React.JSX.Element | null}
11
+ */
12
+ export default function renderForward (forward, pattern) {
13
+ if (Rails.go(forward, pattern)) {
14
+ const pathname = Rails.to(forward, pattern)
15
+
16
+ return (
17
+ <Forward
18
+ pathname={pathname}
19
+ />
20
+ )
21
+ }
22
+
23
+ return null
24
+ }
@@ -0,0 +1,17 @@
1
+ require('@babel/register')({
2
+ ignore: [
3
+ /node_modules\/(?!shinkansen|@modernpoacher)/
4
+ ]
5
+ })
6
+
7
+ const debug = require('debug')
8
+
9
+ const log = debug('shinkansen-gears/render')
10
+
11
+ log('`shinkansen` is awake')
12
+
13
+ const renderReverse = require('./reverse/index.cjs')
14
+ const renderForward = require('./forward/index.cjs')
15
+
16
+ module.exports.renderReverse = renderReverse
17
+ module.exports.renderForward = renderForward
@@ -0,0 +1,7 @@
1
+ export {
2
+ default as renderReverse
3
+ } from '#gears/render/reverse'
4
+
5
+ export {
6
+ default as renderForward
7
+ } from '#gears/render/forward'
@@ -0,0 +1,7 @@
1
+ export {
2
+ default as renderReverse
3
+ } from '#gears/render/reverse'
4
+
5
+ export {
6
+ default as renderForward
7
+ } from '#gears/render/forward'
@@ -0,0 +1,13 @@
1
+ import debug from 'debug'
2
+
3
+ import renderReverse from './reverse/index.cjs'
4
+ import renderForward from './forward/index.cjs'
5
+
6
+ const log = debug('shinkansen-gears/render')
7
+
8
+ log('`shinkansen` is awake')
9
+
10
+ export {
11
+ renderReverse,
12
+ renderForward
13
+ }
@@ -0,0 +1,20 @@
1
+ require('@babel/register')({
2
+ ignore: [
3
+ /node_modules\/(?!shinkansen|@modernpoacher)/
4
+ ]
5
+ })
6
+
7
+ const debug = require('debug')
8
+
9
+ const log = debug('shinkansen-gears/render/reverse')
10
+
11
+ log('`shinkansen` is awake')
12
+
13
+ const {
14
+ default: renderReverse // @ts-expect-error
15
+ } = require('./index.jsx')
16
+
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = renderReverse
@@ -0,0 +1 @@
1
+ export { default } from '#gears/render/reverse'
@@ -0,0 +1,9 @@
1
+ declare module '#gears/render/reverse' {
2
+ import type React from 'react'
3
+
4
+ export default function renderReverse (reverse?: Record<string, unknown>, pattern?: string): React.JSX.Element | null
5
+ }
6
+
7
+ declare module 'shinkansen-gears/render/reverse' {
8
+ export { default } from '#gears/render/reverse'
9
+ }
@@ -0,0 +1,24 @@
1
+ import React from 'react'
2
+
3
+ import {
4
+ Rails
5
+ } from 'shinkansen-rails'
6
+
7
+ import Reverse from '#gears/gears/reverse'
8
+
9
+ /**
10
+ * @type {(reverse?: Record<string, unknown>, pattern?: string) => React.JSX.Element | null}
11
+ */
12
+ export default function renderReverse (reverse, pattern) {
13
+ if (Rails.go(reverse, pattern)) {
14
+ const pathname = Rails.to(reverse, pattern)
15
+
16
+ return (
17
+ <Reverse
18
+ pathname={pathname}
19
+ />
20
+ )
21
+ }
22
+
23
+ return null
24
+ }