-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/chore/monorepo'
- Loading branch information
Showing
429 changed files
with
47,659 additions
and
1,595 deletions.
There are no files selected for viewing
80 changes: 80 additions & 0 deletions
80
packages/borderline-create-extension/borderline-create-extension.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
#!/usr/bin/env node | ||
|
||
var chalk = require('chalk'); | ||
var commander = require('commander'); | ||
var package = require('./package.json'); | ||
var fs = require('fs-extra'); | ||
var path = require('path'); | ||
|
||
var currentNodeVersion = process.versions.node; | ||
if (currentNodeVersion.split('.')[0] < 7) { | ||
console.error( | ||
chalk.red( | ||
'Borderline Create Extension requires ' + | ||
chalk.bold('Node 7 or higher.') + '\n' + | ||
'Please update your version of Node.' | ||
) | ||
); | ||
process.exit(1); | ||
} | ||
|
||
var extensionName = undefined; | ||
var program = commander | ||
.version(package.version) | ||
.arguments('<name>') | ||
.option('--verbose', 'enable verbose [optional]') | ||
.usage('<name>') | ||
.on('--help', function () { | ||
console.log(); | ||
console.log(chalk.cyan('The extension will be created in a directory of the same name.')); | ||
console.log(); | ||
}) | ||
.action(function (name) { | ||
extensionName = name; | ||
}) | ||
.parse(process.argv); | ||
|
||
/* Ensure extension name is provided */ | ||
if (typeof extensionName === 'undefined' || extensionName === '' || !extensionName ) { | ||
console.log(); | ||
console.error(chalk.red('Missing extension name')); | ||
console.error(program.help()); | ||
console.log(); | ||
process.exit(1); | ||
} | ||
|
||
/* Creating the extension folder */ | ||
createExtension(extensionName, './src/', program.verbose); | ||
|
||
function createExtension(extensionName, extensionPath, verbose) { | ||
var templateDir = path.join(__dirname, 'template'); | ||
var extensionDir = path.join(extensionPath, extensionName); | ||
|
||
if (! fs.existsSync(templateDir)) { | ||
console.log(chalk.red('Missing template: ') + templateDir); | ||
process.exit(1); | ||
} | ||
fs.copySync(templateDir, extensionDir); | ||
|
||
if (verbose) | ||
console.log(chalk.cyan('Created extension from template')); | ||
|
||
var extensionPackagePath = path.join(extensionDir, 'package.json'); | ||
var extensionPackage = fs.readJsonSync(extensionPackagePath); | ||
extensionPackage.name = extensionName; | ||
fs.writeJsonSync(extensionPackagePath, extensionPackage); | ||
if (verbose) | ||
console.log(chalk.cyan('Rewrite package.json successful')); | ||
|
||
var manifestPackagePath = path.join(extensionDir, 'manifest.json'); | ||
var manifestPackage = fs.readJsonSync(manifestPackagePath); | ||
manifestPackage.name = extensionName; | ||
manifestPackage.id = Math.floor(Math.random() * 0xffffffffffffffff).toString(32); //Careful with collision | ||
fs.writeJsonSync(manifestPackagePath, manifestPackage); | ||
if (verbose) | ||
console.log(chalk.cyan('Rewrite manifest.json successful')); | ||
|
||
console.log(chalk.green('Creating extension success :D')); | ||
|
||
|
||
} |
8 changes: 8 additions & 0 deletions
8
packages/borderline-create-extension/borderline-dev-config.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"port": 3000, | ||
"mongoUrl": "mongodb://dev:[email protected]:27017/borderline", | ||
"pluginSourcesFolder": "./src/", | ||
"pluginBuildFolder": "./.build", | ||
"pluginFileSystemFolder": "./.filesystem", | ||
"pluginPackageFolder": "./packages" | ||
} |
55 changes: 55 additions & 0 deletions
55
packages/borderline-create-extension/borderline-dev-server.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
var chalk = require('chalk'); | ||
var fs = require('fs-extra'); | ||
var path = require('path'); | ||
var spawn = require('cross-spawn'); | ||
var express = require('express'); | ||
|
||
var config = require('./borderline-dev-config.json'); | ||
|
||
//Cleanups previous dev environments | ||
fs.emptyDirSync(config.pluginBuildFolder); | ||
fs.emptyDirSync(config.pluginFileSystemFolder); | ||
|
||
//Creating webpack processes to compile extensions | ||
var extensions = fs.readdirSync(config.pluginSourcesFolder); | ||
for (var i = 0; i < extensions.length; i++) { | ||
var extensionDirectory = path.join(config.pluginSourcesFolder, extensions[i]); | ||
|
||
buildExtension(extensionDirectory); | ||
} | ||
|
||
function buildExtension(extensionDirectory) { | ||
//Run npm build command from extension dir | ||
var build_proc = spawn('npm', ['run', 'build-dev'], {stdio: 'inherit', cwd: extensionDirectory}); | ||
build_proc.on('close', function (exitCode) { | ||
if (exitCode !== 0) { | ||
console.log(chalk.red('Install package dependencies failed')); | ||
process.exit(1); | ||
} | ||
else { | ||
console.log(chalk.green('Exiting webpack watcher')); | ||
} | ||
}); | ||
} | ||
|
||
//Creating express server | ||
var app = express(); | ||
var BorderlineServer = require('borderline-server'); | ||
//Remove unwanted express headers | ||
app.set('x-powered-by', false); | ||
//Use Borderline server in dev mode | ||
app.use(BorderlineServer({ | ||
mongoUrl: config.mongoUrl, | ||
pluginSourcesFolder: config.pluginBuildFolder, | ||
pluginFileSystemFolder: config.pluginFileSystemFolder, | ||
development: true | ||
} | ||
)); | ||
//Listen on config port | ||
app.listen(config.port, function (err) { | ||
if (err) { | ||
return console.error(chalk.red(err)); | ||
} | ||
|
||
console.log(chalk.green('Listening at http://localhost:' + config.port.toString())); | ||
}); |
53 changes: 53 additions & 0 deletions
53
packages/borderline-create-extension/borderline-package-extension.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
var chalk = require('chalk'); | ||
var fs = require('fs-extra'); | ||
var path = require('path'); | ||
var spawn = require('cross-spawn'); | ||
var archiver = require('archiver'); | ||
|
||
var config = require('./borderline-dev-config.json'); | ||
|
||
//Cleanups previous dev environments | ||
fs.emptyDirSync(config.pluginBuildFolder); | ||
fs.emptyDirSync(config.pluginPackageFolder); | ||
|
||
//Creating webpack processes to compile extensions | ||
var extensions = fs.readdirSync(config.pluginSourcesFolder); | ||
for (var i = 0; i < extensions.length; i++) { | ||
|
||
var extensionDirectory = path.resolve(path.join(config.pluginSourcesFolder, extensions[i])); | ||
packExtension(extensionDirectory); | ||
} | ||
|
||
function packExtension(extensionDirectory) | ||
{ | ||
//Run npm build command from extension dir | ||
var build_proc = spawn('npm', ['run', 'build-prod'], {stdio: 'inherit', cwd: extensionDirectory}); | ||
build_proc.on('close', function (exitCode) { | ||
if (exitCode !== 0) { | ||
console.log(chalk.red('Build package failed')); | ||
process.exit(1); | ||
} | ||
else { | ||
console.log(chalk.green('Webpack bundling successful')); | ||
|
||
var buildTrace = fs.readJSONSync(path.join(extensionDirectory, 'manifest.json')); | ||
var packageName = buildTrace.name + '-' + buildTrace.version; | ||
|
||
var buildDirectory = path.join(config.pluginBuildFolder, buildTrace.build); | ||
var packageTarget = path.join(config.pluginPackageFolder, packageName) + '.zip'; | ||
|
||
var output = fs.createWriteStream(packageTarget); | ||
var zipArchive = archiver('zip'); | ||
zipArchive.pipe(output); | ||
zipArchive.directory(buildDirectory, packageName); | ||
zipArchive.finalize(); | ||
output.on('close', function () { | ||
console.log(chalk.green('Written package ' + packageName + '.zip')); | ||
}); | ||
output.on('error', function (err) { | ||
console.log(chalk.red('Writting package ' + packageName + '.zip failed: ' + err)); | ||
process.exit(1); | ||
}) | ||
} | ||
}); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
{ | ||
"name": "@borderline/create-extension", | ||
"version": "0.2.0", | ||
"description": "Create extensions for the Borderline platform", | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/dsi-icl/borderline.git" | ||
}, | ||
"author": "Jean Grizet", | ||
"license": "MIT", | ||
"bugs": { | ||
"url": "https://github.com/dsi-icl/borderline/issues" | ||
}, | ||
"homepage": "https://github.com/dsi-icl/borderline/tree/master/packages/borderline-create-extensions#readme", | ||
"engines": { | ||
"node": ">=7" | ||
}, | ||
"files": [ | ||
"template/", | ||
"borderline-create-extension.js", | ||
"borderline-package-extension.js", | ||
"borderline-dev-server.js" | ||
], | ||
"bin": { | ||
"borderline-create": "node ./borderline-create-extension.js", | ||
"borderline-package": "node ./borderline-package-extension.js", | ||
"borderline-dev": "node ./borderline-dev-server.js" | ||
}, | ||
"scripts": { | ||
"create": "node ./borderline-create-extension.js", | ||
"package": "node ./borderline-package-extension.js", | ||
"dev": "node ./borderline-dev-server.js" | ||
}, | ||
"devDependencies": {}, | ||
"dependencies": { | ||
"borderline-server": "^0.1.16", | ||
"chalk": "^1.1.3", | ||
"commander": "^2.9.0", | ||
"express": "^4.15.2", | ||
"fs-extra": "^2.0.0", | ||
"archiver": "1.3.0" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
"presets": [ | ||
"es2015", | ||
"react", | ||
"stage-0" | ||
], | ||
"plugins": [ | ||
"react-hot-loader/babel", | ||
"transform-decorators-legacy" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
{ | ||
"extends": "eslint:recommended", | ||
"env": { | ||
"browser": true, | ||
"node": true, | ||
"es6": true | ||
}, | ||
"parser": "babel-eslint", | ||
"plugins": [ | ||
"react" | ||
], | ||
"ecmaFeatures": { | ||
"arrowFunctions": true, | ||
"binaryLiterals": true, | ||
"blockBindings": true, | ||
"classes": true, | ||
"defaultParams": true, | ||
"destructuring": true, | ||
"forOf": true, | ||
"generators": true, | ||
"modules": true, | ||
"objectLiteralComputedProperties": true, | ||
"objectLiteralDuplicateProperties": true, | ||
"objectLiteralShorthandMethods": true, | ||
"objectLiteralShorthandProperties": true, | ||
"octalLiterals": true, | ||
"regexUFlag": true, | ||
"regexYFlag": true, | ||
"spread": true, | ||
"superInFunctions": true, | ||
"templateStrings": true, | ||
"unicodeCodePointEscapes": true, | ||
"globalReturn": true, | ||
"jsx": true | ||
}, | ||
"rules": { | ||
"react/jsx-uses-react": 2, | ||
"react/jsx-uses-vars": 2, | ||
"react/react-in-jsx-scope": 2, | ||
"no-alert": 2, | ||
"no-console": 1, | ||
"quotes": [ | ||
2, | ||
"single" | ||
], | ||
"semi": [ | ||
2, | ||
"always" | ||
], | ||
"strict": [ | ||
2, | ||
"global" | ||
], | ||
// "indent": [ | ||
// 1, | ||
// 4 | ||
// ], | ||
"space-infix-ops": 2, | ||
"spaced-comment": 1, | ||
"space-in-parens": 2, | ||
"space-unary-ops": 2, | ||
"no-trailing-spaces": 1, | ||
"no-irregular-whitespace": 2, | ||
"no-unused-vars": 1 | ||
} | ||
} |
2 changes: 2 additions & 0 deletions
2
packages/borderline-create-extension/template/code/client/index.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
// Insert client template code here | ||
|
38 changes: 38 additions & 0 deletions
38
packages/borderline-create-extension/template/code/server/index.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
function TemplatePlugin() { | ||
this.getTemplate = TemplatePlugin.prototype.getTemplate.bind(this); | ||
this.postTemplate = TemplatePlugin.prototype.postTemplate.bind(this); | ||
this.putTemplate = TemplatePlugin.prototype.putTemplate.bind(this); | ||
this.deleteTemplate = TemplatePlugin.prototype.deleteTemplate.bind(this); | ||
} | ||
|
||
TemplatePlugin.prototype.attach = function(expressAppRouter) { | ||
expressAppRouter.get('/default', this.getTemplate); | ||
expressAppRouter.post('/default', this.postTemplate); | ||
expressAppRouter.put('/default', this.putTemplate); | ||
expressAppRouter.delete('/default', this.deleteTemplate); | ||
}; | ||
|
||
TemplatePlugin.prototype.detach = function() { | ||
}; | ||
|
||
TemplatePlugin.prototype.getTemplate = function(req, res) { | ||
res.status(200); | ||
res.json({message: "Template GET"}); | ||
}; | ||
|
||
TemplatePlugin.prototype.postTemplate = function(req, res) { | ||
res.status(200); | ||
res.json({message: "Template POST"}); | ||
}; | ||
|
||
TemplatePlugin.prototype.putTemplate = function(req, res) { | ||
res.status(200); | ||
res.json({message: "Template PUT"}); | ||
}; | ||
|
||
TemplatePlugin.prototype.deleteTemplate = function(req, res) { | ||
res.status(200); | ||
res.json({message: "Template DELETE"}); | ||
}; | ||
|
||
module.exports = TemplatePlugin; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"name": "Borderline internal extension", | ||
"version": "0.0.1", | ||
"description": "Generated Borderline internal extension", | ||
"author": "Tezirg", | ||
"build": null | ||
} |
Oops, something went wrong.