[d24f17c] | 1 | "use strict";
|
---|
| 2 |
|
---|
| 3 | var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
---|
| 4 | var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
|
---|
| 5 | exports.__esModule = true;
|
---|
| 6 | exports.readFile = void 0;
|
---|
| 7 | var _ramda = require("ramda");
|
---|
| 8 | var plugins = _interopRequireWildcard(require("../util/plugins.cjs"));
|
---|
| 9 | var _ResolveError = _interopRequireDefault(require("../errors/ResolveError.cjs"));
|
---|
| 10 | var _UnmatchedResolverError = _interopRequireDefault(require("../errors/UnmatchedResolverError.cjs"));
|
---|
| 11 | /**
|
---|
| 12 | * Reads the given file, using the configured resolver plugins.
|
---|
| 13 | */
|
---|
| 14 | // eslint-disable-next-line import/prefer-default-export
|
---|
| 15 | const readFile = async (file, options) => {
|
---|
| 16 | const optsBoundResolvers = options.resolve.resolvers.map(resolver => {
|
---|
| 17 | const clonedResolver = Object.create(resolver);
|
---|
| 18 | return Object.assign(clonedResolver, options.resolve.resolverOpts);
|
---|
| 19 | });
|
---|
| 20 | const resolvers = await plugins.filter('canRead', file, optsBoundResolvers);
|
---|
| 21 |
|
---|
| 22 | // we couldn't find any resolver for this File
|
---|
| 23 | if ((0, _ramda.isEmpty)(resolvers)) {
|
---|
| 24 | throw new _UnmatchedResolverError.default(file.uri);
|
---|
| 25 | }
|
---|
| 26 | try {
|
---|
| 27 | const {
|
---|
| 28 | result
|
---|
| 29 | } = await plugins.run('read', [file], resolvers);
|
---|
| 30 | return result;
|
---|
| 31 | } catch (error) {
|
---|
| 32 | throw new _ResolveError.default(`Error while reading file "${file.uri}"`, {
|
---|
| 33 | cause: error
|
---|
| 34 | });
|
---|
| 35 | }
|
---|
| 36 | };
|
---|
| 37 | exports.readFile = readFile; |
---|