66
77'use strict'
88
9- /**
10- * Cache of loaded parsers.
11- * @private
12- */
13-
14- var parsers = Object . create ( null )
15-
169/**
1710 * @typedef Parsers
1811 * @type {function }
@@ -37,7 +30,7 @@ exports = module.exports = bodyParser
3730Object . defineProperty ( exports , 'json' , {
3831 configurable : true ,
3932 enumerable : true ,
40- get : createParserGetter ( ' json')
33+ get : ( ) => require ( './lib/types/ json')
4134} )
4235
4336/**
@@ -48,7 +41,7 @@ Object.defineProperty(exports, 'json', {
4841Object . defineProperty ( exports , 'raw' , {
4942 configurable : true ,
5043 enumerable : true ,
51- get : createParserGetter ( ' raw')
44+ get : ( ) => require ( './lib/types/ raw')
5245} )
5346
5447/**
@@ -59,7 +52,7 @@ Object.defineProperty(exports, 'raw', {
5952Object . defineProperty ( exports , 'text' , {
6053 configurable : true ,
6154 enumerable : true ,
62- get : createParserGetter ( ' text')
55+ get : ( ) => require ( './lib/types/ text')
6356} )
6457
6558/**
@@ -70,7 +63,7 @@ Object.defineProperty(exports, 'text', {
7063Object . defineProperty ( exports , 'urlencoded' , {
7164 configurable : true ,
7265 enumerable : true ,
73- get : createParserGetter ( ' urlencoded')
66+ get : ( ) => require ( './lib/types/ urlencoded')
7467} )
7568
7669/**
@@ -85,46 +78,3 @@ Object.defineProperty(exports, 'urlencoded', {
8578function bodyParser ( ) {
8679 throw new Error ( 'The bodyParser() generic has been split into individual middleware to use instead.' )
8780}
88-
89- /**
90- * Create a getter for loading a parser.
91- * @private
92- */
93-
94- function createParserGetter ( name ) {
95- return function get ( ) {
96- return loadParser ( name )
97- }
98- }
99-
100- /**
101- * Load a parser module.
102- * @private
103- */
104-
105- function loadParser ( parserName ) {
106- var parser = parsers [ parserName ]
107-
108- if ( parser !== undefined ) {
109- return parser
110- }
111-
112- // this uses a switch for static require analysis
113- switch ( parserName ) {
114- case 'json' :
115- parser = require ( './lib/types/json' )
116- break
117- case 'raw' :
118- parser = require ( './lib/types/raw' )
119- break
120- case 'text' :
121- parser = require ( './lib/types/text' )
122- break
123- case 'urlencoded' :
124- parser = require ( './lib/types/urlencoded' )
125- break
126- }
127-
128- // store to prevent invoking require()
129- return ( parsers [ parserName ] = parser )
130- }
0 commit comments