UNPKG

apex-nitro

Version:
578 lines (576 loc) 15.2 kB
{ "$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"] }] }