pax_global_header00006660000000000000000000000064126610054330014512gustar00rootroot0000000000000052 comment=6dd2291332bed764c56302ccdd14da8a213249a1 require-main-filename-1.0.1/000077500000000000000000000000001266100543300156655ustar00rootroot00000000000000require-main-filename-1.0.1/.gitignore000066400000000000000000000000431266100543300176520ustar00rootroot00000000000000node_modules .DS_Store .nyc_output require-main-filename-1.0.1/.travis.yml000066400000000000000000000001241266100543300177730ustar00rootroot00000000000000language: node_js os: - linux node_js: - "0.10" - "0.12" - "4.1" - "node" require-main-filename-1.0.1/LICENSE.txt000066400000000000000000000013331266100543300175100ustar00rootroot00000000000000Copyright (c) 2016, Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. require-main-filename-1.0.1/README.md000066400000000000000000000020501266100543300171410ustar00rootroot00000000000000# require-main-filename [![Build Status](https://travis-ci.org/yargs/require-main-filename.png)](https://travis-ci.org/yargs/require-main-filename) [![Coverage Status](https://coveralls.io/repos/yargs/require-main-filename/badge.svg?branch=master)](https://coveralls.io/r/yargs/require-main-filename?branch=master) [![NPM version](https://img.shields.io/npm/v/require-main-filename.svg)](https://www.npmjs.com/package/require-main-filename) `require.main.filename` is great for figuring out the entry point for the current application. This can be combined with a module like [pkg-conf](https://www.npmjs.com/package/pkg-conf) to, _as if by magic_, load top-level configuration. Unfortunately, `require.main.filename` sometimes fails when an application is executed with an alternative process manager, e.g., [iisnode](https://github.com/tjanczuk/iisnode). `require-main-filename` is a shim that addresses this problem. ## Usage ```js var main = require('require-main-filename')() // use main as an alternative to require.main.filename. ``` ## License ISC require-main-filename-1.0.1/index.js000066400000000000000000000006531266100543300173360ustar00rootroot00000000000000module.exports = function (_require) { _require = _require || require var main = _require.main if (main && isIISNode(main)) return handleIISNode(main) else return main ? main.filename : process.cwd() } function isIISNode (main) { return /\\iisnode\\/.test(main.filename) } function handleIISNode (main) { if (!main.children.length) { return main.filename } else { return main.children[0].filename } } require-main-filename-1.0.1/package.json000066400000000000000000000013561266100543300201600ustar00rootroot00000000000000{ "name": "require-main-filename", "version": "1.0.1", "description": "shim for require.main.filename() that works in as many environments as possible", "main": "index.js", "scripts": { "pretest": "standard", "test": "tap --coverage test.js" }, "repository": { "type": "git", "url": "git+ssh://git@github.com/yargs/require-main-filename.git" }, "keywords": [ "require", "shim", "iisnode" ], "author": "Ben Coe ", "license": "ISC", "bugs": { "url": "https://github.com/yargs/require-main-filename/issues" }, "homepage": "https://github.com/yargs/require-main-filename#readme", "devDependencies": { "chai": "^3.5.0", "standard": "^6.0.5", "tap": "^5.2.0" } } require-main-filename-1.0.1/test.js000066400000000000000000000020331266100543300172000ustar00rootroot00000000000000/* global describe, it */ var requireMainFilename = require('./') require('tap').mochaGlobals() require('chai').should() describe('require-main-filename', function () { it('returns require.main.filename in normal circumstances', function () { requireMainFilename().should.match(/test\.js/) }) it('should use children[0].filename when running on iisnode', function () { var main = { filename: 'D:\\Program Files (x86)\\iisnode\\interceptor.js', children: [ {filename: 'D:\\home\\site\\wwwroot\\server.js'} ] } requireMainFilename({ main: main }).should.match(/server\.js/) }) it('should not use children[0] if no children exist', function () { var main = { filename: 'D:\\Program Files (x86)\\iisnode\\interceptor.js', children: [] } requireMainFilename({ main: main }).should.match(/interceptor\.js/) }) it('should default to process.cwd() if require.main is undefined', function () { requireMainFilename({}).should.match(/require-main-filename/) }) })