{"_id":"babel-plugin-filenamespace","_rev":"25-9c21909ebfb04d20840b9e16ae5e22b8","name":"babel-plugin-filenamespace","description":"Use file structure to namespace your code.","dist-tags":{"latest":"4.0.1","beta":"2.0.0-beta.1"},"versions":{"0.0.1":{"name":"babel-plugin-filenamespace","version":"0.0.1","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","compile":"cross-env NODE_ENV=production babel src --out-dir lib","prepublish":"npm run compile"},"babel":{"presets":["latest"]},"author":{"name":"Samuel Sharpe"},"license":"MIT","devDependencies":{"babel-cli":"^6.14.0","babel-preset-latest":"^6.14.0","cross-env":"^2.0.1"},"gitHead":"4b592e7a6d097a15ad034245801d30cd8e84945d","_id":"babel-plugin-filenamespace@0.0.1","_shasum":"388fc0c81e150079f824dc712d65971ca573d146","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"shasum":"388fc0c81e150079f824dc712d65971ca573d146","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-0.0.1.tgz","integrity":"sha512-IPTU2k+/BHDbfZMHjes3Jd1BQY8kyao8Xg5pOVJHdnQPXBwCGzTBVusnjGWkeq5+zE7xeDJ27o96oKLEiX0njQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC70vKHC9FpdPogEfxjxR9bc6buCxxsFH6jZ123A0JKKgIhAKbAl3qepRtp+EkcVq+awI/1GiX4UAoWr5xDkRn/Bkr4"}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-filenamespace-0.0.1.tgz_1472655364997_0.39106556330807507"},"directories":{}},"0.0.2":{"name":"babel-plugin-filenamespace","version":"0.0.2","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","compile":"cross-env NODE_ENV=production babel src --out-dir lib","prepublish":"npm run compile"},"babel":{"presets":["latest"]},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"author":{"name":"Samuel Sharpe"},"license":"MIT","devDependencies":{"babel-cli":"^6.14.0","babel-preset-latest":"^6.14.0","cross-env":"^2.0.1"},"gitHead":"f021259377102bef3e23e1ecb7ce7d3ceca0aabf","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@0.0.2","_shasum":"6a6f85a21949e5f5f0910b56669fee4dcc7af2c8","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"shasum":"6a6f85a21949e5f5f0910b56669fee4dcc7af2c8","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-0.0.2.tgz","integrity":"sha512-muldfCwP8QiM5co+KOlrU0GKOSF/BxI1v9wGIAlh3qCF89pidtYBvKTDVOt7uSr1uC5//eZAEAAq/IcO2WiXsA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXZeAv3ZDe625d1vTzUcKWDuEFQgmxQqnovSoOC6CUbQIgV2ePPyz5X4E0BxdSpL4pz5XW7UiApIv1iw/7q+jBWHA="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/babel-plugin-filenamespace-0.0.2.tgz_1472655681610_0.22415588586591184"},"directories":{}},"0.0.3":{"name":"babel-plugin-filenamespace","version":"0.0.3","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"test":"npm run prepublish && jest","clean":"rimraf lib coverage","build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore spec.js,test.js","prepublish":"npm run clean && npm run build","coveralls":"cat ./coverage/lcov.info | coveralls"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testEnvironment":"node","collectCoverage":true,"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"babel-cli":"^6.14.0","babel-core":"^6.14.0","babel-jest":"^15.0.0","babel-polyfill":"^6.13.0","babel-preset-latest":"^6.14.0","coveralls":"^2.11.14","cross-env":"^2.0.1","eslint":"^3.5.0","eslint-config-airbnb":"^11.1.0","eslint-plugin-import":"^1.15.0","eslint-plugin-jsx-a11y":"^2.2.2","eslint-plugin-react":"^6.2.2","jest-cli":"^15.1.1","rimraf":"^2.5.4"},"gitHead":"b6ce93d296064008f936d5bc5dad77c5d032dd2c","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@0.0.3","_shasum":"aab17af491b029d440ec1fead5808891960ae05d","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"shasum":"aab17af491b029d440ec1fead5808891960ae05d","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-0.0.3.tgz","integrity":"sha512-9GFLzBuXo8LJlRUNmX9lm9EBtlYGQyJbY+Lx40rIwJ2Z7UT7qeOpz+uCeAPNzTojGs1Hmoiaw+RIO733+GYvcg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFA+kQmpi7gWKwE9EPPY8weKqyO4VObXTCIGQnlpfdpyAiEA69ynHXNHncUIj+Sq4b11qW+HBg2rLT/5Dhq09a0oH60="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-filenamespace-0.0.3.tgz_1474368084787_0.7872829565312713"},"directories":{}},"0.0.4":{"name":"babel-plugin-filenamespace","version":"0.0.4","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"test":"npm run prepublish && jest","clean":"rimraf lib coverage","build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore spec.js,test.js","prepublish":"npm run clean && npm run build","coveralls":"cat ./coverage/lcov.info | coveralls"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testEnvironment":"node","collectCoverage":true,"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"babel-cli":"^6.14.0","babel-core":"^6.14.0","babel-jest":"^15.0.0","babel-polyfill":"^6.13.0","babel-preset-latest":"^6.14.0","coveralls":"^2.11.14","cross-env":"^2.0.1","eslint":"^3.5.0","eslint-config-airbnb":"^11.1.0","eslint-plugin-import":"^1.15.0","eslint-plugin-jsx-a11y":"^2.2.2","eslint-plugin-react":"^6.2.2","jest-cli":"^15.1.1","rimraf":"^2.5.4"},"gitHead":"a52e7c80621c2c6499187ca56f2fc03016f3b932","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@0.0.4","_shasum":"13c6fcc838dcc4067d49a9831191891efbcbac06","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"shasum":"13c6fcc838dcc4067d49a9831191891efbcbac06","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-0.0.4.tgz","integrity":"sha512-YXA80AIr23VRdiMDOGkGpEvj5HR+iOmRrRzrgcrkwLSLvkvvwFg4wfWaHkRjPpuTPX6Qq8CsDHNiKzrxWav2UQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBojAxQA3/KQD4gmxFavhc32H0Ijrz+Vf3LD2z2Ar9zGAiEAiJK3B8g/eKi68Qufus2JCzDV+I1311rUFrJcSBkYgYs="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-filenamespace-0.0.4.tgz_1474412271091_0.14056612318381667"},"directories":{}},"1.0.0":{"name":"babel-plugin-filenamespace","version":"1.0.0","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore spec.js,test.js","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepublish":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepublish && npm run lint && jest"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testEnvironment":"node","collectCoverage":true,"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"babel-cli":"^6.14.0","babel-core":"^6.14.0","babel-jest":"^15.0.0","babel-polyfill":"^6.13.0","babel-preset-latest":"^6.14.0","coveralls":"^2.11.14","cross-env":"^2.0.1","eslint":"^3.5.0","eslint-config-airbnb":"^11.1.0","eslint-plugin-import":"^1.15.0","eslint-plugin-jsx-a11y":"^2.2.2","eslint-plugin-react":"^6.2.2","jest-cli":"^15.1.1","rimraf":"^2.5.4"},"gitHead":"e1efc52d76b5cfb48e709c9ea8b218f01cd2cfc3","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@1.0.0","_shasum":"86d93aa686e91c706cb2d603d60d4a4bbd7ad0c4","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"shasum":"86d93aa686e91c706cb2d603d60d4a4bbd7ad0c4","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-1.0.0.tgz","integrity":"sha512-eywreaOi0sDzBckReuaDHXgGkYR7HZbtBakLqPbBdATVthvzgseSHAOZvc9lahnFiCVIvwDkQrr2OZpTQzWG5g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVjH2WmHUgggJh5iyMFJNdi9+nxINPL418En/TZ3XdhAiEA97mq4X5uG6jGDJYy97eBjIt+/Vi25rwJ4Nu0CZD7pbc="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-filenamespace-1.0.0.tgz_1474420925280_0.3885522142518312"},"directories":{}},"1.0.1":{"name":"babel-plugin-filenamespace","version":"1.0.1","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore spec.js,test.js","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepublish":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepublish && npm run lint && jest"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["namespace","namespacing","redux","action","type","module","babel","babel-plugin","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testEnvironment":"node","collectCoverage":true,"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"babel-cli":"^6.14.0","babel-core":"^6.14.0","babel-jest":"^15.0.0","babel-polyfill":"^6.13.0","babel-preset-latest":"^6.14.0","coveralls":"^2.11.14","cross-env":"^2.0.1","eslint":"^3.5.0","eslint-config-airbnb":"^11.1.0","eslint-plugin-import":"^1.15.0","eslint-plugin-jsx-a11y":"^2.2.2","eslint-plugin-react":"^6.2.2","jest-cli":"^15.1.1","rimraf":"^2.5.4"},"gitHead":"9e3dfad0dbbfdff26a2bb8f539b2cef53687eef4","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@1.0.1","_shasum":"5a252c4d2e1c7b2fa96d2c054429dfb708e7f615","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"shasum":"5a252c4d2e1c7b2fa96d2c054429dfb708e7f615","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-1.0.1.tgz","integrity":"sha512-PErVRRtLqBX6lyEYmhgqCAXZIW3KfqR7OL6B51hRPP1pZbB69evX7aZXT82Quk+W4M/vz4Fv0bD8zQGogziiXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFzyUd2m19fiWPevkFtbW69VvxsekNTGIRRlacdj89aTAiA5yt/UyNJ8RR4pvAHwW1/DmRGFni54IoMoh1ApOJq3qg=="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-filenamespace-1.0.1.tgz_1474421861375_0.22743221349082887"},"directories":{}},"1.1.0":{"name":"babel-plugin-filenamespace","version":"1.1.0","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore spec.js,test.js","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepublish":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepublish && npm run lint && jest"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["namespace","namespacing","redux","action","type","module","babel","babel-plugin","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testEnvironment":"node","collectCoverage":true,"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"babel-cli":"6.18.0","babel-core":"6.18.2","babel-jest":"15.0.0","babel-polyfill":"6.16.0","babel-preset-latest":"6.16.0","coveralls":"2.11.14","cross-env":"3.1.3","eslint":"3.9.1","eslint-config-airbnb":"12.0.0","eslint-plugin-import":"1.16.0","eslint-plugin-jsx-a11y":"2.2.3","eslint-plugin-react":"6.5.0","jest-cli":"16.0.2","rimraf":"2.5.4"},"gitHead":"0fdfb3e87b8195823c449849a020501f5eec1753","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@1.1.0","_shasum":"8899a19c6b37efe72c2d87ed4ae3abd7aa27930a","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"shasum":"8899a19c6b37efe72c2d87ed4ae3abd7aa27930a","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-1.1.0.tgz","integrity":"sha512-3e5QRaLfOgLL/DLZrC8AnHsDMGrfPj+ipODzLI8lzje+x6oisJC9r3XBONlf/vGqzRHzDOk58jtMwZy4k2ZPng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFG/ufay71a3jCXOauwXk3d/wpRbWjg61MVBd7r40a0UAiEAzLD9xf/38tR1Qf5GBGlnv/dyO+dWncCYNiR7uMforCo="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/babel-plugin-filenamespace-1.1.0.tgz_1478176818367_0.3980199347715825"},"directories":{}},"1.1.1":{"name":"babel-plugin-filenamespace","version":"1.1.1","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore spec.js,test.js","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepublish":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepublish && npm run lint && jest"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["namespace","namespacing","redux","action","type","module","babel","babel-plugin","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testEnvironment":"node","collectCoverage":true,"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"babel-cli":"6.18.0","babel-core":"6.18.2","babel-jest":"17.0.2","babel-polyfill":"6.16.0","babel-preset-latest":"6.16.0","coveralls":"2.11.15","cross-env":"3.1.3","eslint":"3.11.0","eslint-config-airbnb":"13.0.0","eslint-plugin-import":"2.2.0","eslint-plugin-jsx-a11y":"2.2.3","eslint-plugin-react":"6.7.1","jest-cli":"17.0.3","rimraf":"2.5.4"},"gitHead":"194043923358f6265cb113df1a3a03047a6da5a1","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@1.1.1","_shasum":"5b34b81243df92f545aa871fd0631dc7f227cca4","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"shasum":"5b34b81243df92f545aa871fd0631dc7f227cca4","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-1.1.1.tgz","integrity":"sha512-iAZ427EvYLVLB8lP2+zhlMwWtpS7DcV4pTmBJ7rEBMGgo1oGqJSR0boGcdbLNuw6D0+nesS4z9bU/W7dcKx1IQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICYBUZdSaRUNngYo1bkDf1EAedGgX6T/qVVqBh0JEqzZAiBthiJTp2rwmB/hZWIhhjR3Y7l6gWTXcXNCdKv2jnnDDg=="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/babel-plugin-filenamespace-1.1.1.tgz_1480118927125_0.901887034997344"},"directories":{}},"1.1.2":{"name":"babel-plugin-filenamespace","version":"1.1.2","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore spec.js,test.js","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepublish":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepublish && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["namespace","namespacing","redux","action","type","module","babel","babel-plugin","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testEnvironment":"node","collectCoverage":true,"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"babel-cli":"6.18.0","babel-core":"6.21.0","babel-jest":"18.0.0","babel-polyfill":"6.20.0","babel-preset-latest":"6.16.0","coveralls":"2.11.15","cross-env":"3.1.3","eslint":"3.12.2","eslint-config-airbnb":"13.0.0","eslint-plugin-import":"2.2.0","eslint-plugin-jsx-a11y":"2.2.3","eslint-plugin-react":"6.8.0","jest-cli":"18.0.0","rimraf":"2.5.4"},"gitHead":"8a734273578cbaeb73fe9013a4b6c2eb99ea5f14","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@1.1.2","_shasum":"c3fe6fbbe749f2c7019066545d3e496863cb710a","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"shasum":"c3fe6fbbe749f2c7019066545d3e496863cb710a","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-1.1.2.tgz","integrity":"sha512-HLDdPgy5hhSf04eA6WntBCBHwVIUtrGiJcPDT9GUSBfYVBFP662j+mnj83M2txdorx/EVHxLHL1JjPkhf9DPIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG8DuhY9m9FNhmcOpp3NJQllv4W7tusmk+dfL3BwYeX+AiB3fBhyJBCZQc7Guot+yA+llbGhaVlmiaZyrSDebFLkqg=="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/babel-plugin-filenamespace-1.1.2.tgz_1482976601859_0.5191042390652001"},"directories":{}},"1.1.3":{"name":"babel-plugin-filenamespace","version":"1.1.3","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore spec.js,test.js","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepublish":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepublish && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["namespace","namespacing","redux","action","type","module","babel","babel-plugin","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testEnvironment":"node","collectCoverage":true,"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"babel-cli":"6.22.2","babel-core":"6.22.1","babel-jest":"18.0.0","babel-polyfill":"6.22.0","babel-preset-latest":"6.22.0","coveralls":"2.11.15","cross-env":"3.1.4","eslint":"3.15.0","eslint-config-airbnb":"14.0.0","eslint-plugin-import":"2.2.0","eslint-plugin-jsx-a11y":"3.0.2","eslint-plugin-react":"6.9.0","jest-cli":"18.1.0","rimraf":"2.5.4"},"gitHead":"562ad33a6ba1bbbd01b1daee9ac9c9db5915093e","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@1.1.3","_shasum":"b5da894151673bb2dae2f378edc7b6ec86bcbb93","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"shasum":"b5da894151673bb2dae2f378edc7b6ec86bcbb93","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-1.1.3.tgz","integrity":"sha512-kVy+73zL67bf+Zi2DJtKRC+b6SeitM/dMEvye2QfJvkJ0AK608DZXQt1j/52GNUzGpsKTOeqgOFTiJGqbBRGVw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHgfeYMRboGFsDd7pzbP5GfLYrKsSDpgVA5tbu9dBxhdAiBPFqqKnFeRWEYlezfUIAFAglazYw9GhXMqw9P08487xQ=="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-filenamespace-1.1.3.tgz_1486271257998_0.7163519393652678"},"directories":{}},"1.2.0":{"name":"babel-plugin-filenamespace","version":"1.2.0","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore spec.js,test.js","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepublish":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepublish && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["namespace","namespacing","redux","action","type","module","babel","babel-plugin","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testEnvironment":"node","collectCoverage":true,"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-jest":"^23.6.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.7.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslint":"^5.9.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.2","eslint-plugin-react":"^7.11.1","jest-cli":"^23.6.0","rimraf":"^2.6.2"},"gitHead":"644c42989958da8181b37248c8a1f22b4d48fad0","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@1.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"integrity":"sha512-ESY70gVRigzJkiYBpcjHfp+sL/GCpicdEfYpFrmbiF0AnApAuRylMRO8ErelC3ev8RHMddPtN0mCYpDli4w7sQ==","shasum":"8a559ed72202ed91d819528b04e3f6a48b3df27e","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-1.2.0.tgz","fileCount":28,"unpackedSize":17139,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcBzu1CRA9TVsSAnZWagAAD78P/jITnqcUfVHEplr8OEar\nc/YcqmFUGxLMLzZuHY4oBTzeMGHdWiHfI/T8GrweBFoCp+dNv74QCyKuZUN2\nxccTDXGRPC8moUINuadugBTv+9Z9G831R3daEyjMwvV8MhmqdBtMfSfHiAHt\n5V4MbWjXwy+RwcgyS9sojaqmitRJPm7vQ4zgMQV6f1OdLPRYgpwX/38w4Eh1\nm0qNdgnHHarukLYxmSF8V6Z3osEYLBTb6NrWLyGFWE8TD0Q6AmdIlaX+mDxT\nN5uZdvN26KCpWWDBUBY8j4VGkyyWNBrQ/4Eqh4m0i+HKB5OT5Huc4/aAduaK\na0wz3Kedat+HYGnjsA6De9Pgq1ckKg1tHSvzCerz+njxLok+T68c6CmX/051\nbkYsi0V9r/pTfmb2Wr5rZwFMZkmkumXuR3xn65YM0x0sCgIIl2MjWVkKDo/6\nlvEDSPcD6bE+jL/VjoY+ZJjVm2BrZeodZr6wfUj1V3Z67KW/z6H6PARpUg7P\nNKbW6wmY5bLY23tgktu2YXry6QU9Oe4wbLxfmiibilzn+t6H9wrozRAnyWjX\ntNVLft++5ooAbK8zcxrGiz0jQ87l/Xo1otmyP4wzb6pCMTNTH8+YGERr+fkf\nbR/QyVupMyk6dHAGHB0vInLx2m4oWDVhkyQZSlNvx6ymibdptCd1UXWVm2ms\n3L9J\r\n=SV2Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICaxyA6mN/Fq8sPPQ//+NZ72DDfyjJK8dMPoscNtG15TAiEAjQ7Nk4SEpqmb7yY6Mut0e4lZbKQ7es0sUj/XdaQbdac="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_1.2.0_1543977908453_0.6376492465160077"},"_hasShrinkwrap":false},"2.0.0-beta.0":{"name":"babel-plugin-filenamespace","version":"2.0.0-beta.0","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore 'src/**/*.spec.js','src/**/*.test.js'","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepare":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepare && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testMatch":["<rootDir>/src/**/*.test.[tj]s?(x)"],"testEnvironment":"node","collectCoverage":true,"coveragePathIgnorePatterns":["<rootDir>/src/"],"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"@babel/cli":"^7.4.4","@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","babel-core":"^7.0.0-bridge.0","babel-jest":"^24.8.0","coveralls":"^3.0.4","cross-env":"^5.2.0","eslint":"^5.16.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.17.3","eslint-plugin-jsx-a11y":"^6.2.1","eslint-plugin-react":"^7.13.0","jest-cli":"^24.8.0","rimraf":"^2.6.3"},"readme":"# babel-plugin-filenamespace\n\nBabel plugin to generate a namespace _(a.k.a string)_ based on filename.\n\n[![Build Status](https://travis-ci.org/samit4me/babel-plugin-filenamespace.svg?branch=master)](https://travis-ci.org/samit4me/babel-plugin-filenamespace)\n[![Build status](https://ci.appveyor.com/api/projects/status/j63t7l2wwaqu3h0i?svg=true)](https://ci.appveyor.com/project/samit4me/babel-plugin-filenamespace)\n[![Coverage Status](https://coveralls.io/repos/github/samit4me/babel-plugin-filenamespace/badge.svg?branch=master)](https://coveralls.io/github/samit4me/babel-plugin-filenamespace?branch=master)\n[![dependencies Status](https://david-dm.org/samit4me/babel-plugin-filenamespace/status.svg)](https://david-dm.org/samit4me/babel-plugin-filenamespace)\n[![devDependencies Status](https://david-dm.org/samit4me/babel-plugin-filenamespace/dev-status.svg)](https://david-dm.org/samit4me/babel-plugin-filenamespace?type=dev)\n\n\n## Description\n\nDirectories and filenames are typically descriptive by nature, which make them great for namespacing your code.\n\n> Think redux action types, unit test describe blocks or for organising storybook stories.\n\nThe node modules [__dirname][__dirname] and [__filename][__filename] are perfect for this, but there is a problem, with code bundling and client-side JS these modules lose their meaning. The purpose of this plugin is to give that meaning back.\n\n```javascript\n// src/components/Button.test.js\ndescribe(__filenamespace, () => {\n  it('should ...', () => {\n    // ...\n  })\n})\n```\n```javascript\n// is transformed into\ndescribe('src/components/Button', () => {\n  it('should ...', () => {\n    // ...\n  })\n})\n```\n\n## Installation\n\n```\nnpm install --save-dev babel-plugin-filenamespace\n```\n\n## Usage\nVia `.babelrc` (Recommended)\n```json\n{\n  \"plugins\": [\n    \"filenamespace\"\n  ]\n}\n```\nor via `package.json`\n```json\n{\n  \"babel\": {\n    \"plugins\": [\n      \"filenamespace\"\n    ]\n  }\n}\n```\n\nUsing [ESLint][eslint]? Add **__filenamespace** as a global\n\n```json\n{\n  \"globals\": {\n    \"__filenamespace\": false\n  }\n}\n```\n\nThen in any file you want a filename based namespace generated use the placeholder **__filenamespace**.\n\n### Options\n\nUse Babel's plugin options by replacing the plugin string with an array of the plugin name and an object with the options:\n- `root`: *(Default: project root)* - specify your own root directory (e.g. src).\n- `separator`: *(Default: \"/\")* - specify your own directory separator.\n- `dropAllFilenames`*: *(Default: false)* - setting to true will exclude the filenames and use the directory structure only.\n   - _**Note:** `index` files or filenames that match the parent directory name do not provide meaning, so the filename is always dropped_.\n- `dropExtensions`**: *(Default: [\".spec\", \".test\", \".story\", \".stories\"])* - specify the extensions you want removed.\n   - _**Note:** file extension are always removed, these extensions for naming conventions (e.g. `path/to/file.test.js` will transform to `path/to/file`)_.\n- `customPlaceholders`: *(Default: [])* - starting with **v2** you can configure multiple custom placeholders, each with their own configuration made up of the options above e.g. `[{ \"placeholder\": \"__testnamespace\", \"separator\": \".\" }]`.\n\n## Examples\n\n#### `root` example:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"root\": \"app\",\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/App/data/file.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'container/App/data/file';\n```\n\n#### `separator` example:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"separator\": \"👌\"\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/App/data/file.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'app👌container👌App👌data👌file';\n```\n\n#### `dropAllFilenames` example:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"dropAllFilenames\": true\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/HomePage/Home.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'app/container/HomePage';\n```\n\n#### `dropExtensions` example:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"dropExtensions\": [\".test\"]\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/HomePage/Home.test.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'app/container/HomePage/Home';\n```\n\n#### `customPlaceholders` extension:\n\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"separator\": \".\"\n        \"customPlaceholders\": [\n          { \"placeholder\": \"__dotDot\", \"separator\": \"..\" },\n          { \"placeholder\": \"__dotDotDot\", \"separator\": \"...\" }\n        ]\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/App/data/file.js\nconst namespace = __filenamespace;\nconst dotDotNamespace = __dotDot;\nconst dotDotDotNamespace = __dotDotDot;\n```\n```javascript\n// is transformed into\nconst namespace = 'container.App.data.file';\nconst dotDotNamespace = 'container..App..data..file';\nconst dotDotDotNamespace = 'container...App...data...file';\n```\n\n## License\n\nMIT, see [LICENSE](LICENSE) for details.\n\n[redux]: https://github.com/reactjs/redux\n[babel]: https://babeljs.io\n[eslint]: http://eslint.org/\n[__dirname]: https://nodejs.org/api/modules.html#modules_dirname\n[__filename]: https://nodejs.org/api/modules.html#modules_filename\n","readmeFilename":"README.md","gitHead":"6ba4d6fbef7994aa35272937ff3d7e7f943f18a8","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@2.0.0-beta.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-msPE6DliGQpC6CmwNUeW1IzoR6UJ0o9wZSC6u67hvMPLEWRu6sMpI/a3MOnjSf34FlN5T29LtYpeP90I4L4OCA==","shasum":"30f086486685844dfe332b138c99b497842ad681","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-2.0.0-beta.0.tgz","fileCount":45,"unpackedSize":19893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/lEjCRA9TVsSAnZWagAArtIP/jOmeVzzVBuZ69sQMCoi\nvCfXZVsY0iaOSrg4lhIEgMs8yxdAJI2BaDZzb4pShfJg2GsQHQpJt6X6p/jh\nt4QijaXb4gpOeKMTY0IjYEnE+/IPoiTCd/QMYXXdFWhp+xyCpPVkypFc+rUS\n/iblp76g3RhBn2/bi8MmetlUwhYyFEfwGaSzCZMSW30Gqd9mjvkxDLF1xotY\n6QTpK5dkFrCIW8Rc7bbphQkebuXsyvIc/BTxOJSzXy+jgwzau8Iri7JLo1wd\nqRdc4lUv/jmRPRUZy9Pm93Z3vNF4gHCLIoQ444Gba9SH9gfpl5SY17opy6Bz\npeEFDFyScK5iufigXfs0n3Vjb9k+Wt6rKUTkE9jbTHvJ9JLlJWe51cQG/o1I\novkxF4s5fOi/wcUw2yyiNDURUpIxUMm1x2FCc0Wqc3d9o7V/2O60Xf+gO3Cu\n/jI6J+WLGp0JDibk8zP5CL2d+XhwcEpaejj936TUNkq/pdheZG7BEf+gyH8m\nnhGoI9Q++BmaYHTW9xMiF2PHTaW/7uvcvEipRpbDhR1S9bI2aUDXfLvXKIao\n27sr7g6i7mUMLjxw+Uzd5KZ9N8dTo8MQJ03Z6QN71Hb7Rjs6DN1EruD0aIZj\nlg4BPTR8QXw/QZeR9LtNNf6it5Niaz6UC0qSSNwUpldN6ycNWNJiOMHcm+Pz\nkq4s\r\n=b62R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/nUzAawrrbGILNt2SPp/iwa53a5jFpbFFlWtyL1j0RgIgepWFEP7HI+761kQA00ydzQR9GUrHdC4S8xbywU8hewY="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_2.0.0-beta.0_1560170786605_0.9683779834316548"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"babel-plugin-filenamespace","version":"2.0.0-beta.1","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore 'src/**/*.spec.js','src/**/*.test.js'","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepare":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepare && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testMatch":["<rootDir>/src/**/*.test.[tj]s?(x)"],"testEnvironment":"node","collectCoverage":true,"coveragePathIgnorePatterns":["<rootDir>/src/"],"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"@babel/cli":"^7.4.4","@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","babel-core":"^7.0.0-bridge.0","babel-jest":"^24.8.0","coveralls":"^3.0.4","cross-env":"^5.2.0","eslint":"^5.16.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.17.3","eslint-plugin-jsx-a11y":"^6.2.1","eslint-plugin-react":"^7.13.0","jest-cli":"^24.8.0","rimraf":"^2.6.3"},"readme":"# babel-plugin-filenamespace\n\nBabel plugin to generate a namespace _(a.k.a string)_ based on filename.\n\n[![Build Status](https://travis-ci.org/samit4me/babel-plugin-filenamespace.svg?branch=master)](https://travis-ci.org/samit4me/babel-plugin-filenamespace)\n[![Build status](https://ci.appveyor.com/api/projects/status/j63t7l2wwaqu3h0i?svg=true)](https://ci.appveyor.com/project/samit4me/babel-plugin-filenamespace)\n[![Coverage Status](https://coveralls.io/repos/github/samit4me/babel-plugin-filenamespace/badge.svg?branch=master)](https://coveralls.io/github/samit4me/babel-plugin-filenamespace?branch=master)\n[![dependencies Status](https://david-dm.org/samit4me/babel-plugin-filenamespace/status.svg)](https://david-dm.org/samit4me/babel-plugin-filenamespace)\n[![devDependencies Status](https://david-dm.org/samit4me/babel-plugin-filenamespace/dev-status.svg)](https://david-dm.org/samit4me/babel-plugin-filenamespace?type=dev)\n\n\n## Description\n\nDirectories and filenames are typically descriptive by nature, which make them great for namespacing your code.\n\n> Think redux action types, unit test describe blocks or for organising storybook stories.\n\nThe node modules [__dirname][__dirname] and [__filename][__filename] are perfect for this, but there is a problem, with code bundling and client-side JS these modules lose their meaning. The purpose of this plugin is to give that meaning back.\n\n```javascript\n// src/components/Button.test.js\ndescribe(__filenamespace, () => {\n  it('should ...', () => {\n    // ...\n  })\n})\n```\n```javascript\n// is transformed into\ndescribe('src/components/Button', () => {\n  it('should ...', () => {\n    // ...\n  })\n})\n```\n\n## Installation\n\n```\nnpm install --save-dev babel-plugin-filenamespace\n```\n\n## Usage\nVia `.babelrc` (Recommended)\n```json\n{\n  \"plugins\": [\n    \"filenamespace\"\n  ]\n}\n```\nor via `package.json`\n```json\n{\n  \"babel\": {\n    \"plugins\": [\n      \"filenamespace\"\n    ]\n  }\n}\n```\n\nUsing [ESLint][eslint]? Add **__filenamespace** as a global\n\n```json\n{\n  \"globals\": {\n    \"__filenamespace\": false\n  }\n}\n```\n\nThen in any file you want a filename based namespace generated use the placeholder **__filenamespace**.\n\n### Options\n\nUse Babel's plugin options by replacing the plugin string with an array of the plugin name and an object with the options:\n- `root`: *(Default: project root)* - specify your own root directory (e.g. src).\n- `separator`: *(Default: \"/\")* - specify your own directory separator.\n- `dropAllFilenames`*: *(Default: false)* - setting to true will exclude the filenames and use the directory structure only.\n   - _**Note:** `index` files or filenames that match the parent directory name do not provide meaning, so the filename is always dropped_.\n- `dropExtensions`**: *(Default: [\".spec\", \".test\", \".story\", \".stories\"])* - specify the extensions you want removed.\n   - _**Note:** file extension are always removed, these extensions for naming conventions (e.g. `path/to/file.test.js` will transform to `path/to/file`)_.\n- `customPlaceholders`: *(Default: [])* - starting with **v2** you can configure multiple custom placeholders, each with their own configuration made up of the options above e.g. `[{ \"placeholder\": \"__testnamespace\", \"separator\": \".\" }]`.\n\n## Examples\n\n#### `root` example:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"root\": \"app\",\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/App/data/file.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'container/App/data/file';\n```\n\n#### `separator` example:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"separator\": \"👌\"\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/App/data/file.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'app👌container👌App👌data👌file';\n```\n\n#### `dropAllFilenames` example:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"dropAllFilenames\": true\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/HomePage/Home.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'app/container/HomePage';\n```\n\n#### `dropExtensions` example:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"dropExtensions\": [\".test\"]\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/HomePage/Home.test.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'app/container/HomePage/Home';\n```\n\n#### `customPlaceholders` extension:\n\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"separator\": \".\"\n        \"customPlaceholders\": [\n          { \"placeholder\": \"__dotDot\", \"separator\": \"..\" },\n          { \"placeholder\": \"__dotDotDot\", \"separator\": \"...\" }\n        ]\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/App/data/file.js\nconst namespace = __filenamespace;\nconst dotDotNamespace = __dotDot;\nconst dotDotDotNamespace = __dotDotDot;\n```\n```javascript\n// is transformed into\nconst namespace = 'container.App.data.file';\nconst dotDotNamespace = 'container..App..data..file';\nconst dotDotDotNamespace = 'container...App...data...file';\n```\n\n## License\n\nMIT, see [LICENSE](LICENSE) for details.\n\n[redux]: https://github.com/reactjs/redux\n[babel]: https://babeljs.io\n[eslint]: http://eslint.org/\n[__dirname]: https://nodejs.org/api/modules.html#modules_dirname\n[__filename]: https://nodejs.org/api/modules.html#modules_filename\n","readmeFilename":"README.md","gitHead":"62c5be01f0a0753ab41e5d071ed3b8c0007d3ef1","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@2.0.0-beta.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-8WihnCFRCNAyLMA2H5CxKmFxnhKVbesKJWUamRqjXeXCJ70OA6RU/bN27hf3RNp78CMkOTPk6GM+Ne/nIBKRDw==","shasum":"9e887c15052b0e6e23eddf15c2d034edf17c3d17","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-2.0.0-beta.1.tgz","fileCount":45,"unpackedSize":20116,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdANemCRA9TVsSAnZWagAA8cUP/33QCrHkSNFHW05Bg7ed\nyIINPZtnImvsnNNQbzpSRciMnk/40i1qLseKbcCMzN5e/NKfLKPoeZMysew8\nHNwfJPuRV53RjqO8y5gU6XNBXipnGr2PhJdSl4NugML31X3EvW7uv/oLkSS4\nBOFPKG1NKf7VV7B9uTFRbMw7MRHcLlZ6LUGRRkC4HvtmnrnvOkcPH5LAw71E\nqFUheW6j+G736UajfTmWlwaGsOTuPBqTuF/e79rbAH7ToO2LQRa6vytWz54z\nwazXDQXLdVM7jNiHeeUkVqtxMqzAjQBOAP9vfXtRcK3yhiuC2HnheWw+Zp7/\n03mFOOi9w16DmhG9D92RQWiqx30GHCxeiNyUhNZcUDZQL30v6Qxm/AvgBcm2\nVKZWS18W2OSX3iB6gXL4ohJNnP5Q3R1rIIlpgG6r4kbBlYyWBD6WONFsPIXw\nmSUGm5z9AhVB+XC9DyPtQnJU5HeDVbOrqh9smmwDMCfG5yUQly4lH0QCtESJ\n9TQv9X+6mh2yknmC+QJxotGJBWBwnpINdcQqLbqI3tbkqn0HY1l+uu1Aks/Z\nTLf2L1m4O4E+KFyhYc1XB3vmGSiw7hrtTwzTVhB2MYosucG9d1P7UdBIrveb\nxohpy0a7aEtLHE2/2Oml1XNGdZrS+fkmiRN8JqXpayhFtw0do4o6dC4nw1Ld\nFJim\r\n=wRiP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDv//a7E2Nko9O6YbqTvWgb4rBypahzkQ3Cpa6NdGXi/AIhALIm8eeK+pQ+Ry+5jMAFypxiRHgXV77+o+bKu2Il93M0"}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_2.0.0-beta.1_1560336293437_0.5161592809043138"},"_hasShrinkwrap":false},"2.0.0":{"name":"babel-plugin-filenamespace","version":"2.0.0","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore 'src/**/*.spec.js','src/**/*.test.js'","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepare":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepare && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testMatch":["<rootDir>/src/**/*.test.[tj]s?(x)"],"testEnvironment":"node","collectCoverage":true,"coveragePathIgnorePatterns":["<rootDir>/src/"],"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"@babel/cli":"^7.4.4","@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","babel-core":"^7.0.0-bridge.0","babel-jest":"^24.8.0","coveralls":"^3.0.4","cross-env":"^5.2.0","eslint":"^5.16.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.17.3","eslint-plugin-jsx-a11y":"^6.2.1","eslint-plugin-react":"^7.13.0","jest-cli":"^24.8.0","rimraf":"^2.6.3"},"gitHead":"7cdb7e8365361b3635a06d2a7126ca9fbff094d0","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@2.0.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"integrity":"sha512-pd39/z0dQaQD0T4nZxyyueTNm595gFxV2ngFpoDJrdBVwxW3hqmgM+5cjKtES+Dt1NcHZzNE612/j9Gk15pKQg==","shasum":"7451b007efd4d78541e4ecad6c79bcb8ef8d42dc","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-2.0.0.tgz","fileCount":45,"unpackedSize":20109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAY6HCRA9TVsSAnZWagAAOygP/Aud675GAVx4cBt07U5D\ncsaYZz12aX0DRRV3aUxJJQMAJp/62DqikpU5mzkGxCzKuP0LH7Mjit33vu0r\ntIeLmwOUXxjGO1S1oTXIvxNH/L/nsr5HQNyjLhQDRyCEjx2b7kVD8EZ957w+\n5DT8VofstxnZ/qKkXqqNBkSWLaOwmCXJ7Sbn/wYUCcow5II5/qAww+OVMsDf\n2iKGP4BEvuY2aTm4eTr7zCCgXgFvZKUz6WGc2piCgJpnQNNIlsAtQLNXEJ3p\nLTPWy2rIWtoWOqAQXe8/0hAyDPKEEuostLgoZNKgFlpzUOsNKIad582ivEkS\n2X/DoO+MJY5b4EMeOB+RFtxxJo3KLAfHQMDVztBHzehIau7/L844YOMxfR5P\nwlkaf7AKeY+v7oW0eI3B4YYLsCgVN3RBIzKj/h4eW2t00+LQvVaZLLtbDd+d\n0Ln3cXhQJA9Liu8r5NjhjUxfsSOeg6cz4c/32487N1ajp/hpJy6YwU9fuHCv\nNX8a9emZxnJeQSk1SKdsJ/WwNoNyBOMU1W50U4idcqPdNDIu1aJASGYr0NzX\ndesY1qS7c9oV9CujsWG4y3OJ28pEo0GoXpUoXo74YoJyKy3GvAQMq3nQY8LS\nsbdIQuPuUUEkQH5Cscl3uSV5iZvoeLTojc91lRIt0Q+6bc9zOOuKkOqjPhMc\nPFlg\r\n=tWJ4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHyE86KQO+L9YlsoqylFQAOmogUhbnidFVZZ0ejeSKwvAiACZ+QFeXUQuwM3wehKGnfLVNKTrUwLkqGnCO2/oSGIzA=="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_2.0.0_1560383111263_0.2863874715452439"},"_hasShrinkwrap":false},"2.0.1":{"name":"babel-plugin-filenamespace","version":"2.0.1","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore 'src/**/*.spec.js','src/**/*.test.js'","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepare":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepare && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testMatch":["<rootDir>/src/**/*.test.[tj]s?(x)"],"testEnvironment":"node","collectCoverage":true,"coveragePathIgnorePatterns":["<rootDir>/src/"],"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"@babel/cli":"^7.4.4","@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","babel-core":"^7.0.0-bridge.0","babel-jest":"^24.8.0","coveralls":"^3.0.4","cross-env":"^5.2.0","eslint":"^5.16.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.17.3","eslint-plugin-jsx-a11y":"^6.2.1","eslint-plugin-react":"^7.13.0","jest-cli":"^24.8.0","rimraf":"^2.6.3"},"gitHead":"87aa1401e43188a1cd768f9644418948948c3eaf","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@2.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-UfJLTiq+Vs+NY8DkMNV/Dnhvsgaij5J3hCmC1xZpBsnrGX1d//SHj21mhLf5WhAU2r7AOExhnIgZT0kUnkgseg==","shasum":"aa54723c6fd00a8e1395da3f2188712f427128bf","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-2.0.1.tgz","fileCount":45,"unpackedSize":20291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAiRVCRA9TVsSAnZWagAAAQcP/0Rl12Pl3CrnQg7Nr9T8\n15roYBIQC7GevVk6CD8qPO303B41St8EAqjGEEKlcAES7G7d4gtbJ8imoO+T\ncBSe1EDrjFSV5/cxf8AK6i3LNrGErKn4JlW/oxvX9q4k2MJCC1FGbFZQbu5w\nTkkDiJ/lHGo8UChpASdLKvXka0dbigHmP2RzXRqIcREITatMtyVwQukdnX3w\n5V///nZlRydoSBpadEKw7UQyTbM918HBFzFofc0kPBUOKs499rH34tV4HifK\nQMHRzf3r3bmmLlPPZrkW9bi0yCpt+4MlNwr7xboi6DKEOZxVcVPqxxc1n3Z3\nivaLtlVSWKVVQIP1GKavl45b1pQNEvz5pEH+3je+EAbNH5+30bRf6IzqCGeH\n3KboULnINT5zp5dkfUO4uAGKySP2aOL0HqXlH/wUHIRzyVw4Mg7Bsz/R6Pf4\n7rN3rxZbLOmntaeSkA5+hgZbRgrMDPYFw72t04LCCvj5m6mLTg5OMHnGH2t4\n3jf49i7PvzImzMltrwGBUQUhW6vuMC2e+aS5bg0S4ocsEQygl9MsoomZ9RfH\nlluKlVPf5HMrfrDwg3xv/Zoc4Nt0fU55BUJlhubkkzBbhOhYzMefD3BmJdT/\nOMeOtTtKRYQAbzY3SgOVjeX5tkXzQGKYrO2AwjUbjZZdAPoCiZH62+RkkPvp\nVoy2\r\n=p1xG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtbxSKomYwK3AllxILt8IgyQ7VLw9CRN5GkQQUPRbBHwIgPf2O5YM+2y38xIVZQ8jTu7ZEgU7Jpjl1H4fqx507Cv8="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_2.0.1_1560421460868_0.36883047651450296"},"_hasShrinkwrap":false},"2.0.2":{"name":"babel-plugin-filenamespace","version":"2.0.2","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore 'src/**/*.spec.js','src/**/*.test.js'","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepare":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepare && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testMatch":["<rootDir>/src/**/*.test.[tj]s?(x)"],"testEnvironment":"node","collectCoverage":true,"coveragePathIgnorePatterns":["<rootDir>/src/"],"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"@babel/cli":"^7.4.4","@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","babel-core":"^7.0.0-bridge.0","babel-jest":"^24.8.0","coveralls":"^3.0.4","cross-env":"^5.2.0","eslint":"^5.16.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.17.3","eslint-plugin-jsx-a11y":"^6.2.1","eslint-plugin-react":"^7.13.0","jest-cli":"^24.8.0","rimraf":"^2.6.3"},"gitHead":"b386901a631f31ce3abfc46f4d0f5de0c2e4c8ac","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@2.0.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Ob+EN/Zm+voizW1cY+jy9k9UOA85ku9H2s/8qjZWbDro0CztlC9EgRBOkx+GFylJFYVp4hsuYIk3kvtoJokOqw==","shasum":"d8e56785f72aadd9cc5f7c45954644541296d494","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-2.0.2.tgz","fileCount":45,"unpackedSize":20471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAi7VCRA9TVsSAnZWagAAPwwP/i0jMxcrdMsKAgzixj44\nJEHOrJyG5cy7WAHjNvgouAD9r3Jr/fria30hS8CW3PmKflMWnVxNGKiqrjEX\nJc/Otg3C3GQr1B2NCrWDP+1YzQSxjxcvqXpk9NuzzkdP2DMDYxa1aH2LnmZX\n+16Lrx0gDvZp0HYOkJkfF9Xi65FkrX9NDvVWgK/HaCM+QT1J5zmMedfIf0bb\no1krCPW6M+1DtRZ1jIVFbYblN9HrBCjULg5M2VVgl35PhZizh7dv3Epdp1eN\nGNEfp3NJzjc++jYqPMQRCIXgQQGo+CX3xRW9nanZv+3SH3XmNmRdU2O8M50X\n6uy4xiqKVJmV6B6G+saEbRovwS7rtphmYomUAnZHP5iq3SyFGbiELGhla+gb\nyIiVXEqpdEpA2a86sbxyfO4Q/sEhdgMv4ZdQeuOKyZrEAtif4USRlAwdkYk4\nGNiLAOnUlSWpqCNDKyyNantdp2J8R3/fcUIJQAQ+ODiuB2OE0meVPjmCeVph\nEJtXrADmlKTaCdwGZMzzHE5d7gzL16BLJwJJuK2OJmu12K/5fi5R4PCsHmX2\nZn308sIFEiWv5h4MlI2Z3cICxuYwHKTIG0I1XMuXP8u5uTjg30LgHoVE100k\nKA3JpYw0EfvR3bZIDRb2M6CWooUmILlCMjN0Kte5R+wKLKUB8acWD+r5mxRJ\nycM0\r\n=oeCJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbQBtozjbkegUfsS+Oaqr+JC8Bb+fIB0KaEJeTPmL2iwIhAPBYKB72p2OGg499vhyNxZ/lNbajm/3fxz9uFD3WRiIt"}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_2.0.2_1560424149456_0.8566295502086314"},"_hasShrinkwrap":false},"2.0.3":{"name":"babel-plugin-filenamespace","version":"2.0.3","description":"Babel plugin to generate a namespace based on filename","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore 'src/**/*.spec.js','src/**/*.test.js'","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepare":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepare && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testMatch":["<rootDir>/src/**/*.test.[tj]s?(x)"],"testEnvironment":"node","collectCoverage":true,"coveragePathIgnorePatterns":["<rootDir>/src/"],"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"@babel/cli":"^7.4.4","@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","babel-core":"^7.0.0-bridge.0","babel-jest":"^24.8.0","coveralls":"^3.0.4","cross-env":"^5.2.0","eslint":"^5.16.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.17.3","eslint-plugin-jsx-a11y":"^6.2.1","eslint-plugin-react":"^7.13.0","jest-cli":"^24.8.0","rimraf":"^2.6.3"},"gitHead":"d0ecbc5d9f31329b8ef2952b083dba2eda2c422b","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@2.0.3","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-pT+PSST0nGX/QtVLswq3UyF/hz7cn4KKyZ4kxNc9i+wgFFhxlxJYa1dVDPTES8Q+1/VGNk2DscNFh0nQG4TjGQ==","shasum":"f4354b08063f816f1679fcc975db115a7c5eea6a","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-2.0.3.tgz","fileCount":45,"unpackedSize":20515,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAi/JCRA9TVsSAnZWagAArXoP/RyCWKqdgqdE26gvrASF\nxlHmNw9hcFs7mOJNb3eD709SMV9YX+nCaRDmmP9pgPtH3Tu+lD8zF9T7q7N5\nVZekVWZWR0QvcmaL+RG1XuD1A4yVoAk0q6q4XjnJjVqonS4EHte1gYkblGMd\nNciGmX9uk21LWOfBduGJPsBQq5BCQ16AaHHKdtLO4AqMEKx9trNq7gIkyVm0\nOm1z8cUENPoEM4D3WMtRptOA2CoLO5vYj6laD94dY4gZ6KsL92jE0jXqUBZr\nSUHETGTP5fJcwMNKqgXYIwDIGRtrPLSTXAhndUMYMH/J2XGxQZHJJdzq8Ftq\ns+edhBOlH7VGhPgEY2KwSsqGi30BAMdGsLXbRGmKzgBjOrGJekrpSK9doobh\nu4igWz7y8SXzU1LWbJBB4DR3w1P6FhHxV37gZoai8L9IABeftzthSraCKpZq\nJUAvYOPjul8REFOceS93QeCsT53Jy0oMBCopKl36y+DJLI9K3pwYrjFEl+HZ\nby4o5lwLEeNRVMLlu2V4if6zfQ2TZ2/lrvDI3AhcW7zyvxJUKkKHER90/ZNR\newEpEToYUN0UizfcyD+VETRlY/aDwE0ZRtePdFyCuJQM2/PeH+YL2QEI2fli\n6oYsr+L9v4CxcyAftyGU96WfTv3FuRMEejxQZSoMXzsW/ku7XAF34Aq9ZBna\nTgLw\r\n=joZh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSj/cvCYWT58hApATnUSL9N4XRDf8pTqQRfqVnQfDrjAIhAOneKEFI1iwgYCK98zSS2rf2jezS+AzhYwuW+VarPk84"}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_2.0.3_1560424392885_0.658524435506777"},"_hasShrinkwrap":false},"2.0.4":{"name":"babel-plugin-filenamespace","version":"2.0.4","description":"Use file structure to namespace your code.","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore 'src/**/*.spec.js','src/**/*.test.js'","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepare":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepare && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testMatch":["<rootDir>/src/**/*.test.[tj]s?(x)"],"testEnvironment":"node","collectCoverage":true,"coveragePathIgnorePatterns":["<rootDir>/src/"],"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"@babel/cli":"^7.4.4","@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","babel-core":"^7.0.0-bridge.0","babel-jest":"^24.8.0","coveralls":"^3.0.4","cross-env":"^5.2.0","eslint":"^5.16.0","eslint-config-airbnb":"^17.1.0","eslint-plugin-import":"^2.17.3","eslint-plugin-jsx-a11y":"^6.2.1","eslint-plugin-react":"^7.13.0","jest-cli":"^24.8.0","rimraf":"^2.6.3"},"gitHead":"0b9d14d737f81eb532266c6a72a5d20b3e758cf7","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@2.0.4","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"dist":{"integrity":"sha512-QkxcwT8XHeTb776sqD1R241+wOhA1+vLXwD9GZSmAZv7Pg4nBabIFr76w3iqRRcWBkkrT595Fmcp8So7+aCyaw==","shasum":"22c9eb231c9123167765b1dd5dac5d8021ff5009","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-2.0.4.tgz","fileCount":55,"unpackedSize":56357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdB3kwCRA9TVsSAnZWagAAvokP/Rh3YWFdyP+jstiqprTJ\n98G0C01CsUidC296iTouUXZczkTZX9fW2cyMLr6hdDJkB7Pv56T3Ese3QXpB\nIwUD0CMcCjm/BipGEq6LUiIEwSdLlKS+xeGx09VXhFzatjdH0EhAFr0z/SEv\nl6bmNEdvkn353muBXzQ2qadc/4tjt1ZfuJRwyB4RluPFxmVvjrobE6VFuscM\nW5iTSEvVEhWEj5o3w6/q1G1D0hoYVMGiARkFKN7UPdHJsJhrEnS6D74mEhWk\nFumo8fWAig6VV0fsQyL5vJ/oThpbTdj06zIjfK6CgH1doLQ88LsmRwJ7zcUB\nAe+FDotMHyfHZPk4f7NDFC3YnxD7+Y4+Dkbc0127rXTGpd7P9wEZSermOC+3\n2eob9MypRUF9XY9gi+4IYv/d2saQJ8qofa5B0LWKLP5VBQFxkuwlCXjk2lH5\nLeOBVDBqCPwa/DLDmhywxDqe6ouSLRzjgGDamKudJUsO80ZrnVI3XGoo3nNA\nM+lgMACP4Z3Oi0Tj/o6/jlCLj0+Zywh4SispOawTwGvwmdnSiso0w7JvL4VT\nkzGCyiyE3KPumjMOlqnxouwP9vVcN2q+ES4PfBaQEW3LE+BszODkafrtZvM3\nQpQGQlRqR7RIVm2aDAimZsbJ0wRjSee8LjOkRcNeasToBNkCdPVUZfYg0XFV\ngM5o\r\n=0Ick\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCd8Q4xEkltI6V8TflhQGcvhCzpxtcASpaDlyp1Wqr0AiAw+YhT11MHTsC5AnS+o06NYiBjLusuM+IISIJZWU4kSQ=="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_2.0.4_1560770863401_0.9831534221162777"},"_hasShrinkwrap":false},"3.0.0":{"name":"babel-plugin-filenamespace","version":"3.0.0","description":"Use file structure to namespace your code.","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore 'src/**/*.spec.js','src/**/*.test.js'","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepare":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepare && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testMatch":["<rootDir>/src/**/*.test.[tj]s?(x)"],"testEnvironment":"node","collectCoverage":true,"coveragePathIgnorePatterns":["<rootDir>/src/"],"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"@babel/cli":"^7.6.2","@babel/core":"^7.6.2","@babel/preset-env":"^7.6.2","babel-core":"^7.0.0-bridge.0","babel-jest":"^24.9.0","coveralls":"^3.0.6","cross-env":"^6.0.0","eslint":"^6.5.1","eslint-config-airbnb":"^18.0.1","eslint-plugin-import":"^2.18.2","eslint-plugin-jsx-a11y":"^6.2.3","eslint-plugin-react":"^7.15.0","eslint-plugin-react-hooks":"^2.1.1","jest-cli":"^24.9.0","rimraf":"^3.0.0"},"gitHead":"3cc220da16589e831458fc3594a823f1eccd33d1","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@3.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-IW8azNFJdUuK/oE5sK6V8QwcveeUtfetClo1fBtk/m+L7YZDn7tEnJkxEwnhQiPJNYiCHwwAZD0HeBr1DYIwoA==","shasum":"cd4592d15c03c14e29c0b5a2068a8338d1b379f2","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-3.0.0.tgz","fileCount":45,"unpackedSize":22343,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdkzNaCRA9TVsSAnZWagAAn0UQAJkUbf9qryYdqZenmOwR\n7e1m6ibWsTE9DNajvyFe8HxxGIRy9thgjH+jwl5JMurRYW2ac2T7nxBLVXjf\nKdB0MV92UNqxBGsFJ6lnzk1PZ79qF3Xu+ilhKGI3Bwau0Gja+b8QVEMSeWSE\nf9p8Zd8io7XFLrnd/pCtRcoA/jO6x31SRYwt3nOB6kCR1UGZCfbs36GwzSQT\ndHg7CqKPx2RwhbT5njqb+z1wb4DwEjmjuGUOqZ3oS0tveJAER2p9x+eYb3Zh\nQgUSM1k6XC6drwn8X7BB7ScP6asFggFA+JPPaYB2OlqtsNCUGCwZEVai8cC2\nAN0/Uj7fHAy3m/dWcsqmadbL8XEU/abJNstMWhR9vsqqDHjfDKByA2vrO9JF\n6OjjKhGTbM8XHfEbIoUDN3lE4Kxxebd3x/hR03C9zlmLSyz4zQm5Vix41J2O\nVpTv+46P1vxcCISinjz6+VZCHiSVSxLQti25uWprmV6m4ElP1dRguVca523G\n1XUJbo8sJ0w/3p/u1vma9EnF3r//gQciP583Z3unllFz/tS+OkiYzM+oid7Y\nGLBlkNJnphBsXNlsFpwDlYQxSVT2DfikXZqc0CbXR8JGVo51CY8AI261Y3sd\ngqr466VTLIa3KP04yJa1S56n8lsM7MI8N+FAzTJ0nm9QFXXZyc7h9kX8EIKo\nALuG\r\n=54lX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIACikYxxKtsFp+tjr97djG6M5uskUS1gXPH8+V+uQVWQAiATBm3CBSVeTZ0PvuTy1AQ//FELMAnXLKgkIegkeUKIYQ=="}]},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_3.0.0_1569928026423_0.4904855433798645"},"_hasShrinkwrap":false},"4.0.0":{"name":"babel-plugin-filenamespace","version":"4.0.0","description":"Use file structure to namespace your code.","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore 'src/**/*.spec.js','src/**/*.test.js'","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepare":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepare && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testMatch":["<rootDir>/src/**/*.test.[tj]s?(x)"],"testEnvironment":"node","collectCoverage":true,"coveragePathIgnorePatterns":["<rootDir>/src/"],"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"@babel/cli":"^7.15.7","@babel/core":"^7.15.8","@babel/preset-env":"^7.15.8","babel-jest":"^27.2.4","coveralls":"^3.0.6","cross-env":"^7.0.3","eslint":"^7.32.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.24.2","jest-cli":"^27.2.4","rimraf":"^3.0.0"},"gitHead":"74921beee1028a46f06f6958dbfd44b24faed787","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@4.0.0","_nodeVersion":"16.4.0","_npmVersion":"7.24.1","dist":{"integrity":"sha512-Nc7OnxKKtFTLlPu1xQoezjx69Va8inYI7jUd6eauTSiVbchRrV4QYNOk2bnVlvYQSHwlL9vCN2XScJXEqqs8vQ==","shasum":"b08a850782510ededa5d713b31afb43490304169","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-4.0.0.tgz","fileCount":45,"unpackedSize":21746,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+0iEMNMD8vNl+ToVbEFPV3IufN3z10+vFUJ8tpCGEAQIgXQQYMt7QlS7balDOXGaZVvgztJtZ76cc2tESXkpQoKg="}]},"_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"directories":{},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_4.0.0_1633586903877_0.9066468570653377"},"_hasShrinkwrap":false},"4.0.1":{"name":"babel-plugin-filenamespace","version":"4.0.1","description":"Use file structure to namespace your code.","main":"lib/index.js","scripts":{"build":"cross-env NODE_ENV=production babel src --out-dir lib --ignore 'src/**/*.spec.js','src/**/*.test.js'","clean":"rimraf lib coverage","coveralls":"cat ./coverage/lcov.info | coveralls","prepare":"npm run clean && npm run build","lint":"eslint . --ignore-path .gitignore --ignore-pattern testFixtures","test":"npm run prepare && npm run lint && jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"],"author":{"name":"Samuel Sharpe"},"license":"MIT","jest":{"testMatch":["<rootDir>/src/**/*.test.[tj]s?(x)"],"testEnvironment":"node","collectCoverage":true,"coveragePathIgnorePatterns":["<rootDir>/src/"],"coverageThreshold":{"global":{"branches":80,"functions":80,"lines":80,"statements":80}}},"devDependencies":{"@babel/cli":"^7.15.7","@babel/core":"^7.15.8","@babel/preset-env":"^7.15.8","babel-jest":"^27.2.4","coveralls":"^3.0.6","cross-env":"^7.0.3","eslint":"^7.32.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.24.2","jest-cli":"^27.2.4","rimraf":"^3.0.0"},"gitHead":"a710ecadd65a299e2f8daee8663aa59b493ee221","bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","_id":"babel-plugin-filenamespace@4.0.1","_nodeVersion":"16.4.0","_npmVersion":"7.24.1","dist":{"integrity":"sha512-GPqmil5nLqyz0Dl7IlREfsXdPqIAyzGWcZLHinlCD7x3HC0FjEKLf9aB8V1rGq+8BL2b80v7UeHKMHOiLmT7VA==","shasum":"caddb885c44ec13c1aeb0097a215358e59e5e11e","tarball":"https://registry.npmjs.org/babel-plugin-filenamespace/-/babel-plugin-filenamespace-4.0.1.tgz","fileCount":45,"unpackedSize":21501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2kQNCRA9TVsSAnZWagAAmMgP/28s1Q6H/kVh6Id3Xk+n\nlxoYMWDIlmQziAowe9gX3qxuEK82hwsV1MSJyLFiFSQIapdVM+09qMtVqd5W\niRWWZCJBuCxjorrhKJzsNzUzJzSAI8k9aDKf0MX5flqheJxGIBA2M69ElAVK\n0rrf5HMtD0jnQlSlWqSr+0JZhhpAKKtK8vsOlgKF6YL6wUJRrSrflYU9HI/4\noonI49tQ1ek7k54VwDocSJjaTDJ4QlaHIXkIzTcUuTTTIJ4D2T//zi/embfs\n8WNWbQP0em+GE9doCO+AICYxNkf+mJP+yK8mCmSaaXoRB3fRjc3XZWVoQDdh\ngKciQOXtU7RMRQKDW6eMItZKt/+KrYZnxa88bKWex3uhiSWiHtJPPClguA32\nIFjXnNyxSm182n6EIXN69kZeyPK02yNqQsKE4JjfO9MXuR6T97GlMwhAD1XZ\nfGdGFAd4QI/lTHQPUVeu/5SJnATVE4XcxciIHOBFdLEu8GHJvUlQXCw+kNe9\n263i/hqSE4uJ1r3/UpwBlFGOQZaAr5PRjraBmiJcIvtoNsEw32nn5sluLzXa\nzBFzWmR1gZtrdubslYy5NAziEqaL8tRSG1EZpp8dAvnM7s5BvDuxXtIaBU4e\njfcxRH9O1RDtFcKbcCmjiKJrjIJAKxyw+3MYQdaPnvkpQxMuUwh7UGokDfmf\nOOcQ\r\n=+001\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFsMo7pI73Op7zjdXtltEfPLcSwZXnsAw0FFkQMEqdCRAiBOQebuwUbKHgDJfT5/DZTeYoPSNds8jCbahsHqqKA9TA=="}]},"_npmUser":{"name":"samit4me","email":"samit4me@gmail.com"},"directories":{},"maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-filenamespace_4.0.1_1633588074491_0.0013839994044855253"},"_hasShrinkwrap":false}},"readme":"<div align=\"center\">\n<h1>babel-plugin-filenamespace 📂</h1>\n<p>Use file structure to namespace your code</p>\n\n[![Build Status](https://travis-ci.org/samit4me/babel-plugin-filenamespace.svg?branch=master)](https://travis-ci.org/samit4me/babel-plugin-filenamespace)\n[![Build status](https://ci.appveyor.com/api/projects/status/j63t7l2wwaqu3h0i?svg=true)](https://ci.appveyor.com/project/samit4me/babel-plugin-filenamespace)\n[![Coverage Status](https://coveralls.io/repos/github/samit4me/babel-plugin-filenamespace/badge.svg?branch=master)](https://coveralls.io/github/samit4me/babel-plugin-filenamespace?branch=master)\n\n[![Watch on GitHub][github-watch-badge]][github-watch]\n[![Star on GitHub][github-star-badge]][github-star]\n[![Tweet][twitter-badge]][twitter]\n\n</div>\n\n## 📄 Description\n\nDirectories and filenames are typically descriptive by nature so let's use them to namespace our code.\n\n> Think about unit test [describe][jestDescribe] blocks, Storybook [stories][storyNesting] and Redux [action types][reduxActionType] (DDD).\n\nNode provides [__dirname][__dirname] and [__filename][__filename] which are perfect for this, but with code bundling and client-side JS they lose their meaning. The purpose of this plugin is to give that meaning back.\n\n```javascript\n// src/components/Button.test.js\ndescribe(__filenamespace, () => {})\n```\n```javascript\n// is transformed into\ndescribe('src/components/Button', () => {})\n```\n\n## 📦 Install\n\n```\nnpm install --save-dev babel-plugin-filenamespace\n```\n\n## 🚀 Usage\nVia `.babelrc`\n```json\n{\n  \"plugins\": [\n    \"filenamespace\"\n  ]\n}\n```\n\nVia `.eslintrc`\n\n```json\n{\n  \"globals\": {\n    \"__filenamespace\": false\n  }\n}\n```\n\nThen in any file you want a filename based namespace generated use the placeholder **__filenamespace**.\n\n## ⚙️ Options\n\nUse Babel's plugin options by replacing the plugin string with an array of the plugin name and an object with the options:\n- [`root`](#root): *(Default: project root)*\n   - Specify root directory relative to project src (e.g. src).\n- [`separator`](#separator): *(Default: \"/\")*\n   - Specify directory separator.\n- [`dropAllFilenames`](#dropallfilenames): *(Default: false)*\n   - Setting to true will exclude all filenames and use directory structure only.\n   - _**Note:** files named `index` OR have a name that match the parent directory (file extention ignored) are always dropped, regardless of this setting, as they do not provide meaning_.\n- [`dropExtensions`](#dropextensions): *(Default: [\".spec\", \".test\", \".story\", \".stories\"])*\n   - Specify the extensions you want removed.\n   - _**Note:** file extension are always removed, these extensions are for removing extensions from common file naming conventions (e.g. `path/to/file.test.js` will transform to `path/to/file`)_.\n- [`customPlaceholders`](#customplaceholders): *(Default: [])*\n   - Specify custom placeholders, each with their own configuration (all above options) e.g. `[{ \"placeholder\": \"__testnamespace\", \"separator\": \".\" }]`.\n\n## ✨ Examples\n\n### `root`:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"root\": \"app\",\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/App/data/file.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'container/App/data/file';\n```\n\n### `separator`:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"separator\": \"👌\"\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/App/data/file.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'app👌container👌App👌data👌file';\n```\n\n### `dropAllFilenames`:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"dropAllFilenames\": true\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/HomePage/Home.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'app/container/HomePage';\n```\n\n### `dropExtensions`:\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"dropExtensions\": [\".test\"]\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/HomePage/Home.test.js\nconst namespace = __filenamespace;\n```\n```javascript\n// is transformed into\nconst namespace = 'app/container/HomePage/Home';\n```\n\n### `customPlaceholders`:\n\n```json\n{\n  \"plugins\": [\n    [\n      \"filenamespace\",\n      {\n        \"separator\": \".\",\n        \"customPlaceholders\": [\n          {\n            \"placeholder\": \"__dotDot\",\n            \"separator\": \"..\"\n          },\n          {\n            \"placeholder\": \"__dotDotDot\",\n            \"separator\": \"...\",\n            \"root\": \"app\",\n            \"dropAllFilenames\": true\n          }\n        ]\n      }\n    ]\n  ]\n}\n```\n\n```javascript\n// app/container/App/data/file.js\nconst namespace = __filenamespace;\nconst dotDotNamespace = __dotDot;\nconst dotDotDotNamespace = __dotDotDot;\n```\n```javascript\n// is transformed into\nconst namespace = 'app.container.App.data.file';\nconst dotDotNamespace = 'app.container..App..data..file';\nconst dotDotDotNamespace = 'container...App...data';\n```\n\n## 🤝 Contributing\nContributions, issues and feature requests are welcome.<br />\nFeel free to check the [Contributing](https://github.com/samit4me/babel-plugin-filenamespace/blob/master/CONTRIBUTING.md) page if you want to contribute.\n\n## 📝 License\n\nCopyright © 2019 [Samuel Sharpe](https://github.com/samit4me).<br />\nThis project is [MIT](https://github.com/samit4me/babel-plugin-filenamespace/blob/master/LICENSE) licensed.\n\n[__dirname]: https://nodejs.org/api/modules.html#modules_dirname\n[__filename]: https://nodejs.org/api/modules.html#modules_filename\n[jestDescribe]: https://jestjs.io/docs/en/api#describename-fn\n[reduxActionType]: https://redux.js.org/basics/actions#actions\n[storyNesting]: https://storybook.js.org/docs/basics/writing-stories/#nesting-stories\n[github-watch-badge]: https://img.shields.io/github/watchers/samit4me/babel-plugin-filenamespace.svg?style=social\n[github-watch]: https://github.com/samit4me/babel-plugin-filenamespace/watchers\n[github-star-badge]: https://img.shields.io/github/stars/samit4me/babel-plugin-filenamespace.svg?style=social\n[github-star]: https://github.com/samit4me/babel-plugin-filenamespace/stargazers\n[twitter]: https://twitter.com/intent/tweet?text=Check%20out%20babel-plugin-filenamespace!%20https://github.com/samit4me/babel-plugin-filenamespace%20%F0%9F%91%8D\n[twitter-badge]: https://img.shields.io/twitter/url/https/github.com/samit4me/babel-plugin-filenamespace.svg?style=social\n","maintainers":[{"name":"samit4me","email":"samit4me@gmail.com"}],"time":{"modified":"2022-06-13T04:01:19.934Z","created":"2016-08-31T14:56:05.241Z","0.0.1":"2016-08-31T14:56:05.241Z","0.0.2":"2016-08-31T15:01:24.549Z","0.0.3":"2016-09-20T10:41:25.022Z","0.0.4":"2016-09-20T22:57:51.342Z","1.0.0":"2016-09-21T01:22:05.513Z","1.0.1":"2016-09-21T01:37:41.614Z","1.1.0":"2016-11-03T12:40:20.091Z","1.1.1":"2016-11-26T00:08:48.897Z","1.1.2":"2016-12-29T01:56:43.470Z","1.1.3":"2017-02-05T05:07:38.239Z","1.2.0":"2018-12-05T02:45:08.575Z","2.0.0-beta.0":"2019-06-10T12:46:26.791Z","2.0.0-beta.1":"2019-06-12T10:44:53.594Z","2.0.0":"2019-06-12T23:45:11.366Z","2.0.1":"2019-06-13T10:24:21.008Z","2.0.2":"2019-06-13T11:09:09.610Z","2.0.3":"2019-06-13T11:13:13.028Z","2.0.4":"2019-06-17T11:27:43.697Z","3.0.0":"2019-10-01T11:07:06.565Z","4.0.0":"2021-10-07T06:08:24.019Z","4.0.1":"2021-10-07T06:27:54.623Z"},"author":{"name":"Samuel Sharpe"},"license":"MIT","readmeFilename":"README.md","homepage":"https://github.com/samit4me/babel-plugin-filenamespace#readme","repository":{"type":"git","url":"git+https://github.com/samit4me/babel-plugin-filenamespace.git"},"bugs":{"url":"https://github.com/samit4me/babel-plugin-filenamespace/issues"},"keywords":["action types","babel","babel-plugin","ddd","domain driven design","module","namespace","namespacing","redux","storybook","test","type","filename","dirname"]}