Make file extensions on Canonical resources runtime-agnostic
This commit is contained in:
parent
cf0ae260dc
commit
2ff9354538
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@extollo/lib",
|
"name": "@extollo/lib",
|
||||||
"version": "0.9.50",
|
"version": "0.10.0",
|
||||||
"description": "The framework library that lifts up your code.",
|
"description": "The framework library that lifts up your code.",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"types": "lib/index.d.ts",
|
"types": "lib/index.d.ts",
|
||||||
|
@ -18,7 +18,7 @@ export class Migrations extends CanonicalInstantiable<Migration> {
|
|||||||
|
|
||||||
protected canonicalItem = 'migration'
|
protected canonicalItem = 'migration'
|
||||||
|
|
||||||
protected suffix = '.migration.js'
|
protected suffix = '.migration'
|
||||||
|
|
||||||
async up(): Promise<void> {
|
async up(): Promise<void> {
|
||||||
if ( await this.path.exists() ) {
|
if ( await this.path.exists() ) {
|
||||||
|
@ -17,7 +17,7 @@ export class Models extends CanonicalStatic<Model<any>, Instantiable<Model<any>>
|
|||||||
|
|
||||||
protected canonicalItem = 'model'
|
protected canonicalItem = 'model'
|
||||||
|
|
||||||
protected suffix = '.model.js'
|
protected suffix = '.model'
|
||||||
|
|
||||||
public async up(): Promise<void> {
|
public async up(): Promise<void> {
|
||||||
await super.up()
|
await super.up()
|
||||||
|
@ -8,6 +8,7 @@ import {Inject} from '../di'
|
|||||||
import * as nodePath from 'path'
|
import * as nodePath from 'path'
|
||||||
import {Unit} from '../lifecycle/Unit'
|
import {Unit} from '../lifecycle/Unit'
|
||||||
import {isCanonicalReceiver} from '../support/CanonicalReceiver'
|
import {isCanonicalReceiver} from '../support/CanonicalReceiver'
|
||||||
|
import {env} from '../lifecycle/Application'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface describing a definition of a single canonical item loaded from the app.
|
* Interface describing a definition of a single canonical item loaded from the app.
|
||||||
@ -70,9 +71,13 @@ export abstract class Canonical<T> extends Unit {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* The file suffix of files in the base path that should be loaded.
|
* The file suffix of files in the base path that should be loaded.
|
||||||
|
* This should EXCLUDE `.js` or `.ts`. These file extensions are determined
|
||||||
|
* by the framework depending on the Node runtime.
|
||||||
|
* @example `.service`
|
||||||
|
* @example `.middleware`
|
||||||
* @type string
|
* @type string
|
||||||
*/
|
*/
|
||||||
protected suffix = '.js'
|
protected suffix = ''
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The singular, programmatic name of one of these canonical items.
|
* The singular, programmatic name of one of these canonical items.
|
||||||
@ -113,6 +118,14 @@ export abstract class Canonical<T> extends Unit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the suffix that files must have to be loaded by this service.
|
||||||
|
* Determines the runtime file extension based on the Node runtime.
|
||||||
|
*/
|
||||||
|
public getScriptSuffix(): string {
|
||||||
|
return `${this.suffix}${env('NODE_SCRIPT_SUFFIX', '.js')}`
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return an array of all loaded canonical names.
|
* Return an array of all loaded canonical names.
|
||||||
*/
|
*/
|
||||||
@ -247,7 +260,7 @@ export abstract class Canonical<T> extends Unit {
|
|||||||
public async up(): Promise<void> {
|
public async up(): Promise<void> {
|
||||||
if ( await this.path.exists() ) {
|
if ( await this.path.exists() ) {
|
||||||
for await ( const entry of this.path.walk() ) {
|
for await ( const entry of this.path.walk() ) {
|
||||||
if ( !entry.endsWith(this.suffix) ) {
|
if ( !entry.endsWith(this.getScriptSuffix()) ) {
|
||||||
this.logging.debug(`Skipping file with invalid suffix: ${entry}`)
|
this.logging.debug(`Skipping file with invalid suffix: ${entry}`)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -292,7 +305,7 @@ export abstract class Canonical<T> extends Unit {
|
|||||||
.split('')
|
.split('')
|
||||||
.reverse()
|
.reverse()
|
||||||
.join('')
|
.join('')
|
||||||
.substr(this.suffix.length)
|
.substr(this.getScriptSuffix().length)
|
||||||
.split('')
|
.split('')
|
||||||
.reverse()
|
.reverse()
|
||||||
.join('')
|
.join('')
|
||||||
|
@ -12,7 +12,7 @@ export class Config extends CanonicalRecursive {
|
|||||||
|
|
||||||
protected appPath: string[] = ['configs']
|
protected appPath: string[] = ['configs']
|
||||||
|
|
||||||
protected suffix = '.config.js'
|
protected suffix = '.config'
|
||||||
|
|
||||||
protected canonicalItem = 'config'
|
protected canonicalItem = 'config'
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ export class Controllers extends CanonicalStatic<Instantiable<Controller>, Contr
|
|||||||
|
|
||||||
protected canonicalItem = 'controller'
|
protected canonicalItem = 'controller'
|
||||||
|
|
||||||
protected suffix = '.controller.js'
|
protected suffix = '.controller'
|
||||||
|
|
||||||
public async initCanonicalItem(definition: CanonicalDefinition): Promise<StaticClass<Instantiable<Controller>, Controller>> {
|
public async initCanonicalItem(definition: CanonicalDefinition): Promise<StaticClass<Instantiable<Controller>, Controller>> {
|
||||||
const item = await super.initCanonicalItem(definition)
|
const item = await super.initCanonicalItem(definition)
|
||||||
|
@ -12,7 +12,7 @@ export class Middlewares extends CanonicalStatic<Middleware, Instantiable<Middle
|
|||||||
|
|
||||||
protected canonicalItem = 'middleware'
|
protected canonicalItem = 'middleware'
|
||||||
|
|
||||||
protected suffix = '.middleware.js'
|
protected suffix = '.middleware'
|
||||||
|
|
||||||
public async initCanonicalItem(definition: CanonicalDefinition): Promise<StaticClass<Middleware, Instantiable<Middleware>>> {
|
public async initCanonicalItem(definition: CanonicalDefinition): Promise<StaticClass<Middleware, Instantiable<Middleware>>> {
|
||||||
const item = await super.initCanonicalItem(definition)
|
const item = await super.initCanonicalItem(definition)
|
||||||
|
@ -12,5 +12,5 @@ export class Queueables extends CanonicalStatic<Queueables, Instantiable<Queueab
|
|||||||
|
|
||||||
protected canonicalItem = 'job'
|
protected canonicalItem = 'job'
|
||||||
|
|
||||||
protected suffix = '.job.js'
|
protected suffix = '.job'
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user