Spaces:
Sleeping
Sleeping
pythonic-rag-FastAPIReact
/
frontend
/node_modules
/adjust-sourcemap-loader
/lib
/process
/encode-sources-with.js
| ; | |
| var getFieldAsFn = require('./get-field-as-fn'), | |
| CustomError = require('./get-error'); | |
| /** | |
| * Create an encoder for output sources using the given codec hash | |
| * @throws Error Where the given codec is missing an encode function | |
| * @this {object} A loader or compilation | |
| * @param {{encode:function}} codec A single codec with an `encode` function | |
| * @returns {function(string):string|Error|false} An encode function that takes an absolute path | |
| */ | |
| function encodeSourcesWith(codec) { | |
| /* jshint validthis:true */ | |
| var context = this, | |
| encoder = getFieldAsFn('encode')(codec); | |
| if (!encoder) { | |
| return new CustomError('Specified format does not support encoding (it lacks an "encoder" function)'); | |
| } | |
| else { | |
| return function encode(absoluteSource) { | |
| // call the encoder | |
| var encoded; | |
| try { | |
| encoded = absoluteSource && encoder.call(context, absoluteSource); | |
| } | |
| catch (exception) { | |
| return getNamedError(exception); | |
| } | |
| return encoded; | |
| function getNamedError(details) { | |
| var name = codec.name || '(unnamed)', | |
| message = [ | |
| 'Encoding with codec: ' + name, | |
| 'Absolute source: ' + absoluteSource, | |
| details && (details.stack ? details.stack : details) | |
| ] | |
| .filter(Boolean) | |
| .join('\n'); | |
| return new Error(message); | |
| } | |
| }; | |
| } | |
| } | |
| module.exports = encodeSourcesWith; | |