feat(directive): add the sub generator for directives

Closes #9