apex-nitro
Version:
Your essential APEX companion
578 lines (576 loc) • 15.2 kB
JSON
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Root",
"description": "Configuration for an APEX Nitro project",
"properties": {
"mode": {
"type": "string",
"title": "Mode",
"default": "basic",
"enum": [
"basic",
"advanced"
]
},
"appURL": {
"type": "string",
"title": "Application URL",
"description": "This is the URL to your APEX application homepage.",
"placeholder": "Example: https://apex.oracle.com/pls/apex/f?p=12192"
},
"srcFolder": {
"type": "string",
"title": "Source Folder",
"description": "This is where you do the coding. It should point to a local directory.",
"placeholder": "Example: /Users/vmorneau/myProject/src"
},
"distFolder": {
"type": "string",
"title": "Distributable Folder",
"description": "This is where the files will be compiled. It should point to a local directory.",
"placeholder": "Example: /Users/vmorneau/myProject/dist"
},
"js": {
"type": "object",
"title": "JavaScript",
"description": "Settings for serving JavaScript to your application.",
"properties": {
"processor": {
"type": "string",
"title": "Processor",
"description": "Choose how your JavaScript will be processed. The webpack option allows to use ES6.",
"enum": [
"default",
"typescript",
"webpack"
]
},
"concat": {
"type": "boolean",
"title": "Concatenate JavaScript Files",
"description": "Enable this to concatenate all your JavaScript files into one."
},
"concatFilename": {
"type": "string",
"title": "Concatenated JavaScript Filename",
"description": "This is the name of the concatenated file.",
"placeholder": "Example: app"
},
"entries": {
"type": "array",
"title": "Entries",
"description": "A webpack entry would be an ES6 file that will be processed and compiled into a bundle (ES5 compatible).",
"items": {
"type": "string",
"title": "Entry",
"description": "Entry",
"placeholder": "Example: /Users/vmorneau/myProject/src/js/app.js",
"required": true
}
},
"bundleFilename": {
"type": "string",
"title": "Bundled JavaScript Filename",
"description": "This is the name of the bundle file.",
"placeholder": "Example: bundle"
},
"library": {
"type": "boolean",
"title": "Expose as a library",
"description": "Expose your bundles to your app as a global library."
},
"libraryName": {
"type": "string",
"title": "Library Name",
"description": "This is the name of the concatenated file.",
"placeholder": "Example: app"
},
"tsConcat": {
"type": "boolean",
"title": "Concatenate TypeScript Files",
"description": "Enable this to concatenate all your TypeScript files into one."
},
"tsConcatFilename": {
"type": "string",
"title": "Concatenated TypeScript Filename",
"description": "This is the name of the concatenated file.",
"placeholder": "Example: app"
}
},
"required": [
"processor",
"concat",
"library",
"tsConcat"
],
"requiredIf": [{
"property": "concatFilename",
"dependsOn": ["processor", "concat"],
"value": ["default", true]
},
{
"property": "tsConcatFilename",
"dependsOn": ["processor", "tsConcat"],
"value": ["typescript", true]
},
{
"property": "entries",
"dependsOn": ["processor"],
"value": ["webpack"]
},
{
"property": "bundleFilename",
"dependsOn": ["processor"],
"value": ["webpack"]
},
{
"property": "libraryName",
"dependsOn": ["processor", "library"],
"value": ["webpack", true]
}
],
"showIf": [{
"property": "concat",
"dependsOn": ["processor"],
"value": ["default"]
},
{
"property": "concatFilename",
"dependsOn": ["processor", "concat"],
"value": ["default", true]
},
{
"property": "tsConcat",
"dependsOn": ["processor"],
"value": ["typescript"]
},
{
"property": "tsConcatFilename",
"dependsOn": ["processor", "tsConcat"],
"value": ["typescript", true]
},
{
"property": "entries",
"dependsOn": ["processor"],
"value": ["webpack"]
},
{
"property": "bundleFilename",
"dependsOn": ["processor"],
"value": ["webpack"]
},
{
"property": "library",
"dependsOn": ["processor"],
"value": ["webpack"]
},
{
"property": "libraryName",
"dependsOn": ["processor", "library"],
"value": ["webpack", true]
}
]
},
"css": {
"type": "object",
"title": "CSS",
"description": "Settings for serving CSS to your application.",
"properties": {
"language": {
"type": "string",
"title": "Language",
"description": "Your source files stylesheet language. APEX Nitro will always generate CSS files out of these.",
"enum": [
"css",
"sass",
"less"
]
},
"concat": {
"type": "boolean",
"title": "Concatenate CSS Files",
"description": "Enable this to concatenate all your CSS files into one."
},
"concatFilename": {
"type": "string",
"title": "Concatenated CSS Filename",
"description": "This is the name of the concatenated file.",
"placeholder": "Example: app"
},
"sassIncludePath": {
"type": "string",
"title": "Include Path",
"description": "Include a path to an external Sass folder. Allows to use the `@import` feature from within that folder.",
"placeholder": "Example: /Users/vmorneau/AnotherProject/sass"
},
"lessIncludePath": {
"type": "string",
"title": "Include Path",
"description": "Include a path to an external Less folder. Allows to use the `@import` feature from within that folder.",
"placeholder": "Example: /Users/vmorneau/AnotherProject/less"
}
},
"required": [
"language",
"concat"
],
"requiredIf": [{
"property": "concatFilename",
"dependsOn": ["language", "concat"],
"value": ["css", true]
}],
"showIf": [{
"property": "concat",
"dependsOn": ["language"],
"value": ["css"]
},
{
"property": "concatFilename",
"dependsOn": ["language", "concat"],
"value": ["css", true]
},
{
"property": "sassIncludePath",
"dependsOn": ["language"],
"value": ["sass"]
},
{
"property": "lessIncludePath",
"dependsOn": ["language"],
"value": ["less"]
}
]
},
"browsersync": {
"type": "object",
"title": "Additionnal Options",
"description": "Additionnal options when using APEX Nitro.",
"properties": {
"realTime": {
"type": "boolean",
"title": "Enable Real-time Synchronization",
"description": "Enabling this will automatically inject CSS and reload JavaScript on your page. This is the default behavior, but it can be turned off."
},
"ghostMode": {
"type": "boolean",
"title": "Enable External Devices Synchronization",
"description": "Enabling this synchronizes clicking, scrolling and typing on all devices connected to your APEX Nitro app."
},
"notify": {
"type": "boolean",
"title": "Push Notifications on Success/Errors",
"description": "Enabling this will push system notifications to you if your code compiles successfully or fails."
}
},
"required": [
"realTime",
"notify",
"ghostMode"
]
},
"header": {
"type": "object",
"title": "Header",
"description": "This feature adds an automatic comment block at the top of your CSS and JavaScript files with your project information.",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enabled",
"description": "Enables the automatic header comment block feature."
},
"packageJsonPath": {
"type": "string",
"title": "package.json Path",
"description": "Points to your project's `package.json` file.",
"placeholder": "Example: /Users/vmorneau/myProject/package.json"
}
},
"required": [
"enabled"
],
"showIf": [{
"property": "packageJsonPath",
"dependsOn": ["enabled"],
"value": [true]
}]
},
"apex": {
"type": "object",
"title": "APEX Options",
"description": "Determines if the APEX builder should open alongside the application itself.",
"properties": {
"openBuilder": {
"type": "boolean",
"title": "Open Builder",
"description": "Opens the APEX builder when launching APEX Nitro."
}
},
"required": [
"openBuilder"
]
},
"publish": {
"type": "object",
"title": "Publish Files",
"description": "Required if you want to publish your files to APEX automatically.",
"properties": {
"destination": {
"type": "string",
"title": "APEX Files Destination",
"description": "This is used for the 'publish' feature and will determine where the files should be uploaded.",
"enum": [
"application",
"workspace",
"theme",
"plugin"
]
},
"pluginName": {
"type": "string",
"title": "Plugin Internal Name",
"description": "The internal name of the plugin is required to map the files to the correct plugin.",
"placeholder": "Example: COM.ORACLE.STARPLUGIN"
},
"path": {
"type": "string",
"title": "SQLcl Path",
"description": "Enter the path to SQLcl. If it's been added to your environment variable, it should be `sql`. Otherwise enter a full path. Example: `/Users/vmorneau/sqlcl/bin/sql`",
"placeholder": "Example: [sql] or [/Users/vmorneau/sqlcl/bin/sql]"
},
"connectionType": {
"type": "string",
"title": "Connection Type",
"description": "Select your connection type",
"enum": [
"basic",
"custom"
]
},
"username": {
"type": "string",
"title": "User",
"description": "Enter your user"
},
"password": {
"type": "password",
"title": "Password (Optional)",
"description": "If you do not enter your password here, it will be prompted to you when using [apex-nitro publish project]",
"placeholder": "Enter your password"
},
"host": {
"type": "string",
"title": "host",
"description": "Enter your host.",
"placeholder": "Example: localhost"
},
"port": {
"type": "string",
"title": "port",
"description": "Enter your port.",
"default": "1521",
"placeholder": "Example: 1521"
},
"basicType": {
"type": "string",
"title": "Connection Type",
"description": "",
"default": "sid",
"enum": [
"sid",
"service name",
"tns"
]
},
"sid": {
"type": "string",
"title": "SID",
"description": "Enter the [SID] for user/pass@db:port:[SID]",
"placeholder": "Example: xe"
},
"serviceName": {
"type": "string",
"title": "Service Name",
"description": "Enter the [SERVICE NAME] for user/pass@db:port/[SERVICE NAME]",
"placeholder": "Example: xe"
},
"tns": {
"type": "string",
"title": "TNS",
"description": "Enter the [TNS] for user/pass@[TNS]",
"placeholder": "Example: DEV1"
},
"connectionString": {
"type": "string",
"title": "Connection String",
"description": "Enter your connection string.",
"placeholder": "Example: barry/oracle@localhost:1521/orcl"
}
},
"required": [
"destination"
],
"requiredIf": [
{
"property": "pluginName",
"dependsOn": ["destination"],
"value": ["plugin"]
},
{
"property": "username",
"dependsOn": ["connectionType"],
"value": ["basic"]
},
{
"property": "host",
"dependsOn": ["connectionType"],
"value": ["basic"]
},
{
"property": "port",
"dependsOn": ["connectionType"],
"value": ["basic"]
},
{
"property": "basicType",
"dependsOn": ["connectionType"],
"value": ["basic"]
},
{
"property": "sid",
"dependsOn": ["connectionType", "basicType"],
"value": ["basic", "sid"]
},
{
"property": "serviceName",
"dependsOn": ["connectionType", "basicType"],
"value": ["basic", "service name"]
},
{
"property": "tns",
"dependsOn": ["connectionType", "basicType"],
"value": ["basic", "tns"]
},
{
"property": "connectionString",
"dependsOn": ["connectionType"],
"value": ["custom"]
}
],
"showIf": [
{
"property": "pluginName",
"dependsOn": ["destination"],
"value": ["plugin"]
},
{
"property": "username",
"dependsOn": ["connectionType"],
"value": ["basic"]
},
{
"property": "password",
"dependsOn": ["connectionType"],
"value": ["basic"]
},
{
"property": "host",
"dependsOn": ["connectionType"],
"value": ["basic"]
},
{
"property": "port",
"dependsOn": ["connectionType"],
"value": ["basic"]
},
{
"property": "basicType",
"dependsOn": ["connectionType"],
"value": ["basic"]
},
{
"property": "sid",
"dependsOn": ["connectionType", "basicType"],
"value": ["basic", "sid"]
},
{
"property": "serviceName",
"dependsOn": ["connectionType", "basicType"],
"value": ["basic", "service name"]
},
{
"property": "tns",
"dependsOn": ["connectionType", "basicType"],
"value": ["basic", "tns"]
},
{
"property": "connectionString",
"dependsOn": ["connectionType"],
"value": ["custom"]
}
]
},
"themeroller": {
"type": "object",
"title": "Themeroller",
"description": "This feature will generate a `less` file that you can import into your application theme style. It will add editable variables to theme roller.",
"properties": {
"files": {
"type": "array",
"title": "Files.",
"description": "Include the list of `scss` or `less` files to be parsed by Theme Roller.",
"items": {
"type": "string",
"title": "File",
"description": "File",
"placeholder": "Example: /Users/vmorneau/myProject/src/sass/app.scss",
"required": true
}
}
}
}
},
"required": [
"mode",
"appURL",
"srcFolder"
],
"requiredIf": [{
"property": "distFolder",
"dependsOn": ["mode"],
"value": ["advanced"]
}],
"showIf": [{
"property": "distFolder",
"dependsOn": ["mode"],
"value": ["advanced"]
}, {
"property": "js",
"dependsOn": ["mode"],
"value": ["advanced"]
}, {
"property": "css",
"dependsOn": ["mode"],
"value": ["advanced"]
}, {
"property": "browsersync",
"dependsOn": ["mode"],
"value": ["advanced"]
}, {
"property": "header",
"dependsOn": ["mode"],
"value": ["advanced"]
}, {
"property": "apex",
"dependsOn": ["mode"],
"value": ["advanced"]
}, {
"property": "publish",
"dependsOn": ["mode"],
"value": ["advanced"]
}, {
"property": "themeroller",
"dependsOn": ["mode"],
"value": ["advanced"]
}]
}