bloggify-paths v1.0.0
bloggify-paths
Helper library for maintaining the Bloggify paths in one place.
:cloud: Installation
$ npm i --save bloggify-paths
:clipboard: Example
const BloggifyPaths = require("bloggify-paths");
const Bloggify = { /* The Bloggify instance */ };
// Create a new instance of BloggifyPaths
console.log(new BloggifyPaths("~/path/to/my/app", {
paths: {
// Override the default (bloggify.js) with a JSON path.
config: "bloggify.json"
}
}, Bloggify));
// BloggifyPaths {
// root: '/home/.../path/to/my/app',
// _: {},
// _paths:
// { bloggify: '/',
// config: 'bloggify.json',
// plugins: '/node_modules',
// publicMain: '/!/bloggify/public/',
// publicCore: '/!/bloggify/core/',
// publicTheme: '/!/bloggify/theme/' },
// bloggify: '/home/.../path/to/my/app/',
// config: '/home/.../path/to/my/app/bloggify.json',
// plugins: '/home/.../path/to/my/app/node_modules',
// publicMain: '/home/.../path/to/my/app/!/bloggify/public/',
// publicCore: '/home/.../path/to/my/app/!/bloggify/core/',
// publicTheme: '/home/.../path/to/my/app/!/bloggify/theme/' }
:memo: Documentation
BloggifyPaths(root, options, bloggifyInstance)
Creates a new instance of BloggifyPaths
.
The instance contains the following fields:
publicUrls
: The url endpoints (accesible via HTTP)core
: The core public url.main
: The application public url.theme
: The theme public url.root
: The root public url.
public
: The file system paths.core
: The path to the core public directory.main
: The application public directory.theme
: The theme public directory.root
: The root public directory.
_bundles
: The relative bundle urls.js
: it takes the following value:/js/index.js
css
: it takes the following value:/css/index.css
bundleUrls
: The bundle urls.js
: The absolute url of the js bundle.css
: The absolute url of the css bundle.
bundlePaths
: The bundle paths.js
: The absolute path of the js bundle.css
: The absolute path of the css bundle.
_publicPaths
: An array of pairs of url endpoints and disk paths.
Params
- String
root
: The path to the application's root. - Object
options
: The Bloggify options. Thepaths
object will be merged with the following defaults: bloggify
(String): The bloggify directory (by default the root).config
(String): The configuration file path (default:/bloggify.js
).plugins
(String): The path to the plugins directory (default:/node_modules
)>publicMain
(String): The public main directory endpoint (default:"/!/bloggify/public/"
).publicCore
(String): The public core directory endpoint (default:"/!/bloggify/core/"
).publicTheme
(String): The public theme directory endpoint (default:"/!/bloggify/theme/"
).- Bloggify
bloggifyInstance
: The Bloggify instance.
Return
- Object The BloggifyPaths instance.
initPublicPaths()
Initializes the path values (documented above).
getBundlePaths(name)
Get the bundle paths for a bundle name.
Params
- String
name
: The bundle name (default:main
).
Return
- Object An object containing the following fields:
urls
: The URL endpoints.js
(String): The JavaScript bundle url.css
(String): The CSS bundle url.
local
: The local paths.js
(String): The JavaScript bundle local path.css
(String): The CSS bundle local path.
getPublicPaths()
Fetches the public paths of the app.
Return
- Array The public paths.
getMainPublic(fromDisk)
Returns the path to the app's public directory/uri.
Params
- Boolean
fromDisk
: Establishes the source of the public directory.
Return
- String The public path.
getThemePublic(fromDisk)
Returns the path to the theme's public directory/uri.
Params
- Boolean
fromDisk
: Establishes the source of the public directory.
Return
- String The public path.
staticFilePath(filePath, absolute)
Gets the url of a file.
Params
- String
filePath
: The file path. - Boolean
absolute
: Iftrue
, the absolute path will be returned.
Return
- String The file url.
prepare()
Initializes the paths values.
pluginPath(name)
Fetches the path of the plugin.
Params
- String
name
: The plugin's name.
Return
- type The plugin's path.
:yum: How to contribute
Have an idea? Found a bug? See how to contribute.
:moneybag: Donations
Another way to support the development of my open-source modules is to set up a recurring donation, via Patreon. :rocket:
PayPal donations are appreciated too! Each dollar helps.
Thanks! :heart:
:scroll: License
8 years ago