UNPKG

1.47 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3// Node
4const Module = require('module');
5
6// Gigster
7const Errors = require('@gigster/gig-errors');
8const Models = require('@gigster/gig-models');
9const Schemas = require('@gigster/gig-schemas');
10const SDK = require('@gigster/gig-sdk');
11const Services = require('@gigster/gig-services');
12const Utils = require('@gigster/gig-utils');
13
14// This is the require hook function to ensure all the modules
15// are using the same dependencies version as the CLI.
16// HACK(jerome): See if we can use a better way, like interfaces.
17Module.prototype.require = new Proxy(Module.prototype.require, {
18 apply(target, thisArg, argumentsList) {
19 const name = argumentsList[0];
20 if (name === '@gigster/gig-errors') return Errors;
21 if (name === '@gigster/gig-models') return Models;
22 if (name === '@gigster/gig-schemas') return Schemas;
23 if (name === '@gigster/gig-sdk') return SDK;
24 if (name === '@gigster/gig-services') return Services;
25 if (name === '@gigster/gig-utils') return Utils;
26 return Reflect.apply(target, thisArg, argumentsList);
27 }});
28
29// CLI
30const CLI = require('../src/CLI');
31const Package = require('../package.json');
32const guard = require('../src/guard');
33
34// Check the version of node.
35Utils.checkNodeVersion(Package);
36
37// Create an instance of the CLI.
38const cli = new CLI({name: 'gig', version: Package.version});
39const input = process.argv.slice(2);
40
41// Execute the cli with args.
42guard(async () => cli.execute({input}));