New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

broccoli-flatiron

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

broccoli-flatiron - npm Package Compare versions

Comparing version 0.1.2 to 0.1.3

tests/fixtures/assets_multiple/one/something.txt

43

index.js

@@ -1,8 +0,7 @@

var fs = require("fs"),
path = require("path"),
mkdirp = require("mkdirp"),
Writer = require("broccoli-writer"),
Promise = require("rsvp").Promise;
var fs = require('fs'),
path = require('path'),
mkdirp = require('mkdirp'),
Plugin = require('broccoli-plugin');
Flatiron.prototype = Object.create(Writer.prototype);
Flatiron.prototype = Object.create(Plugin.prototype);
Flatiron.prototype.constructor = Flatiron;

@@ -13,6 +12,12 @@

this.inputTree = inputTree;
Plugin.call(this, [inputTree], {
name: 'Flatiron',
annotation: `Flatiron output: ${options.outputFile}`,
persistentOutput: options.persistentOutput,
needCache: options.needCache
});
this.options = {
trimExtensions: Boolean(options.trimExtensions),
prefix: options.prefix === undefined ? "export default " : String(options.prefix),
prefix: options.prefix === undefined ? 'export default ' : String(options.prefix),
suffix: options.suffix === undefined ? ';' : String(options.suffix),

@@ -23,10 +28,7 @@ outputFile: options.outputFile

Flatiron.prototype.write = function (readTree, destDir) {
var _this = this;
return readTree(this.inputTree).then(function(srcDir) {
var obj = readDirectory(srcDir),
Flatiron.prototype.build = function () {
var obj = readDirectory(this.inputPaths[0], this.options),
output;
function readDirectory (srcDir) {
function readDirectory (srcDir, options) {
var obj = {},

@@ -37,6 +39,6 @@ entries = fs.readdirSync(srcDir);

if (fs.statSync(path.join(srcDir, entry)).isDirectory())
obj[entry] = readDirectory(path.join(srcDir, entry));
obj[entry] = readDirectory(path.join(srcDir, entry), options);
else
obj[_this.options.trimExtensions ? entry.split(".")[0] : entry] =
fs.readFileSync(path.join(srcDir, entry), { encoding: "utf8" });
obj[options.trimExtensions ? entry.split('.')[0] : entry] =
fs.readFileSync(path.join(srcDir, entry), { encoding: 'utf8' });
});

@@ -47,8 +49,7 @@

output = _this.options.prefix + JSON.stringify(obj, null, 2) + _this.options.suffix;
mkdirp.sync(path.join(destDir, path.dirname(_this.options.outputFile)));
fs.writeFileSync(path.join(destDir, _this.options.outputFile), output);
});
output = this.options.prefix + JSON.stringify(obj, null, 2) + this.options.suffix;
mkdirp.sync(path.join(this.outputPath, path.dirname(this.options.outputFile)));
fs.writeFileSync(path.join(this.outputPath, this.options.outputFile), output);
}
module.exports = Flatiron;
{
"name": "broccoli-flatiron",
"version": "0.1.2",
"version": "0.1.3",
"description": "Broccoli plugin to create json objects from directory structures",

@@ -21,12 +21,10 @@ "main": "index.js",

"dependencies": {
"broccoli-kitchen-sink-helpers": "~0.2.4",
"broccoli-writer": "~0.1.1",
"mkdirp": "^0.3.5",
"rsvp": "~3.0.6"
"broccoli-plugin": "^1.3.0",
"mkdirp": "^0.5.1"
},
"devDependencies": {
"broccoli": "~0.12.3",
"broccoli-builder": "^0.18.14",
"expect.js": "~0.3.1",
"mocha": "~1.18.2"
"mocha": "~5.2.0"
}
}

@@ -10,3 +10,7 @@ # Broccoli Flatiron

var tree = flatiron(targetDirectory);
var options = {
outputFile: 'path/to/output/file'
};
var tree = flatiron(targetDirectory, options);
```

@@ -16,10 +20,14 @@

- `option.outputFile`
- `option.trimExtensions`
- `option.prefix`
- `option.suffix`
### Available options
- `outputFile` - path of the generated file
- `trimExtensions` - trim file extensions object keys or not
- `prefix` - use custom prefix, `default: export default`
- `suffix` - use custom suffix, `default: ;`
- `persistentOutput`: boolean flag passed to [broccoli-plugin](https://github.com/broccolijs/broccoli-plugin#reference).
- `needCache`: boolean flag passed to [broccoli-plugin](https://github.com/broccolijs/broccoli-plugin#reference).
## ZOMG!!! TESTS?!?!!?
Yeah, no. Not now. But when I finally add some, you can run them like so:
Yeah, I know.

@@ -26,0 +34,0 @@ ```javascript

'use strict';
var jsonConcat = require('../index');
var flatiron = require('../index');
var expect = require('expect.js');
var fs = require('fs');
var broccoli = require('broccoli');
var broccoli = require('broccoli-builder');
var builder;
describe('broccoli-file-creator', function(){
describe('broccoli-flatiron', function(){
afterEach(function() {

@@ -17,37 +17,79 @@ if (builder) {

it('creates the files specified with fixturify', function(){
var sourcePath = 'tests/fixtures';
var tree = jsonConcat(sourcePath, {
outputFile: '/assets/books.json',
variableName: 'window.fixtures'
it('creates the files with default configuration', function(){
var sourcePath = 'tests/fixtures/assets_one';
var node = flatiron(sourcePath, {
outputFile: '/assets/output.json'
});
builder = new broccoli.Builder(tree);
builder = new broccoli.Builder(node);
return builder.build().then(function(results) {
var expectedOutput = {
'dr-seuss': {
'how-the-grinch-stole-christmas': {
publicationDate: 'November 24, 1957',
pages: 69
},
'the-cat-in-the-hat': {
publicationDate: 'March 12, 1957',
pages: 61
}
one: {
'something.txt': 'Something'
}
};
expectedOutput = 'export default ' + JSON.stringify(expectedOutput, null, 2) + ';';
expect(fs.readFileSync(results.directory + '/assets/output.json', {encoding: 'utf8'})).to.eql(expectedOutput);
});
});
it('creates the files with "trimExtensions" enabled', function(){
var sourcePath = 'tests/fixtures/assets_one';
var node = flatiron(sourcePath, {
outputFile: '/assets/output.json',
trimExtensions: true
});
builder = new broccoli.Builder(node);
return builder.build().then(function(results) {
var expectedOutput = {
one: {
something: 'Something'
}
};
expectedOutput = 'export default ' + JSON.stringify(expectedOutput, null, 2) + ';';
expect(fs.readFileSync(results.directory + '/assets/output.json', {encoding: 'utf8'})).to.eql(expectedOutput);
});
});
it('creates the files with custom "prefix" and "suffix"', function(){
var sourcePath = 'tests/fixtures/assets_one';
var node = flatiron(sourcePath, {
outputFile: '/assets/output.json',
prefix: 'my-prefix ',
suffix: 'my-suffix'
});
builder = new broccoli.Builder(node);
return builder.build().then(function(results) {
var expectedOutput = {
one: {
'something.txt': 'Something'
}
};
expectedOutput = 'my-prefix ' + JSON.stringify(expectedOutput, null, 2) + 'my-suffix';
expect(fs.readFileSync(results.directory + '/assets/output.json', {encoding: 'utf8'})).to.eql(expectedOutput);
});
});
it('creates the files with multiple assets', function(){
var sourcePath = 'tests/fixtures/assets_multiple';
var node = flatiron(sourcePath, {
outputFile: '/assets/output.json'
});
builder = new broccoli.Builder(node);
return builder.build().then(function(results) {
var expectedOutput = {
one: {
'something.txt': 'Something'
},
'pd-eastman': {
'are-you-my-mother': {
publicationDate: 'June 12, 1960',
pages: 12
},
'go-dog-go': {
publicationDate: 'March 12, 1961',
pages: 72
}
two: {
'other.txt': 'Other'
}
};
expectedOutput = 'window.fixtures = ' + JSON.stringify(expectedOutput, null, 2);
expect(fs.readFileSync(results.directory + '/assets/books.json', {encoding: 'utf8'})).to.eql(expectedOutput);
expectedOutput = 'export default ' + JSON.stringify(expectedOutput, null, 2) + ';';
expect(fs.readFileSync(results.directory + '/assets/output.json', {encoding: 'utf8'})).to.eql(expectedOutput);
});
})
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc