Skip to content

Commit 663a06b

Browse files
committed
fix: ensure stdlib packages get resolved from latest code in doctest
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent 4d71b45 commit 663a06b

File tree

2 files changed

+18
-0
lines changed
  • lib/node_modules/@stdlib/_tools/eslint/rules

2 files changed

+18
-0
lines changed

lib/node_modules/@stdlib/_tools/eslint/rules/doctest/lib/main.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ var join = require( 'path' ).join;
2626
var format = require( 'util' ).format;
2727
var dirname = require( 'path' ).dirname;
2828
var logger = require( 'debug' );
29+
var rootDir = require( '@stdlib/_tools/utils/root-dir' );
2930
var Buffer = require( '@stdlib/buffer/ctor' );
3031
var isNull = require( '@stdlib/assert/is-null' );
3132
var isString = require( '@stdlib/assert/is-string' ).isPrimitive;
@@ -43,6 +44,7 @@ var windowShim = require( './window.js' );
4344
// VARIABLES //
4445

4546
var debug = logger( 'doctest' );
47+
var ROOT_DIR = rootDir();
4648
var RE_JSDOC = /\/\*\*[\s\S]+?\*\//g;
4749
var RE_ESLINT_INLINE = / ?\/\/ eslint-disable-(?:next-)?line[^\n]*\n/g;
4850
var RE_NEWLINE = /\r?\n/g;
@@ -137,9 +139,16 @@ function main( context ) {
137139
* @returns {*} required module
138140
*/
139141
function customRequire( path ) {
142+
var stdlibPath;
143+
140144
if ( startsWith( path, './' ) ) {
141145
return require( join( dir, path ) ); // eslint-disable-line stdlib/no-dynamic-require
142146
}
147+
// Force `@stdlib` packages to be loaded from `lib/node_modules/@stdlib`:
148+
if ( startsWith( path, '@stdlib/' ) ) {
149+
stdlibPath = join( ROOT_DIR, 'lib', 'node_modules', path );
150+
return require( stdlibPath ); // eslint-disable-line stdlib/no-dynamic-require
151+
}
143152
return require( path ); // eslint-disable-line stdlib/no-dynamic-require
144153
}
145154
scope = {

lib/node_modules/@stdlib/_tools/eslint/rules/jsdoc-doctest/lib/main.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ var format = require( 'util' ).format;
2727
var dirname = require( 'path' ).dirname;
2828
var logger = require( 'debug' );
2929
var parseJSDoc = require( 'doctrine' ).parse;
30+
var rootDir = require( '@stdlib/_tools/utils/root-dir' );
3031
var Buffer = require( '@stdlib/buffer/ctor' );
3132
var isNull = require( '@stdlib/assert/is-null' );
3233
var isNumber = require( '@stdlib/assert/is-number' );
@@ -46,6 +47,7 @@ var windowShim = require( './window.js' );
4647
// VARIABLES //
4748

4849
var debug = logger( 'jsdoc-doctest' );
50+
var ROOT_DIR = rootDir();
4951
var RE_ANNOTATION = /(?:\n|^)(?:var|let|const)? ?([a-zA-Z0-9._]+) ?=?[^;]*;\n\/\/ ?(returns|([A-Za-z][A-Za-z_0-9]*)? ?=>|throws) {0,1}([\s\S]*?)(\n|$)/g;
5052
var RE_CONSOLE = /console\.(?:dir|error|log)/;
5153
var RE_MODULE_TAG = /\* @module[^\n]*\n/g;
@@ -147,9 +149,16 @@ function main( context ) {
147149
* @returns {*} required module
148150
*/
149151
function customRequire( path ) {
152+
var stdlibPath;
153+
150154
if ( startsWith( path, './' ) ) {
151155
return require( join( dir, path ) ); // eslint-disable-line stdlib/no-dynamic-require
152156
}
157+
// Force `@stdlib` packages to be loaded from `lib/node_modules/@stdlib`:
158+
if ( startsWith( path, '@stdlib/' ) ) {
159+
stdlibPath = join( ROOT_DIR, 'lib', 'node_modules', path );
160+
return require( stdlibPath ); // eslint-disable-line stdlib/no-dynamic-require
161+
}
153162
return require( path ); // eslint-disable-line stdlib/no-dynamic-require
154163
}
155164
scope = {

0 commit comments

Comments
 (0)