Skip to content

Commit 5a756a0

Browse files
authored
Merge pull request #32 from soyuka/fix-30
Allow custom template directory fix #30
2 parents 24aa819 + 0dfdf0e commit 5a756a0

File tree

6 files changed

+12
-8
lines changed

6 files changed

+12
-8
lines changed

src/generators.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import ReactCrudGenerator from './generators/ReactCrudGenerator';
22
import TypescriptInterfaceGenerator from './generators/TypescriptInterfaceGenerator';
33

44
function wrap (cl) {
5-
return (prefix) => new cl(prefix)
5+
return ({hydraPrefix, templateDirectory}) => new cl({hydraPrefix, templateDirectory})
66
}
77

88
function generators (generator = 'react') {

src/generators/ReactCrudGenerator.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import chalk from 'chalk';
77
export default class ReactCrudGenerator {
88
templates = {};
99

10-
constructor(hydraPrefix) {
11-
const templatePath = `${__dirname}/../../templates/react/`;
10+
constructor({hydraPrefix, templateDirectory}) {
11+
const templatePath = `${templateDirectory}/react/`;
1212

1313
this.hydraPrefix = hydraPrefix;
1414

src/generators/ReactCrudGenerator.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import ReactCrudGenerator from './ReactCrudGenerator';
77

88

99
test('Generate a React app', () => {
10-
const generator = new ReactCrudGenerator('hydra:');
10+
const generator = new ReactCrudGenerator({hydraPrefix: 'hydra:', templateDirectory: `${__dirname}/../../templates`});
1111
const tmpobj = tmp.dirSync({unsafeCleanup: true});
1212

1313
const fields = [new Field('bar', {

src/generators/TypescriptInterfaceGenerator.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import fs from 'fs';
55
export default class TypescriptInterfaceGenerator {
66
templates = {};
77

8-
constructor() {
9-
const templatePath = `${__dirname}/../../templates/typescript`;
8+
constructor({templateDirectory}) {
9+
const templatePath = `${templateDirectory}/typescript/`;
1010
this.template = handlebars.compile(fs.readFileSync(`${templatePath}/interface.ts`).toString())
1111
}
1212

src/generators/TypescriptInterfaceGenerator.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import TypescriptInterfaceGenerator from './TypescriptInterfaceGenerator';
77

88

99
test('Generate a typescript interface', () => {
10-
const generator = new TypescriptInterfaceGenerator('hydra:');
10+
const generator = new TypescriptInterfaceGenerator({templateDirectory: `${__dirname}/../../templates`});
1111
const tmpobj = tmp.dirSync({unsafeCleanup: true});
1212

1313
const resource = new Resource('abc', 'http://example.com/foos', {

src/index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ program
1313
.option('-r, --resource [resourceName]', 'Generate CRUD for the given resource')
1414
.option('-p, --hydra-prefix [hydraPrefix]', 'The hydra prefix used by the API', 'hydra:')
1515
.option('-g, --generator [generator]', 'The generator to use, one of "react", "angular" etc.', 'react')
16+
.option('-t, --template-directory [templateDirectory]', 'The templates directory base to use. Final directory will be ${templateDirectory}/${generator}', `${__dirname}/../templates/`)
1617
.parse(process.argv);
1718

1819
if (2 !== program.args.length && (!process.env.API_PLATFORM_CLIENT_GENERATOR_ENTRYPOINT || !process.env.API_PLATFORM_CLIENT_GENERATOR_OUTPUT)) {
@@ -22,7 +23,10 @@ if (2 !== program.args.length && (!process.env.API_PLATFORM_CLIENT_GENERATOR_ENT
2223
const entrypoint = program.args[0] || process.env.API_PLATFORM_CLIENT_GENERATOR_ENTRYPOINT;
2324
const outputDirectory = program.args[1] || process.env.API_PLATFORM_CLIENT_GENERATOR_OUTPUT;
2425

25-
const generator = generators(program.generator)(program.hydraPrefix);
26+
const generator = generators(program.generator)({
27+
hydraPrefix: program.hydraPrefix,
28+
templateDirectory: program.templateDirectory
29+
});
2630
const resourceToGenerate = program.resource ? program.resource.toLowerCase() : null;
2731

2832
parseHydraDocumentation(entrypoint).then(api => {

0 commit comments

Comments
 (0)